Смекни!
smekni.com

Организация документооборота с помощью "Visual Basic for Application" (стр. 21 из 22)

раскрывающийся список Object (Объект) — обеспечивает выбор объектов приложения. Этот список находится в левом верхнем углу окна редактора. При выборе объекта в этом списке синхронно изменяется содержимое списка Procedure;

раскрывающийся список Procedure (Процедура) дает возможность выбора членов объекта (событий) и автоматического вывода процедуры или шаблона для выбранного члена в окне редактора. Этот список находится справа от списка Object; кнопка Procedure View (Просмотр процедур) — включает режим просмотра процедур для каждого объекта по отдельности. Располагается в левом, нижнем углу окна редактора;

кнопка Full Module View (Полный просмотр модулей) — включает режим работы полного просмотра процедур, при котором в окне редактора показаны все процедуры, разделенные горизонтальной линией (если установлен соответствующий флаг настройки). Располагается в левом нижнем углу окна редактора;

горизонтальная и вертикальная полосы прокрутки — позволяют просмотреть текст, который не помещается в текущем окне редактора.

Как можно понять из списка элементов управления, редактор кода работает в двух режимах: в режиме просмотра всего текста приложения (полный просмотр процедур) и в режиме просмотра процедур по отдельности (просмотр отдельных процедур). Редактор кода вызывается автоматически при двойном щелчке мыши на форме проекта или командой Code (Код) меню View (Вид). Для каждого элемента проекта (формы или программного модуля) открывается отдельное окно редактора кода. Соответственно это окно появляется в списке окон меню Window (Окно). В большом проекте удобнее всего работать из Проводника проекта. В этом случае редактор кода вызывается кнопкой View Code (Просмотр кода) панели инструментов окна Проводника.

2.3 Характеристика программы

Данная программа написана на языке Visual Basic 6.0 и представляет собой 1 приложением, предназначенных выполнять все функции, которые требуются заданию. В конечный продукт входит 1 откомпилированное приложения, размер которого составляет соответственно 892 байт. Для работы необходимы следующие системные ресурсы: Прежде чем приступить к работе с данной системой, необходимо иметь: компьютер, совместимый с IBM PC с тактовой частотой процессора не менее 1500 MHz; оперативную память 256 Mb; жесткий диск объемом 40 Mb; видеоадаптер SVGA с объемом оперативной памяти 128 Mb.

2.4 Контрольный пример

2.5 Инструкция пользователя

Для запуска программы необходимо выполнить следующие действия. Нажать кнопку пуск в панели задач; И наитии программу Visual Basic 6.0.

После этого на экране программы появляется с краткой информацией о ней самой в данном режиме пользователю требуется открыть БД. Это можно сделать 2-мя способами: Через меню Файл- Открыть Базу Данных; щелкнуть в панели инструментов пиктограмму открытия БД.

В том и другом случае программа выведет окно в котором пользователь может выбрать или ввести имя и путь к БД. По нажатию кнопки «ОК» программа открывает БД после этого становится до этого не доступная пункт меню «База данных» и все остальные пиктограммы панели инструментов доступными. Программа готова к работе Строка меню состоит из следующих пунктов:

Файл - служит для работы с файлами за режимом закрепляются падающие меню: Открыть БД;

Закрыть БД - после выполнения этого пункта меню программа возвращается в исходное

положение;

Выход;

Таблица - служит для работы с БД. За режимом закрепляется падающие меню:

Таблица «спец меню»;

Таблица «дополнительная информация»;

Сервис служит для работы с запросами по БД. За режимом закрепляется падающие

меню:

Создание БД - после выполнения этого пункта меню запускается второе приложение генерации БД.

Ввод запроса - после выполнения этого пункта меню выводится окно с запросом для поиска.

Окно - служит для работы с окнами. ЗА режимом закрепляется падающие меню:

Закрыть все - позволяет закрыть все открытые окна. Каскад - позволяет расположить окна наложением ; Мозаика - равномерное деление окон на экране; Выстроить значки упорядочить свернутые окна. Панель инструментов состоит из следующих пентаграмм Открыть БД; Закрыть БД; Запрос; Выход;

В панели состояния высвечиваются текущие время и дата.


ЗАКЛЮЧЕНИЕ

В данном Курсовом проекте был разработан программный пакет, позволяющий автоматизировать процесс работы « разработка информационно-поисковой системы по подбору аудиторий.» Продукт был реализован на языке VBA в среде программирования MS Excel.

Для функционирования его на персональном компьютере не обязательно наличие программы Visual Basic 6.0, т.к. для начала работы программы необходимо лишь запустить файл проекта.

Программа достаточно проста в использовании, поэтому приемлема для любого пользователя.


Приложение 1

Процедуры листа отчет 2

Private Sub CommandButton1_Click()

Dim colors(10) As Integer

colors(1) = 4 ' Установка цветов

colors(2) = 22 ' для обозначения факультетов

colors(3) = 19

colors(4) = 24

colors(5) = 26

colors(6) = 40

colors(7) = 43

colors(8) = 44

colors(9) = 6

colors(10) = 28

If L1.ListIndex = -1 Then ' Выход, если не выбрана неделя

MsgBox (" Не выбрана неделя ")

Exit Sub

End If

Range("a5:AZ100").Select ' Очистка области данных

Selection.ClearContents

' Подсчет количества учебный дней в неделе

N_Day = 0

While Worksheets(2).Cells(N_Day + 2, 4).Value <> ""

N_Day = N_Day + 1

Wend

' Подсчет количества занятий в течение дня

N_Times = 0

While Worksheets(2).Cells(N_Times + 2, 5).Value <> ""

N_Times = N_Times + 1

Wend

' Подсчет количества аудиторий

N_Ayd = 0

While Worksheets(2).Cells(N_Ayd + 2, 1).Value <> ""

N_Ayd = N_Ayd + 1

Wend

DaysTimes = N_Day * N_Times

N_Boss = 0 ' Подсчет заявителей

While Worksheets(2).Cells(N_Boss + 2, 6).Value <> ""

N_Boss = N_Boss + 1

Wend

Range("b7:AZ100").Select

With Selection.Interior ' Заливка белым цветом области вывода

.ColorIndex = 0

.Pattern = xlSolid

End With

For i = 1 To N_Boss

Cells(2, 2 + i * 2).Select

With Selection.Interior ' Установка обозначений цветов

.ColorIndex = colors(i) ' заявителей

.Pattern = xlSolid

End With

' Установка подписей заявителей для соответствующих цветов

Cells(1, 2 + i * 2).Value = Worksheets(2).Cells(i + 1, 6).Value

Next

' Подсчет количества строк с завками на 1-м листе

N = 0

While Worksheets(1).Cells(N + 4, 1).Value <> ""

N = N + 1

Wend

stroka = 7 ' Данные на листе размещаются начиная с седьмой строки

For i = 1 To N_Ayd ' Установка подписей аудиторий

Cells(stroka, 1).Value = _

Worksheets(2).Cells(i + 1, 1).Value

stroka = stroka + 1

Next

St = 1

For i = 1 To N_Day ' Установка подписей занятий

For j = 1 To N_Times

St = St + 1

Cells(5, St).Value = Worksheets(2).Cells(i + 1, 4).Value

Cells(6, St).Value = Worksheets(2).Cells(j + 1, 5).Value

Next

Next

For i = 1 To DaysTimes

For j = 1 To N_Ayd

Cells(6 + j, i + 1) = 0 'Инициализация ячеек

Next

Next

For i = 4 To N + 3 ' Цикл по строкам заявок

If CStr(Worksheets(1).Cells(i, 7).Value) = "да" Then

' Выполнение условия по обслуживанию заявки

stroka = 0

For ia = 1 To N_Ayd

If CStr(Worksheets(1).Cells(i, 8).Value) = _

CStr(Cells(ia + 6, 1).Value) Then

stroka = ia + 6

Exit For

End If

Next

If stroka > 0 And _

CStr(Worksheets(1).Cells(i, CInt(L1.Text) + 11).Value) = _

"*" Then

' Если есть строка с указанной аудиторией

For m = 1 To DaysTimes

' Нахождение столбца на листе для помещения заявки

If CStr(Worksheets(1).Cells(i, 4).Value) = _

CStr(Cells(5, 1 + m).Value) Then

If CStr(Worksheets(1).Cells(i, 5).Value) = _

CStr(Cells(6, 1 + m).Value) Then

stolbec = 1 + m

Exit For

End If

End If

Next

nomer = 1

For iy = 1 To N_Boss 'Определение заявителя в заявке

If CStr(Worksheets(1).Cells(i, 2).Value) _

= CStr(Worksheets(2).Cells(iy + 1, 6).Value) Then

nomer = iy

Exit For

End If

Next

Cells(stroka, stolbec).Value = _

Cells(stroka, stolbec).Value + _

Worksheets(1).Cells(i, 6).Value

Cells(stroka, stolbec).Select

With Selection.Interior

.ColorIndex = colors(nomer) ' Установка заливки

.Pattern = xlSolid ' для ячейки

End With

End If

End If

Next

Range("a5").Select

End Sub

Private Sub Worksheet_Activate()

N_Ned = 0

While Worksheets(2).Cells(N_Ned + 2, 3).Value <> ""

N_Ned = N_Ned + 1

Wend

L1.Clear

For i = 1 To N_Ned

L1.AddItem Worksheets(2).Cells(i + 1, 3).Value

Next

If L1.ListCount > 0 And Sav1 < L1.ListCount Then

L1.ListIndex = Sav1

End If

End Sub

Private Sub Worksheet_Deactivate()

Sav1 = L1.ListIndex

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

' Вычисление строки и столбца выделенной ячейки

stroka = ActiveCell.Row

stolbec = ActiveCell.Column

If stolbec <> 1 Then

' Информационное окно видимо только при выделении первой колонки

Inf1.Visible = False

ElseIf stroka > 6 Then

Inf1.Visible = True

Inf1.Text = "Вместимость " + _

Str(Worksheets(2).Cells(stroka - 5, 2)) + "чел"

End If

End Sub

Процедуры листа отчет 3

Private Sub Com_2_Click()

' Номера строки и столбца выделенной заявки

NumStr = ActiveCell.Row

NumCol = ActiveCell.Column

If NumStr < 7 Or NumCol < 2 Then

Exit Sub

End If

Vrem = CStr(Cells(6, NumCol)) ' Вычисление времени и дня времени занятия

Den = CStr(Cells(5, NumCol))

aud = CStr(Cells(NumStr, 1))

ColZ = 0 ' Подсчет заявок в выделенной ячейке

N = 0 ' Подсчет количества заявок на первом листе

While Worksheets(1).Cells(N + 4, 1).Value <> ""

N = N + 1

Wend

For i = 1 To N ' Цикл по количеству заявок

Day1 = CStr(Worksheets(1).Cells(i + 3, 4).Value)

Time1 = CStr(Worksheets(1).Cells(i + 3, 5).Value)

Aud1 = CStr(Worksheets(1).Cells(i + 3, 8).Value)

indicator = 0

If Time1 = Vrem And Day1 = Den And aud = Aud1 Then

For j = CInt(L1.Text) To CInt(L2.Text)

If Worksheets(1).Cells(i + 3, 11 + j).Value = "*" Then

'indicator = 1

ColZ = ColZ + 1

mZ(ColZ) = i + 3

Exit For

End If

Next

End If

Next

Cells(NumStr, NumCol).Select

With Selection.Interior

.ColorIndex = 38

.Pattern = xlSolid

End With

End Sub

Private Sub Com_3_Click()

row7 = ActiveCell.Row ' Вычисление номера столбца и строки

col7 = ActiveCell.Column

Symma = Cells(NumStr, NumCol).Value ' Итоговая сумма копируемой ячейки

N = 0 ' Вычисление числа строк на первом листе

While Worksheets(1).Cells(N + 4, 1).Value <> ""

N = N + 1

Wend

NNa = 0 ' Число аудиторий на первом листе

While Worksheets(2).Cells(NNa + 2, 1).Value <> ""

NNa = NNa + 1

Wend

audN = CStr(Cells(row7, 1)) ' Значения аудитории, дня и времени выделенной

denN = CStr(Cells(5, col7)) ' ячейки

vremZ = CStr(Cells(6, col7))

flagZ = 0 'Индикатор возможности перемещения заявок