Смекни!
smekni.com

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

Range("b7:ZZ200").Select

With Selection.Interior

.ColorIndex = 0

.Pattern = xlSolid

End With

После этого подсчитывается количество заявителей на втором листе:

N_Boss = О

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

N_Boss = N_Boss + 1

Wend

В качестве следующего действия на лист выводятся названия заявителей и соответствующие им цвета. Для вывода этой информации используются первая и вторая строки листа:

For i = 1 То 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

Следующий фрагмент позволяет установить в пятой и шестой строках подписи время начала занятий:

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 (i = 1, 5).Value

Next

Next

На этом подготовительная часть для формирования отчета завершена, и далее заполнения отчета в цикле просматриваются все заявки. Если заявка обслужена (для нее подобрана аудитория) и на указанной неделе занятие по заявке проводится, то далее она анализируется. В противном случае иного отчета она не рассматривается.

В следующем фрагменте производится вычисление номера строки, где она а быть отражена:

Stroke = 0

For I = 1 To nom

If N_Ayd = CStr(Cells(i + 6, 1).Value) Then

Stroke = i + 6

Exit For

End if

Next

Аналогично вычисляется значение столбца на листе АФ, где необходимо отобразить отданную заявку:

For m = 1 To DaysTimes

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

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

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

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

Stolbec = 1 + m

Exit For

End If

End If

Next

Таким образом, мы определили ячейку на листе, где следует отразить ин­формацию по данной заявке.

Следующее действие — закраска ячейки цветом того факультета, к которому данная заявка относится:

Name_Boss = CStr(Worksheets(1).Cells(i, 2).Value)

For nomer = 1 To N_Boss

If Name_Boss = CStr(Worksheets(2).Cells(nomer + 1, 6).Value) Then

Exit For

End If

Next

Cells(stroka, stolbec).Select With Selection.Interior

.ColorIndex = colors(nomer)

.Pattern = xlSolid End With

Теперь осталось в выбранной ячейке указать количество студентов, зани­мающихся в аудитории. Программно это реализуется с помощью одной строки:

Cells(stroka, stolbec).Value = Cells(stroka, stolbec).Value +

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

Мы говорили, что на этом листе можно посмотреть информацию о вмести­мости аудитории. Для этого разработана следующая предопределенная про­цедура, которая выполняется при выделении той или иной аудитории. В ре­зультате необходимая информация выводится в окно для сообщений (листинг 21).

Листинг 21. Предопределенная процедура selectionСhaтge

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

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

Stroka = ActiveCell.Row

Stolbec = ActiveCell.Column

If Stolbec <> 1 Then

Информационное окно видимо только при выделении первого столбца

Infl.Visible = False

Elself Stroka > 6 Then

Infl.Visible = True

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

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

End If

End Sub

Отчет по ресурсам фонда аудиторий

Важным представляется ответ на вопрос: каков свободный ресурс аудиторий в определенном интервале учебных недель? Ответ на него можно получить на девятом листе книги Microsoft Excel, который называется Отчет 3. По горизонтали на этом листе в пятой и шестой строках выводятся дни и время начала занятий (фактически в этих строках перечислены все занятия в течение недели), а в первом столб­це указаны все аудитории, которыми располагает учебное заведение. В этом плане начало составления отчета ничем не отличается от предыдущего.

Однако теперь в сводной таблице выводится количество занятий в аудитори­ях в указанном интервале недель. При этом разная загруженность (различное количество занятий в выбранном интервале) дополнительно выделяется раз­ными цветами. На листе реализованы градации цвета в зависимости от за­груженности:

□ максимальная загруженность;

□ загруженность выше средней;

□ загруженность ниже средней;

□ в выбранном интервале недель нет занятий.

В этом случае пользователю часто достаточно взглянуть на отчет, чтобы оп­ределить, есть ли аудитории, скажем для организации дополнительной учеб­ной программы.

Кроме цветовой и числовой информации в ячейках можно получить более детальную информацию. Например, чтобы уточнить, какими занятиями аудитория все-таки занята, потребуется всего лишь двойной щелчок на вы­бранной ячейке. На листе откроется текстовое окно, отображающее все заня­тия, соответствующие выбранной ячейке.

Примечание

Чтобы убрать это текстовое окно с экрана, нужно сделать в нем двойной щелчок.

На листе для работы с отчетом заложена еще одна интересная возможность, связанная с двумя кнопками — Подготовить к перемещению и Переместить. С помощью этих кнопок можно перемещать занятия из одних аудиторий в другие. Для этого нужно выделить исходную ячейку и щелкнуть на кнопке Подготовить к перемещению — информация о заявке по указанной ячейке зафиксируется во внутренней структуре данных (буфере). После этого пользователю нужно лишь выделить ячейку, куда он намеревается перенести занятие, и щелкнуть на кнопке Переместить.

В результате таких простых действий в отчете произошли изменения на пер­вом листе заявок. Исходная заявка удалена, но при этом появилась.

Заметим, что алгоритм переноса заявки в новую аудиторию характеризуется определенным "интеллектом". Перед переносом заявки сначала анализирует­ся возможность переноса — нет ли в этой аудитории занятий в рассматри­ваемые интервалы недель. Например, если мы переносим две заявки (в одной ячейке может быть несколько занятий, если они проводятся в разные недели) из одной аудитории в другую, то в случае невозможности переноса одной из них эта заявка остается без изменений.

Рассмотренный отчет, таким образом, кроме получения наглядной сводной информации по загрузке, позволяет оперативно менять аудитории в состав­ленном расписании. Из отчета при необходимости можно быстро найти свободные классы для занятий и планировать циклы дисциплин на опреде­ленное время.

2.1.3.1 Блок – схема интерфейса


1


БД


2


таблица

3


связи

4


сервис

5


Справка 6


7

выход 8


2.1.3.2. Описание блок – схемы интерфейса

1. НАЧАЛО

2. Проверка условия, если условие истинно, то идем на блок _

3. Проверка условия, если условие истинно, то идем на блок _

3. Проверка условия, если условие истинно, то идем на блок _

4. Проверка условия, если условие истинно, то идем на блок _

5. Проверка условия, если условие истинно, то идем на блок

6. Проверка условия, если условие истинно, то идем на блок _

7. Проверка условия, если условие истинно, то идем на блок _

8. КОНЕЦ

2.2 Описание процесса отладки программы

Ошибки при работе над проектом, особенно сложным и большим, неизбежны. Поэтому при создании проекта важным этапом является отладка приложения. Отладка — непременный этап работы над любым проектом. Как правило, это проверка функционирования проекта и исправление ошибок перед передачей его на тестирование. Для выполнения отладки в Visual Basic 6 существует набор специальных инструментов, который рассматривается в этой главе. Редактор кода.

Редактор кода программы Visual Basic 6 — это достаточно мощный текстовый редактор с большим количеством возможностей и являющийся основным инструментом программиста для создания и отладки приложения. В окне редактора представлены следующие элементы управления: