Цикл деловой активности
Цель работы: изучение возможностей создания 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)
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.