Цель работы: изучение возможностей создания 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 AsInteger
Private SubNew_form_Click()
Dim newform AsNew Form1
newform.Show
newform.Caption= «Новый студент»
End Sub
Private SubNew_student_Click()
add_student
End Sub
Private SubExit_Click()
End
End Sub
Private SubWindowArrange_Click()
MDIForm1.ArrangevbArrangeIcons
End Sub
Private SubWindowCascade_Click()
MDIForm1.ArrangevbCascade
End Sub
Private SubWindowTileH_Click()
MDIForm1.ArrangevbTileHorizontal
End Sub
Private SubWindowTileV_Click()
MDIForm1.ArrangevbTileVertical
End Sub
Код для Form1:
Private SubCommand1_Click()
Unload Me
End Sub
Код для Модуля1;
Private TypeStudentType
fam As String* 30
Name As String* 20
Fac As String* 10
Gru As String* 10
End Type
Public tmp AsStudentType
Public arr()As StudentType
Public col AsInteger
Subadd_student()
Do
wrk
If MsgBox(«Добавить еще студента???», vbYesNo, «Еще??») = vbNo Then: Exit Do
Loop
End Sub
Subform_active()
IfMDIForm1.ActiveForm Is Nothing Then
Dim tmpfrm AsNew Form1
tmpfrm.Show
End If
End Sub
Sub wrk()
Dim i AsInteger
Dim tmp_str AsString
A = MsgBox(«Добавить в эту же форму???», vbYesNo, «Куда???»)
If A = vbNoThen
Dim tmpfrm AsNew Form1
tmpfrm.Show
tmpfrm.Caption= «Новый студент»
End If
form_active
Inp_inf_studtmp
ReDim Preservearr(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).AddItemtmpstr
Next i
End Sub
Private SubInp_inf_stud(ByRef StudentData As StudentType)
Dim s(3) AsString
Dim i AsInteger
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
WithStudentData
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 Subsave_Click()
Dim FNamber AsInteger
Dim adress AsString
Dim i AsInteger
Dim k AsInteger
FNamber =FreeFile()
adress =InputBox(«Введите адрес файла, в котором сохранится информация»,«Сохранить как», «E:\student.txt»)
Open adressFor Random Access Write As FNamber Len = Len(arr(i))
Do
If i = colThen: 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 SubExcel_Click()
Dim appl AsNew Excel.Application
Dim wb AsExcel.Workbook
Dim ws AsExcel.Worksheets
Set appl = NewExcel.Application
appl.Visible =True
Set wb =appl.Workbooks.Add
Withwb.Worksheets(«Лист1»)
Dim i AsInteger
Dim j AsInteger
For i = 0 Toco — 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.