Цель работы: изучение возможностей создания MDI – приложений, записи информации в файлы и использование технологии OLE при работе с приложениями MS Office
Задание 1. Разработайте MDI – приложение, позволяющее вводить информацию о студентах: фамилия, имя, факультет, группа (в качестве дочерней формы можно использовать разработанное приложение в задании 4 лабораторной работы 5 – 6). Приложение должно обеспечивать возможность выводить данные о выбранном студенте в существующую дочернюю форму или создавать для каждого студента свою форму.
Запускаем Visual Basic 6.0. Выбираем “StandartEXE”.
Добавляем в проект MDI - форму. Для этого открываем меню «Проект» → «Добавить MDI - форму»
У Form1 устанавливаем значение свойства Child равным True.
Создаем меню для MDI - формы, состоящее из пунктов «Добавить форму», «Добавить студента», «Выход» и «Вид окон».
Также добавляем в проект модуль.
Код для 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.