Изучение возможностей создания MDI-приложений (multiple document interface)
Изучение возможностей создания MDI-приложений (multiple document interface)
10 Цель работы: изучение возможностей создания MDI - приложений, записи информации в файлы и использование технологии OLE при работе с приложениями MS Office Задание 1. Разработайте MDI - приложение, позволяющее вводить информацию о студентах: фамилия, имя, факультет, группа (в качестве дочерней формы можно использовать разработанное приложение в задании 4 лабораторной работы 5 - 6). Приложение должно обеспечивать возможность выводить данные о выбранном студенте в существующую дочернюю форму или создавать для каждого студента свою форму. 1) Запускаем Visual Basic 6.0. Выбираем “StandartEXE”. 2) Добавляем в проект MDI - форму. Для этого открываем меню «Проект» > «Добавить MDI - форму» 3) У Form1 устанавливаем значение свойства Child равным True. 4) Создаем меню для MDI - формы, состоящее из пунктов «Добавить форму», «Добавить студента», «Выход» и «Вид окон». 5) Также добавляем в проект модуль. Код для MDI - формы: Dim i As Integer Private Sub New_form_Click() Dim newform As New Form1 newform.Show newform.Caption = "Новый студент" End Sub Private Sub New_student_Click() add_student End Sub Private Sub Exit_Click() End End Sub Private Sub WindowArrange_Click() MDIForm1.Arrange vbArrangeIcons End Sub Private Sub WindowCascade_Click() MDIForm1.Arrange vbCascade End Sub Private Sub WindowTileH_Click() MDIForm1.Arrange vbTileHorizontal End Sub Private Sub WindowTileV_Click() MDIForm1.Arrange vbTileVertical End Sub Код для Form1: Private Sub Command1_Click() Unload Me End Sub Код для Модуля1; Private Type StudentType fam As String * 30 Name As String * 20 Fac As String * 10 Gru As String * 10 End Type Public tmp As StudentType Public arr() As StudentType Public col As Integer Sub add_student() Do wrk If MsgBox("Добавить еще студента???", vbYesNo, "Еще??") = vbNo Then: Exit Do Loop End Sub Sub form_active() If MDIForm1.ActiveForm Is Nothing Then Dim tmpfrm As New Form1 tmpfrm.Show End If End Sub Sub wrk() Dim i As Integer Dim tmp_str As String A = MsgBox("Добавить в эту же форму???", vbYesNo, "Куда???") If A = vbNo Then Dim tmpfrm As New Form1 tmpfrm.Show tmpfrm.Caption = "Новый студент" End If form_active Inp_inf_stud tmp ReDim Preserve arr(col) arr(col) = tmp col = col + 1 For i = 0 To 3 With arr(col - 1) Select Case i Case 0: tmpstr = .fam Case 1: tmpstr = .Name Case 2: tmpstr = .Fac Case 3: tmpstr = .Gru End Select End With MDIForm1.ActiveForm.List1(i).AddItem tmpstr Next i End Sub Private Sub Inp_inf_stud(ByRef StudentData As StudentType) Dim s(3) As String Dim i As Integer i = 0 Do Until i > 3 Select Case i Case 0: s(0) = InputBox("Введите фамилию", "Студент") Case 1: s(1) = InputBox("Введите имя", "Студент") Case 2: s(2) = InputBox("Введите факультет", "Студент") Case 3: s(3) = InputBox(“Введите группу", "Студент") End Select For n = 0 To 3 If s(n) = "" Then s(n) = "Нет данных" Next n With StudentData Select Case i Case 0: .fam = s(0) Case 1: .Name = s(1) Case 2: .Fac = s(2) Case 3: .Gru = s(3) End Select End With For n = 0 To 3 s(n) = "" Next n i = i + 1 Loop End Sub Запускаем приложение (рис.1-3) Рис.1 MDI - приложение: окна каскадом Рис.2 MDI - приложение: окна ориентированы вертикально Рис.3 MDI - приложение: ввод данных Задание 2. Осуществите запись полученной информации в файл Добавляем в проект пункт меню «Сохранить все» (для MDI - формы). Для события save_Click пишем код: Private Sub save_Click() Dim FNamber As Integer Dim adress As String Dim i As Integer Dim k As Integer FNamber = FreeFile() adress = InputBox("Введите адрес файла, в котором сохранится информация", "Сохранить как", "E:\student.txt") Open adress For Random Access Write As FNamber Len = Len(arr(i)) Do If i = col Then: Exit Do k = i + 1 Put #FNamber, k, arr(i) i = i + 1 Loop Close FNamber End Sub Запускаем приложение (рис.4,5) Рис.4 Сохранение данных в файл Рис.5 Текстовый файл с данными о студенте Задание 3. Запишите данные в рабочий ЛИСТ 1 приложения EXCEL интегрированного пакета MS OFFICE. Добавляем в проект пункт меню «Экспортировать в Excel» (для MDI - формы). Подключаем к Visual Basic 6.0 библиотеку объектов Excel. Для этого открываем меню «Проект» > «Информация». Выбираем Microsoft Excel 11.0 Object Library. Для события Excel_Click записываем код: Private Sub Excel_Click() Dim appl As New Excel.Application Dim wb As Excel.Workbook Dim ws As Excel.Worksheets Set appl = New Excel.Application appl.Visible = True Set wb = appl.Workbooks.Add With wb.Worksheets("Лист1") Dim i As Integer Dim j As Integer For i = 0 To co - 1 For j = 1 To 4 Select Case j Case 1: .Cells(i + 1, j) = arr(i).fam Case 2: .Cells(i + 1, j) = arr(i).Name Case 3: .Cells(i + 1, j) = arr(i).Fac Case 4: .Cells(i + 1, j) = arr(i).Gru End Select Next j Next i End With End Sub Запускаем приложение (рис.6) Рис.6 Файл EXCEL с данными о студенте Вывод: Выполняя данную лабораторную работу, мы научились создавать MDI- приложения. Используя такое приложение, пользователь может одновременно работать с несколькими документами. MDI-приложения позволяют использовать несколько экземпляров одной и той же формы, что увеличивает производительность и гибкость программ. Также были изучены основные приемы работы с записью данных в файл, а также экспорт данных в приложения Microsoft Office, на примере MS Excel интегрированного пакета MS Office.
|