47889 (608403), страница 16
Текст из файла (страница 16)
.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 — это достаточно мощный текстовый редактор с большим количеством возможностей и являющийся основным инструментом программиста для создания и отладки приложения. В окне редактора представлены следующие элементы управления:
раскрывающийся список 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 Инструкция пользователя














