7. Интерфейсы форм
Итак, составлены модели требований, анализа и проектирования и составлены соответствующие им диаграммы, подробно описано взаимодействие между объектами. Исходя из этого, можно приступить к созданию форм приложения.
Проект запускается с главной формы. С ее помощью открываются все остальные формы, как для расчетов, так и для просмотра и редактирования нужной информации. На всех формах расположены кнопки для вызова процедур добавления, удаления и печати данных. Имеются формы со справочной информацией, полностью отражающие таблицы базы данных. Созданы отдельные формы для расчета смет, расчета оплаты времени и стоимости материалов, расчета с заказчиками и форма для внесения данных о материалах и поставщиках.
Эскизы форм приведены ниже на рис. 7.1 – 7.7.
Рис. 7.1 Главная форма: начало запуска
Рис. 7.2 Форма для составления и печати договоров
Рис. 7.3 Форма для расчета стоимости ресурсов
Рис. 7.4 Форма для расчета смет
Рис. 7.5 Форма для расчета с заказчиками
Рис. 7.6 Форма для внесения данных о материалах
Рис. 7.7 Форма списка заказчиков.
Формы со списками услуг, заказов, выполненных заказов, счетов, исполнителей, норм расхода времени, норм расхода материалов, расчетов стоимости материалов, расчетов стоимости оплаты времени, расчетов смет, материалов, поставщиков аналогичны форме со списком заказчиков.
8. Программный код приложения
Класс «Счета» (Schet)
Описание свойств:
Option Explicit
Private mvarKol As Double
Private mvarStE As Double
Private mvarSk As Double
Private mvarYd As Double
Private mvarSum As Double
Private StM, sSk, S As Double
Public Property Let Kol(ByVal vData As Double)
mvarKol = vData
End Property
Public Property Get Kol() As Double
Kol = mvarKol
End Property
Public Property Let StE(ByVal vData As Double)
mvarStE = vData
End Property
Public Property Get StE() As Double
StE = mvarStE
End Property
Public Property Let Sk(ByVal vData As Double)
mvarSk = vData
End Property
Public Property Get Sk() As Double
Sk = mvarSk
End Property
Public Property Let Yd(ByVal vData As Double)
mvarYd = vData
End Property
Public Property Get Yd() As Double
Yd = mvarYd
End Property
Public Property Let Sum(ByVal S As Double)
mvarSum = S
End Property
Public Property Get Sum() As Double
Sum = mvarSum
End Property
Метод для расчета стоимости выполненного заказа:
Public Sub CalcStSch()
StM = Kol * StE
sSk = StM * Yd * Sk / 100
S = StM * Yd - sSk
frmRasch.txtSum.Text = S
End Sub
Метод для расчета итоговой суммы к оплате:
Private Function Quote(strVariable As String) As String
Quote = "'" & strVariable & "'"
End Function
Public Sub CalcSch()
Dim strS As String
If frmRasch.txtN.Text <> "" Then
strS = Trim(frmRasch.txtN.Text)
With frmRasch.Adodc3
.ConnectionString = "Агентство"
.RecordSource = "SELECT Sum([Сумма])As S FROM [Выполненные_заказы] WHERE [Выполненные_заказы].[№ Счета] LIKE " & Quote(strS)
.Refresh
End With
Set frmRasch.txtS.DataSource = frmRasch.Adodc3
frmRasch.txtS.DataField = "S"
Else
MsgBox "Введите значение текстового поля!", vbOKOnly
frmRasch.txtN.SetFocus
End If
End Sub
Класс «Смета» (Smeta)
Описание свойств:
Option Explicit
Private mvarVrDiz As Double
Private mvarStDiz As Double
Private mvarStMater As Double
Private mvarOHR As Double
Private mvarOPR As Double
Private mvarStOf As Double
Private mvarZatr As Double
Private mvarRent As Double
Private mvarOSt As Double
Private PZ, OPR, OHR, IZ, R, SP As Double
Public Property Let VrDiz(ByVal vData As Double)
mvarVrDiz = vData
End Property
Public Property Get VrDiz() As Double
VrDiz = mvarVrDiz
End Property
Public Property Let StDiz(ByVal vData As Double)
mvarStDiz = vData
End Property
Public Property Get StDiz() As Double
StDiz = mvarStDiz
End Property
Public Property Let StOf(ByVal vData As Double)
mvarStOf = vData
End Property
Public Property Get StOf() As Double
StOf = mvarStOf
End Property
Public Property Let StMater(ByVal vData As Double)
mvarStMater = vData
End Property
Public Property Get StMater() As Double
StMater = mvarStMater
End Property
Public Property Let sOHR(ByVal OHR As Double)
mvarOHR = OHR
End Property
Public Property Get sOHR() As Double
sOHR = mvarOHR
End Property
Public Property Let sOPR(ByVal OPR As Double)
mvarOPR = OPR
End Property
Public Property Get sOPR() As Double
sOPR = mvarOPR
End Property
Public Property Let Zatr(ByVal IZ As Double)
mvarZatr = IZ
End Property
Public Property Get Zatr() As Double
Zatr = mvarZatr
End Property
Public Property Let Rent(ByVal R As Double)
mvarRent = R
End Property
Public Property Get Rent() As Double
Rent = mvarRent
End Property
Public Property Let OSt(ByVal SP As Double)
mvarOSt = SP
End Property
Public Property Get OSt() As Double
OSt = mvarOSt
End Property
Метод расчета сметы:
Public Sub Calc()
PZ = VrDiz * StDiz + StOf + StMater
OPR = PZ * Val(frmMain.txtPP.Text) / 100
OHR = PZ * Val(frmMain.txtPH.Text) / 100
IZ = PZ + OPR + OHR
R = IZ * Val(frmMain.txtPR.Text) / 100
SP = IZ + R
frmMain.txtOPR.Text = OPR
frmMain.txtOHR.Text = OHR
frmMain.txtZatr.Text = IZ
frmMain.txtRent.Text = R
frmMain.txtStPr.Text = SP
End Sub
Класс «Стоимость материалов» (StoimMater)
Описание свойств:
Option Explicit
Private mvarRazm As Double
Private mvarStM As String
Private mvarRash As Double
Private mvarTse As Double
Private RM As Double
Public Property Let Razm(ByVal vData As Double)
mvarRazm = vData
End Property
Public Property Get Razm() As Double
Razm = mvarRazm
End Property
Public Property Let Tse(ByVal vData As Double)
mvarTse = vData
End Property
Public Property Get Tse() As Double
Tse = mvarTse
End Property
Public Property Let Rash(ByVal vData As Double)
mvarRash = vData
End Property
Public Property Get Rash() As Double
Rash = mvarRash
End Property
Public Property Let StM(ByVal RM As Double)
mvarStM = RM
End Property
Public Property Get StM() As Double
StM = mvarStM
End Property
Метод расчета стоимости материалов на весь заказ:
Public Sub CalcMater()
Dim strK2 As String
If frmRash.txtKod2.Text <> "" Then
strK2 = Trim(frmRash.txtKod2.Text)
With frmRash.Adodc7
.ConnectionString = "Агентство"
.RecordSource = "SELECT Sum([Стоимость])As Сумма FROM [Расход_материалов] WHERE [Расход_материалов].[Код расчета] LIKE " & Quote(strK2)
.Refresh
End With
Set frmRash.Text8.DataSource = frmRash.Adodc7
frmRash.Text8.DataField = "Сумма"
Else
MsgBox "Введите значение текстового поля!", vbOKOnly
frmRash.txtKod2.SetFocus
End If
End Sub
Метод расчета стоимости одного вида материала:
Public Sub CalcStM()
RM = Razm * Rash * Tse
frmRash.txtStM.Text = RM
End Sub
Класс «Оплата времени» (StoimVr)
Описание свойств:
Option Explicit
Private mvarVSt As Double
Private mvarKol As Double
Private mvarStoimSt As Double
Private mvarOplTr As Double
Private St As Double
Public Property Let VSt(ByVal vData As Double)
mvarVSt = vData
End Property
Public Property Get VSt() As Double
VSt = mvarVSt
End Property
Public Property Let Kol(ByVal vData As Double)
mvarKol = vData
End Property
Public Property Get Kol() As Double
Kol = mvarKol
End Property
Public Property Let StoimSt(ByVal vData As Double)
mvarStoimSt = vData
End Property
Public Property Get StoimSt() As Double
StoimSt = mvarStoimSt
End Property
Public Property Let OplTr(ByVal St As Double)
mvarStoimSt = St
End Property
Public Property Get OplTr() As Double
OplTr = mvarOplTr
End Property
Метод расчета оплаты времени на весь заказ:
Public Sub CalcTime()
Dim strK As String
If frmRash.txtKod.Text <> "" Then
strK = Trim(frmRash.txtKod.Text)
With frmRash.Adodc5
.ConnectionString = "Агентство"
.RecordSource = "SELECT Sum([Общая стоимость])As Сумма FROM [Время_работы] WHERE [Время_работы].[Код расчета] LIKE " & Quote(strK)
.Refresh
End With
Set frmRash.Text7.DataSource = frmRash.Adodc5
frmRash.Text7.DataField = "Сумма"
Else
MsgBox "Введите значение текстового поля!", vbOKOnly
frmRash.txtKod.SetFocus
End If
End Sub
Метод расчета времени на выполняемую работу:
Public Sub CalcSt()
St = VSt * StoimSt * Kol
frmRash.txtOplTr.Text = St
End Sub
Создание нового объекта «Смета» для расчета сметы (frmMain)
Private Sub btnRaschet_Click()
If txtPP.Text <> "" And txtPH.Text <> "" And txtPR.Text <> "" Then
If txtVrD.Text <> "" And txtStoim.Text <> "" And txtOplTr.Text <> "" And txtMater.Text <> "" Then
Dim objSmeta As New Smeta
objSmeta.VrDiz = txtVrD.Text
objSmeta.StDiz = txtStoim.Text
objSmeta.StOf = txtOplTr.Text
objSmeta.StMater = txtMater.Text
objSmeta.Calc
Else
MsgBox "Необходимо заполнить поля с расчетными данными", , "Расчет сметы"
End If
Else
MsgBox "Необходимо заполнить поля с размером процентов", , "Расчет сметы"
End If
End Sub
Создание нового объекта «Оплата времени» для расчета данных по виду работы и для заказа в целом (frmRash):
Private Sub btnSchet_Click()
Dim objStVr As New StoimVr
objStVr.CalcTime
End Sub
Private Sub Command8_Click()
If txtVSt.Text <> "" And txtStoimSt.Text <> "" And txtKol <> "" Then
Dim objStVr As New StoimVr
objStVr.VSt = txtVSt.Text
objStVr.Kol = txtKol.Text
objStVr.StoimSt = txtStoimSt.Text
objStVr.CalcSt
Else
MsgBox "Необходимо заполнить поля", , "Расчет на оплату времени"
End If
End Sub
Создание нового объекта «Стоимость материалов» для расчета данных по виду работы и для заказа в целом (frmRash):
Private Sub btnSchM_Click()
Dim objStM As New StoimMater
objStM.CalcMater
End Sub
Private Sub Command9_Click()
If txtRazmer.Text <> "" And txtRash.Text <> "" And txtTse.Text <> "" Then
Dim objStM As New StoimMater
objStM.Rash = txtRash.Text
objStM.Razm = txtRazmer.Text
objStM.Tse = txtTse.Text
objStM.CalcStM
Else
MsgBox "Необходимо заполнить поля", , "Расчет матриалов"
End If
End Sub
Программный код для добавления и удаления записей в базе данных:
Private Sub Command1_Click()
prompt$ = "Для ввода новой записи нажмите на кнопку ОК"
reply = MsgBox(prompt$, vbOKCancel, "Добавить запись")
If reply = vbOK Then
Text1.SetFocus
Adodc3.Recordset.AddNew
End If
End Sub
Private Sub Command2_Click()
prompt$ = "Вы действительно хотите удалить эту запись?"
reply = MsgBox(prompt$, vbOKCancel, "Удаление записи")
If reply = vbOK Then
Adodc3.Recordset.Delete
Adodc3.Recordset.MoveNext
End If
End Sub
Программный код для автоматического вставления данных (frmRash):
Private Sub Command10_Click()
If Text2.Text = "" And Text3.Text = "" And txtVSt.Text = "" Then
Text2.Text = txtNK.Text
Text3.Text = txtNN.Text
txtVSt.Text = txtNV.Text
Else
MsgBox "Добавьте новую строку, или очистите поле", , "Расчет расхода ресурсов"
End If
End Sub
Печать (аналогичен для смет, расчетов стоимости материалов, счетов):
Private Sub Command3_Click()
Dim strS As String
If txtKod.Text <> "" Then
strS = Trim(txtKod.Text)
With Adodc5
.ConnectionString = "Агентство"
.RecordSource = "SELECT * FROM [Время_работы] WHERE [Время_работы].[Код расчета] LIKE " & Quote(strS)
.Refresh
End With
Set DataGrid1.DataSource = Adodc5
Printer.Print ""
Printer.FontName = "Times New Roman"
Printer.FontSize = 14
Printer.Print DataGrid1.Text
Printer.EndDoc
Else
MsgBox "Введите код расчета для печати!", vbOKOnly
txtKod.SetFocus
End If
End Sub
Печать таблиц с данными:
Private Sub Command2_Click()
Printer.Print ""
Printer.FontName = "Times New Roman"
Printer.FontSize = 14
Printer.Print DataGrid1.Text
Printer.EndDoc
End Sub
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсовой работы спроектирована и разработана информационная система для выбранной предметной области – агентства цифровых, оформительных и рекламных услуг. Результат разработки – приложение, выполненное при помощи средств СУБД – Microsoft Access на языке программирования Visual Basic.
В ходе разработки последовательно разработаны модели требований, анализа, проектирования и соответствующие диаграммы вариантов использования, деятельности, классов, последовательностей, кооперации и состояний. Спроектированы формы приложения. Разработанная ИС обрабатывает характерные для применения данные и обеспечивает выполнение полного набора операций для этого применения.
Руководство пользователя:
1. После запуска приложения появляется главная форма. При помощи меню главной формы можно открыть списки (выполненные заказы, заказчики, заказы, исполнители, материалы, нормы расхода, поставщики, расход ресурсов, сметы, счета, услуги), формы для расчета смет, стоимости ресурсов, расчета с заказчиками, внесения материалов и формы договоров.
2. Для набора формы договора нужно выполнить команду Открыть/ Договор, заполнить типовую форму или открыть нужный нам договор. Возможно сохранение документа в нужном нам формате и вывод его на печать.
3. Для просмотра списков нужно найти интересующий нас список в меню Списки. Откроется форма с выбранным списком. В зависимости от хранящейся в списках информации возможен либо только ее просмотр и печать либо добавление, удаление, редактирование и печать данных.
4. Для внесения информации о наличии материалов на складе и поставщиках нужно выполнить команду Открыть/Запас материалов и внести нужные данные.
5. Для расчета стоимости материалов нужно выполнить команду Открыть/Расчет ресурсов. В области для расчета стоимости материалов нажать кнопку «Добавить», в появившемся сообщении подтвердить намерение добавления новой записи нажатием кнопки «ОК». В таблице появится новая строка, очистятся текстовые поля. В текстовые поля заносятся данные о коде расчета. Слева от области для расчета стоимости материалов находится область с нормами расхода материалов. В ней находим нужный код материала и выполняемую работу, нажимаем кнопку «Вставить» либо дважды щелкаем в одном из текстовых полей для вставки данных в таблицу для расчета. Далее вводим размер изделия (в м2) либо количество (для букв) и стоимость материалов. Для расчета стоимости расходуемого материала нажимаем кнопку «Считать». В текстовом поле «Стоимость (руб.)» появится рассчитанная стоимость материала. Аналогично рассчитываем стоимость остальных материалов для одного заказа. Для расчета общей стоимости материалов по одному заказу вводим в текстовое поле «Введите код расчета» код расчета и нажимаем кнопку «Считать». В текстовом поле «Стоимость материалов (руб.)» появится рассчитанная стоимость материалов по интересующему нас заказу.
6. Для расчета расходов на оплату времени нужно выполнить команду Открыть/Расчет стоимости ресурсов и в соответствующей области выполнить действия, аналогичные тем, что описаны в п. 5 для расчета стоимости материалов.
7. Для расчета с заказчиками нужно выполнить команду Открыть/Расчет с заказчиками. Заполнить таблицу выполненных заказов, рассчитать сумму счета (по аналогии с расчетом стоимости материалов и расходов на оплату времени), заполнить таблицу «Счет» двойным щелчком в полях «Дата», «№ счета», «Общая сумма (руб.)» в области выполненных заказов и распечатать счет.
8. Для закрытия форм со списками и форм для расчета нужно нажать кнопку «Закрыть», имеющуюся в каждой форме.
9. Для выхода из приложения нужно выполнить команду Файл/Выход.
Для практического использования системы в агентстве цифровых, оформительных и рекламных услуг ее необходимо доработать и дополнить. Данная система является скорее познавательным примером в области проектирования.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
Разработка баз данных в системе Microsoft Access: учебник. – 2-е изд. – М.: ФОРУМ: ИНФА-М, 2007. – 224 с.: ил. – (Профессиональное образование)
Microsoft Visual Basic 6.0 для профессионалов. Шаг за шагом: Практ. пособ./Пер. с англ. – М.: Издательство ЭКОМ, 2004. – 720 с.: илл.
Глушаков С. В., Сурядный А. С. Программирование на Visual Basic 6.0: учебное издание. – М.: Издательство «Фолио», 2002. – 497 с.
Брайан Сайлер «Использование Visual Basic 6»: специальное издание/Сайлер, Брайан, Споттс, Джефф – М: Вильямс, 2005. – 830с.
Г. Буч, Д. Рамбо, А. Джекобсон «Язык UML. Руководство пользователя».
Черемных, С. В. Структурный анализ систем. IDEF-технологии/ С. В. Черемных, И. О. Семенов. – М.: Финансы и статистика, 2002.
Марка, Д. А. SADT - методология структурного анализа и проектирования/ Д.А. Марка. – М.: Метатехнология, 1993.
Дейт, К.Дж. Введение в системы базы данных / К. Дж. Дейт – Вильямс, 2001. – 1072 с.
Вендров, А.М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М. Вендров. – М.: Финансы и статистика,2006. – 192 с.
Маклаков С.В. Создание информационных систем с AllFusion Modeling Suite / С.В. Маклаков. –М.: Диалог-Мифи, 2003. – 432 с.
Инв.
№ подп.
Взам.
Инв.
№
Подп.
и дата
Инв.
№ дубл.
Изм.
Лист
№ докум.
Подпись
Дата
Лист
3
1
ТГТУ – 230201.404
Автоматизация
рабочего места оператора в «Агенстве
цифровых и рекламных услуг»
Лит.
Листов
46
СИС-42 ЗУ