Файл: Проектирование ИС по управленческому учету в проектной организации АО «Промэнергопроект».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 147

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

End Function

''' <summary>

''' Команда пользователя - редактировать

''' </summary>

''' <param name="add_id">Дополнительный идентификатор</param>

''' <returns>Результат выполнения команды</returns>

Public Function Edit(Optional add_id As Object = 0) As Boolean Implements IUserCommands.Edit

Try

' Запомнить предыдущий ID

OldID = ID

' Создание диалога ввода данных

Dialog = New dialogProject(HisCustomer.ID, ID, Editable)

' Наполнение полей диалога актуальными данными

Dialog.ItsCustomerID = HisCustomer.ID

Dialog.CreateDate = CreateDate

Dialog.Deadline = Deadline

Dialog.ProjectName = Name

Dialog.Code = ID

' Организация диалога с пользователем

If Dialog.ShowDialog() = DialogResult.OK Then

' Применение введенных значений

HisCustomer = New Customer(Dialog.ItsCustomerID)

ID = Dialog.Code

Name = Dialog.ProjectName

CreateDate = Dialog.CreateDate

Deadline = Dialog.Deadline

' Выполнить обновление в БД

Return TryToUpdate()

Else

' Возврат неудачи - отмена действия пользователем

Return False

End If

Catch ex As Exception

MessageBox.Show("Ошибка при выполнении операции: " + ex.Message, Application.ProductName,

MessageBoxButtons.OK, MessageBoxIcon.Error)

' Возврат неудачи

Return False

End Try

End Function

''' <summary>

''' Поиск среди проектов проекта с заданным кодом

''' </summary>

''' <param name="Code">Заданный код проекта для поиска</param>

''' <returns>Результат поиска</returns>

Public Shared Function IsCodeExists(Code As String) As Boolean

Try

' Адаптер подключения к БД - таблица проектов

Dim ADAPTER As pmdbDataSetTableAdapters.projectTableAdapter =

New pmdbDataSetTableAdapters.projectTableAdapter()

' Поиск проекта заданного кода в таблице проектов

Dim PDT As pmdbDataSet.projectDataTable = ADAPTER.GetDataByID(Code)

' Возвращаем результат поиска

If PDT.Rows.Count > 0 Then Return True Else Return False

Catch ex As Exception

Return False

End Try

End Function

''' <summary>

''' Итоговый отчет по проектам

''' </summary>

''' <returns>Форматированный HTML-текст отчета</returns>

Public Shared Function GetReport() As String

' Переменная для форматированного HTML-отчета

Dim HTML As String = ""

' Служебная переменная-счетчик

Dim i As Integer = 1

' Адаптер подключения к БД - таблица проектов

Dim ADAPTER As pmdbDataSetTableAdapters.projectTableAdapter =

New pmdbDataSetTableAdapters.projectTableAdapter()

' Таблица проектов

Dim PDT As pmdbDataSet.projectDataTable = ADAPTER.GetData()

'---------------------------------------------------

' ГЕНЕРАЦИЯ HTML-КОДА

'---------------------------------------------------

HTML += "<html>"

HTML += " <head>"

HTML += " <title></title>"

HTML += " </head>"

HTML += " <body>"

HTML += " <H2 align=center>ВЫПОЛНЕННЫЕ ПРОЕКТЫ</font></H2>"

HTML += " <p align=center><font family='courier new'>версия от <u><i>" + Date.Now.ToLongDateString() + "</i></u></font></p>"

' Начало таблицы

HTML += "<table width='100%' cellspacing=1 cellpadding=1 border=all>"

' Шапка таблицы

HTML += "<tr>"

HTML += "<td align=center><b>№п.п.</b></td>"


HTML += "<td align=center><b>Проект</b></td>"

HTML += "<td align=center><b>Наименование</b></td>"

HTML += "<td align=center><b>Заказчик</b></td>"

HTML += "<td align=center><b>Руководитель</b></td>"

HTML += "<td align=center><b>Создан</b></td>"

HTML += "<td align=center><b>Завершен</b></td>"

HTML += "<td align=center><b>Срок</b></td>"

HTML += "</tr>"

' Наполнение таблицы

For Each dr As DataRow In PDT.Rows

' Получение кода проекта

Dim p_id As String = Convert.ToString(dr.ItemArray(0))

Dim P As Project = New Project(p_id)

' Размещение строки таблицы

HTML += "<tr>"

' Столбцы

HTML += $"<td>{i}</td>" : i = i + 1

HTML += $"<td>{P.ID}</td>"

HTML += $"<td>{P.Name}</td>"

HTML += $"<td>{P.HisCustomer.Name}</td>"

HTML += $"<td>{P.HisOwner.SurName} {P.HisOwner.FirstName.Substring(0, 1)} {P.HisOwner.FatherName.Substring(0, 1)}</td>"

HTML += $"<td>{P.CreateDate.ToShortDateString()}</td>"

If P.CompleteDate Is Nothing Then

HTML += $"<td>выполняется</td>"

Else

HTML += $"<td>{Convert.ToDateTime(P.CompleteDate).ToShortDateString()}</td>"

End If

HTML += $"<td>{P.Deadline.ToShortDateString()}</td>"

' Конец строки

HTML += "</tr>"

Next dr

' Конец таблицы

HTML += "</table>"

' Конец HTML

HTML += " </body>"

HTML += "</html>"

' Освобождение таблиц

PDT.Dispose()

ADAPTER.Dispose()

' Возврат текста отчета

Return HTML

End Function

End Class

Код класса главного окна

''' <summary>

''' Главная форма

''' </summary>

Public Class frmMain

''' <summary>

''' Конструктор

''' </summary>

Public Sub New()

' Создание и инициализация компонентов

InitializeComponent()

' Установить ссылку на себя глобально

PMGlobal.MainWindow = Me

' Прочитать настройки подключения к БД

PMGlobal.DB_CS = PMGlobal.LoadConnectionSettings(PMGlobal.CONNECTION_SETTINGS_FILE)

' Попытка подключиться к БД

If Not PMGlobal.SetConnectionWithDB() Then

' Показать панель настройки подключения к БД

PMGlobal.ShowConnectionSettings()

Else ' Подключение установлено

' Показать панель авторизации пользователя

PMGlobal.ShowLoginForm()

End If

End Sub

''' <summary>

''' Главный контейнер

''' </summary>

Public ReadOnly Property SubsystemView As Panel

Get

Return pnlMainContainer

End Get

End Property

''' <summary>

''' Метка с отображением имени авторизованного пользователя

''' </summary>

Public WriteOnly Property CurrentUserName As String

Set(value As String)

tslblUserName.Text = value

End Set

End Property

''' <summary>

''' Метка с отображением роли авторизованного пользователя

''' </summary>

Public WriteOnly Property CurrentUserRole As String

Set(value As String)

tslblUserRole.Text = value

End Set

End Property

''' <summary>

''' Метка с отображением названия БД

''' </summary>

Public WriteOnly Property CurrentDBName As String

Set(value As String)

tslblDBName.Text = value

End Set

End Property

''' <summary>

''' Сменить пользователя