p align="left">перемещают элементы в списке элементов одного уровня перемещать указатель к следующему Меню («Дальше» (Next), добавлять пункт Меню («Вставить» (Insert), удалять пункт Меню («Удалить» (Delete)). Рисунок 12. Созданное Меню в Окне Редактора По завершении создания меню нажать ОК и созданное Меню появится на форме Form1-отображается верхний Уровень Меню - Головное Меню. Меню активное. Для раскрытия любого пункта меню достаточно мышкой щелкнуть на выбранном пункте. Решение При решении данной курсовой работы я решил выполнить её на одной форме, то есть все пункты меню кроме Vihod(Выход) служат для распечатки таблиц, формирования и выдачи справок, создания документа на 1 форме. Меню Рисунок 13. Пользовательское Меню Private Sub mnuVihod_Click() End End Sub Вид формы Рисунок 14 .Экранная форма Glav_Form, обеспечивающая просмотр таблиц, выдачи справок и выходного документа(с использованием Пользовательского меню) Свойства Glav_Form: Name= Glav_Form Caption= Курсовой проект Дегтярев Денис ГиМУ 1-4 №8. Height=6780 Left=105 LinkTopic=Form1 ScaleHeight=5940 ScaleWidth=13350 Top=105 Width=13590 Пояснение Так как почти все элементы будут использоваться в более чем одной процедуре, то их свойства будут указаны сразу для избегания лишней путаницы. Свойства Элемента Data1 (таблица PR,справка № 1,3 и документ): Name =Data1 Caption = Data1_Таблица_PR Connect =Access DatabaseName = D:\кп\Курсовая 2\file 1.mdb Height = 495 Left = 240 RecordsetType =0 - Table RecordSource =PR Top = 1320 Width = 6375 Свойства элементов связанных с Data1(таблица PR,справка № 1,3 и документ): Text1(0) DataField = “Cod pr” DataSourse = Data1 Height = 495 Index =0 Left = 240 TabIndex = 9 Top = 600 Width = 1215 Text1(1) DataField = “Name pr” DataSourse = Data1 Height = 495 Index =1 Left = 1680 TabIndex =8 Top =600 Width = 2175 Text1(2) DataField = “Zis” DataSourse = Data1 Height = 495 Index =2 Left = 4080 TabIndex =7 Top =600 Width = 1215 Text1(3) DataField = “V vip” DataSourse = Data1 Height = 495 Index =3 Left = 5520 TabIndex =6 Top =600 Width = 1335 Свойства элементов Label (метка) для PR. Label1(0) Caption = «Код предприятия» Height = 255 Index =0 Left = 120 TabIndex =21 Top =240 Width = 1335 Label1(1) Caption = «Наименование предприятия» Height = 255 Index =1 Left = 1680 TabIndex =20 Top =240 Width = 2175 Label1(2) Caption = «Численность персонала» Height = 255 Index =2 Left = 4200 TabIndex =19 Top =240 Width = 1095 Label1(3) Caption = «Объем выпуска продукции (в руб)» Height = 495 Index =3 Left = 5520 TabIndex =18 Top =240 Width = 1335 Свойства элемента MSFlexGrid и Label3 (таблица PR и справка № 2) MSFlexGrid Name =Flp Cools =2 FixedCools =0 FixedRows =1 Height =1695 Left =1080 Rows =2 TabIndex =5 Top =2400 Width =4335 Label3 Caption = « »Height = 255 Left = 1080 TabIndex =13 Top =2040 Width = 4335 Свойства Элемента Data2 (таблица GL,справка № 2,3 и документ): Name =Data2 Caption = Data2_Таблица_GL Connect =Access DatabaseName = D:\кп\Курсовая 2\file 1.mdb Height = 495 Left = 7080 RecordsetType =0 - Table RecordSource =GL Top = 1320 Width = 5895 Свойства элементов связанных с Data2(таблица GL,справка № 2,3 и документ): Text2(0) DataField = “Cod pr” DataSourse = Data2 Height = 495 Index =0 Left = 7320 TabIndex = 4 Top = 600 Width = 1315 Text2(1) DataField = “Zis” DataSourse = Data2 Height = 495 Index =1 Left = 8880 TabIndex =3 Top =600 Width = 1455 Text2(2) DataField = “Ul” DataSourse = Data2 Height = 495 Index =2 Left = 10560 TabIndex =2 Top =600 Width = 1215 Text2(3) DataField = “Dal” DataSourse = Data2 Height = 495 Index =3 Left = 11880 TabIndex =1 Top =600 Width = 1335 Свойства элементов Label (метка) для GL. Label2(0) Caption = «Код предприятия» Height = 255 Index =0 Left = 7320 TabIndex =17 Top =240 Width = 1335 Label2(1) Caption = «Отсутствие жилья» Height = 255 Index =1 Left = 8880 TabIndex =16 Top =240 Width = 1455 Label2(2) Caption = «Нуждающиеся в улучшении» Height = 435 Index =2 Left = 10560 TabIndex =15 Top =120 Width = 1155 Label2(3) Caption = «Живущие далеко от предприятия» Height = 495 Index =3 Left = 11880 TabIndex =14 Top =120 Width = 1335 Свойства элемента MSFlexGrid и Label4 (таблица GL и справка № 1) MSFlexGrid Name =Flg Cools =2 FixedCools =0 FixedRows =1 Height =1695 Left =1080 Rows =2 TabIndex =10 Top =2400 Width =4215 Label4 Caption = “ ” Height = 255 Left = 8160 TabIndex =12 Top =2040 Width = 3975 Свойства элемента MSFlexGrid и Label5(справка №3 и документ) MSFlexGrid Name =Fls Cools =2 FixedCools =0 FixedRows =1 Height =1575 Left =4080 Rows =2 TabIndex =10 Top =4320 Width =5175 Label5 Caption = “ ” Height = 495 Left = 1200 TabIndex =11 Top =4680 Width = 2775 Вид формы с таблицей PR Рисунок 15. Форма с таблицей PR. Private Sub mnuRs_PR_Click() Dim K As Integer Dim I As Integer, J As Integer Data1.Recordset.MoveFirst K = Data1.Recordset.RecordCount Label3.Caption = "Таблица Предприятия" Flp.Rows = K + 1 Flp.Cols = 4 For I = 1 To K For J = 1 To 4 Flp.TextMatrix(I, J - 1) = Text1(J - 1) If I = 1 Then Flp.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name Next J Data1.Recordset.MoveNext Next I End Sub Форма с таблицей GL Рисунок 16. Вид формы с таблицей GL Private Sub mnuRs_Gl_Click() Dim K As Integer Dim I As Integer, J As Integer K = Data1.Recordset.RecordCount Label4.Caption = "Таблица Обеспеченность жильём" Data2.Recordset.MoveFirst Flg.Rows = K + 1 Flg.Cols = 4 For I = 1 To K For J = 1 To 4 Flg.TextMatrix(I, J - 1) = Text2(J - 1) If I = 1 Then Flg.TextMatrix(I - 1, J - 1) = Data2.Recordset.Fields(J - 1).Name Next J Data2.Recordset.MoveNext Next I End Sub Справка №1 Таблица PR Private Sub mnuSpravka1_Click() Dim I As Integer, T As Integer, L As Integer, J As Integer Dim Kz As Integer Dim Q As Variant Flg.Cols = 3: Flg.Rows = 1: Kz = 0 Label4.Caption = "Справка №1(по таблице PR)" Flg.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name Flg.TextMatrix(0, 1) = Data1.Recordset.Fields(3).Name Data1.Recordset.MoveFirst For I = 1 To Data1.Recordset.RecordCount If Data1.Recordset.Fields(3).Value > 20000000 Then Flg.Rows = Flg.Rows + 1: Kz = Flg.Rows - 1 Flg.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value Flg.TextMatrix(Kz, 1) = Data1.Recordset.Fields(3).Value Flg.TextMatrix(Kz, 2) = Data1.Recordset.Fields(2).Value End If Data1.Recordset.MoveNext Next I If Kz > 1 Then For I = 1 To Kz - 1 T = I For L = I + 1 To Kz If Val(Flg.TextMatrix(T, 2)) > Val(Flg.TextMatrix(L, 2)) Then T = L Next L If T <> I Then For J = 0 To 2 Q = Flg.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flg.TextMatrix(T, J) Flg.TextMatrix(T, J) = Q Next J End If Next I End If Flg.Cols = 2 If Kz = 0 Then Flg.TextMatrix(Kz, 0) = "Нет таких записей в таблице PR" End Sub Рисунок 17. Вид справки №1 Справка №2 Таблица GL Private Sub mnuSpravka2_Click() Dim I As Integer Dim Kz As Integer Label3.Caption = "Справка №2(по таблице GL)" Flp.Cols = 2: Flp.Rows = 1: Kz = 0 Flp.TextMatrix(0, 0) = Data2.Recordset.Fields(0).Name Data2.Recordset.MoveFirst For I = 1 To Data2.Recordset.RecordCount If Data2.Recordset.Fields(3).Value > 15 Then Flp.Rows = Flp.Rows + 1: Kz = Flp.Rows - 1 Flp.TextMatrix(Kz, 0) = Data2.Recordset.Fields(0).Value Flp.TextMatrix(Kz, 1) = Data2.Recordset.Fields(1).Value End If Data2.Recordset.MoveNext Next I If Kz > 1 Then For I = 1 To Kz - 1 T = I For L = I + 1 To Kz If Val(Flp.TextMatrix(T, 1)) < Val(Flp.TextMatrix(L, 1)) Then T = L Next L If T <> I Then For J = 0 To 1 Flp.TextMatrix(T, J) = Q Next J End If Next I End If Flp.Cols = 1 If Kz = 0 Then Flp.TextMatrix(Kz, 0) = "Нет таких записей в таблице GL" End Sub Рисунок 18. Вид справки №2 Справка №3 Таблица PR и GL Private Sub mnuSpravka3_Click() Dim I As Integer, J as Integer Dim Kz As Integer Label5.Caption = "Справка №3(по таблицам GL и PR)" Fls.Cols = 5: Fls.Rows = 1: Kz = 0 Fls.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name Fls.TextMatrix(0, 1) = Data1.Recordset.Fields(2).Name Fls.TextMatrix(0, 2) = Data1.Recordset.Fields(3).Name Fls.TextMatrix(0, 3) = Data2.Recordset.Fields(1).Name Fls.TextMatrix(0, 4) = Data2.Recordset.Fields(2).Name Data1.Recordset.MoveFirst For I = 1 To Data1.Recordset.RecordCount Data2.Recordset.MoveFirst For J = 1 To Data2.Recordset.RecordCount If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then If Data1.Recordset.Fields(2).Value > 5000 And Data2.Recordset.Fields(1).Value > 20 And Data2.Recordset.Fields(2).Value > 20 Then Fls.Rows = Fls.Rows + 1: Kz = Fls.Rows - 1 Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value Fls.TextMatrix(Kz, 1) = Data1.Recordset.Fields(2).Value Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value Fls.TextMatrix(Kz, 3) = Data2.Recordset.Fields(1).Value Fls.TextMatrix(Kz, 4) = Data2.Recordset.Fields(2).Value End If End If Data2.Recordset.MoveNext Next J Data1.Recordset.MoveNext Next I If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие" End Sub Рисунок 18. Вид справки №3 Документ Private Sub mnuDoc1_Click() Dim I As Integer, J as Integer Dim Kz As Integer Label5.Caption = "Документ" Fls.Cols = 3: Fls.Rows = 1: Kz = 0 Fls.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name Fls.TextMatrix(0, 1) = "% сотрудников обеспеченных жильем" Fls.TextMatrix(0, 2) = "Продукция на одного рабочего(в руб.)" Data1.Recordset.MoveFirst For I = 1 To Data1.Recordset.RecordCount Data2.Recordset.MoveFirst For J = 1 To Data2.Recordset.RecordCount If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then If Data2.Recordset.Fields(1).Value + Data2.Recordset.Fields(2).Value + Data2.Recordset.Fields(3).Value <= 30 Then Fls.Rows = Fls.Rows + 1: Kz = Fls.Rows - 1 Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value Fls.TextMatrix(Kz, 1) = 100 - (Data2.Recordset.Fields(1).Value + Data2.Recordset.Fields(2).Value + Data2.Recordset.Fields(3).Value) Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value / Data1.Recordset.Fields(2).Value End If End If Data2.Recordset.MoveNext Next J Data1.Recordset.MoveNext Next I If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие" End Sub Рисунок 20. Документ Заключение В данной курсовой работе по созданию и обработке Баз данных средствами Visual Basic 6.0, в разрабатываемом программном проекте я предпочел использовать пользовательское меню по следующим причинам: v Отпадает необходимость создания отдельных экранных форм для решения каждой задачи программного проекта. v Намного упрощается работа с проектом, так как результаты отдельных задач проекта не обращаются к другим, формам. v На экранной форме проекта отсутствую командные кнопки, роль которых на себя берут пункты меню. v Управление проектом становиться гораздо проще, легче и даже комфортнее - устраняется неясность в последовательности активизации командных кнопок при выполнении программного проекта. v Программный проект объединен в единое целое.
Страницы: 1, 2
|