Программы Visual Basic хранятся в программных модулях, которые бывают трех видов: модуль формы, стандартный модуль и модуль класса.
Простое приложение, состоящее из одной формы, содержит, как правило, только модуль формы. По мере усложнения приложения повторяющиеся функции, выполняемые с нескольких модулей формы, можно выделить в отдельный программный код, который будет являться общим для всех. Такой программный код называется стандартным модулем.
Программа «Медиаплан» содержит модуль (код) формы и стандартный модуль.
Стандартные модули могут содержать объявления глобальных и локальных переменных, констант, типов, внешних процедур и процедур общего характера, доступных для других модулей данного приложения. Они хранятся в файлах с расширением bas.
Стандартный модуль программы «Медиаплан» использует процедуры Function
Процедуры Function в отличие от процедур sub могут возвращать значение в вызывающую процедуру. Синтаксис процедуры Function выглядит следующим образом:
[Private] [Public] [Static} Function имяПроцедуры (аргументы) [As type]
операторы
End Function
Процедуры Function, как и переменные, имеют тип, задаваемый с помощью ключевого слова As. Если тип процедуры не задан, по умолчанию ей присваивается тип Variant. Тип процедуры определяет в свою очередь тип возвращаемого ею значения. Возвращаемое процедурой значение присваивается имени процедуры имяПроцедуры и может быть использовано в выражениях программного кода аналогично стандартным функциям Visual Basic.
Синтаксис модуля разрабатываемой программы имеет следующую структуру:
Option Explicit ‘объявляется список переменных
[Public] имяПеременной [As type] ‘ объявляется переменная
..............................................................’ следующая переменная
[Public} Function имяПроцедуры (аргументы) [As type]
операторы
End Function
…………………………………………’ следующая функция
Список используемых в программе глобальных переменных, объявленных в начале модуля и вызываемых командой Dim по мере их необходимости приведен в таблице 2.3:
Таблица 2.3 - Глобальные переменные модуля
Имя | Тип | Размер | Назначение |
PathProgramLow | String (строковая переменная) | 1 байт на символ | Хранит путь программы (без учета каталога с договорами) |
PathProgram | String (строковая переменная) | 1 байт на символ | Хранит путь программы + папка с договорами |
OnDay | Variant (универсальная; может хранить любые типы данных) | Не менее 16 байт | В процессе загрузки программы этой переменной приравнивается значение, равное одному дню. |
TrEditMode | Boolean (логический тип данных) | 2 байта | Триггер для определения режима редактирования договора |
allPos | Integer (Целочисленная переменная) | 2 байта | Кол-во позиций в создаваемом договоре |
numPos | Integer (Целочисленная переменная) | 2 байта | Номер активной позиции в создаваемом договоре |
TrVidAct | Integer (Целочисленная переменная) | 2 байта | Триггер для определения активного режима работы программы: 0-Просмотр, 1-Создать, 2-Поиск, 3-Настройки |
SelectedFile | String (строковая переменная) | 1 байт на символ | Хранит имя файла, выбранного в режиме Просмотра |
TrBitAct | Boolean (логический тип данных) | 2 байта | Триггер для определения нажатых кнопок в Главном меню |
MassView(11) | Variant (универсальная; может хранить любые типы данных) | Не менее 16 байт | Массив, в который заносятся данные из выбранного файла в режиме Просмотра |
Ниже приведены описания функций модуля программы и алгоритмы их работы и взаимодействия.
CreateMGF - функция создания договора. Функция служит, во-первых, для сохранения новых договоров в файл, во-вторых, для перезаписи редактируемых договоров.
Принцип работы:
- сначала идет проверка, заполнил ли пользователь все нужные поля формы, если есть пустые поля, то выводится диалоговое окно с текстом «Заполнены не все поля! Заполните оставшиеся поля и повторите процедуру», при этом функция прекращает работу;
- если все поля заполнены, и режим редактирования не выбран, то программа считывает с полей и с таблицы данные, создает новый файл с договором и записывает туда информацию. После этого функция завершает работу;
- если все поля заполнены и выбран режим редактирование, то программа выводит диалоговое окно с пояснениями и кнопками «Да», «Нет» и «Отмена». Если пользователь нажал «Отмена», то файл не создается и функция прекращает работу. Если нажата кнопка «Нет», то программа создает новый файл договора с текущей датой и дальше делает то, что описано в пункте 2. Если выбрана кнопка «Да», то программа сначала удаляет файл редактируемого договора, а затем создает файл с таким же именем и записывает туда все данные из полей и таблицы, после чего программа переходит в режим «Просмотра»;
Функция режима редактирования EditMGF активизируется тогда, когда пользователь выбрал в режиме Просмотра файл договора и нажал на кнопку «Правка».
Принцип работы:
- переходим в режим «Создать»;
- далее программа заносит в поля формы данные выделенного файла, причем эти данные она берет из массива MassView, который заполняется при работе функции ViewCode;
- очищаются данные таблицы, затем открывается файл редактируемого договора, из которого считываются нужные данные, после чего их заносят в таблицу;
- оставшиеся поля таблицы заполняются по формулам, на основе данных, взятых из файла;
- переставляем указатель позиций на крайнюю позицию, потом заносим в поля «Дата Начала», «Дата Окончания», «Периодичность» и «Цена за секунду» данные из крайней позиции;
- складываем суммы из всех позиций, затем в нижней строке таблицы выводим итоговую сумму;
- конец работы функции.
Функция скрытия всех элементов управления формы EraseAll скрывает все элементы управления на форме.
Функция реализации поиска FindAll предназначена для проведения поиска в режиме «Поиск» по одному из трех критериев.
Принцип работы:
- очищаем таблицу поиска;
- в зависимости от выбранного критерия поиска, программа по очереди считывает все файлы с договорами, сканирует в каждом из них нужную строку, где содержится данные, которые нужно найти;
- если программа нашла в каком-либо файле совпадение, то она выводит имя файла, где найдено совпадение, а также некоторые данные, вроде названия организации или имени ролика;
- конец работы функции.
FindCode - функция режима «Поиск».
Функция запускается при выборе режима «Поиск».
Принцип работы:
- показывает нужные элементы управления;
- считывает из всех файлов с договорами все имена организаций и роликов, после чего записывает их в выпадающие списки;
- конец работы функции.
Функция режима «Создать» NewCode запускается при выборе режима «Создать».
Принцип работы:
- показываем нужные элементы управления;
- выводим в нужном окне текущую и общее количество позиций.
Функция добавление записей в таблицу в режиме «Создать» NewCodeAdd
предназначена для считывания данных из формы в таблицу режима «Создать». Активизируется всякий раз, когда пользователь изменяет элементы управления режима «Создать».
Принцип работы:
- считывание из нужных элементов управления данных (Даты начала, окончания, периодичность, цена за секунду);
- занесение этих данных в таблицу;
- на основе этих данных по формулам просчитываем оставшиеся данные и записываем в таблицу;
- просчитываем все суммы и внизу таблицы выводим итоговую сумму;
- конец работы функции.
Функция печати PrintCode служит для печати договора.
Принцип работы:
- показываем и активируем форму печати frmPrint;
- заполняем поля формы печати данными из главной формы;
- после этого происходит процесс преобразования цифровой формы итоговой суммы в письменную форму;
- устанавливаем альбомную ориентацию печати, печатаем форму и очищаем очередь печати;
- очищаем поля формы печати, дезактивируем и скрываем форму печати.
Функция режима «Настройки» PropCode запускается при выборе режима «Настройки».
Принцип работы:
- показываем нужные элементы управления;
- загружаем данные из файлов Screen.ini и Price.ini, потом заносим их в нужные поля;
ReLoadBittons - функция меняет картинки графических кнопок на неактивные.
ReSizeForm - функция изменения размеров элементов управления формы.
При изменении размеров формы эта функция соответственно меняет размеры нужных элементов управления.
ViewCode - функция режима «Просмотр».
Принцип работы:
- показываем нужные элементы управления;
- если выбран файл, то считываем нужные данные из него и записываем эти данные в поля справа формы.
Дата: 2019-07-31, просмотров: 238.