Смекни!
smekni.com

Автоматизация разработки медиаплана для ООО "Медиа-Групп" (стр. 9 из 13)

В программе «Медиаплан» используется процедура sub. Процедура sub не возвращает значения и наиболее часто используется для обработки связанного с ней события. Ее можно помещать в стандартные модули, модули классов и форм. Она имеет следующий синтаксис:

[Private] [Public] [Static} Sub имяПроцедуры (аргументы)

операторы

End Sub

Модули формы могут содержать объявления переменных, констант, типов данных, внешних процедур, используемых на уровне модуля, процедур обработки событий. Они хранятся в файлах, имеющих расширение frm. В модуле можно также ссылаться на другие формы и объекты данного приложения.

На четвертом этапе разрабатывается формат файлов хранения договоров.

Каждый договор сохраняется в отдельный файл типа aa-bb-cccc_xxx, где aa-день, bb-месяц, cccc-год создания договора, а xxx-имя организации, заключившей договор. Все файлы договор имеют расширение MGF и сохраняются в папке MGFiles.

Файл медиаплана представляет собой текстовой документ, где данные из приложения к договору сохраняются массивом и размещаются построчно.

Каждой строке строго соответствует определенная позиция договора.

На каждую новую позицию приложения к договору, в случае создания нового договора на основе имеющегося, добавляется четыре строки, номер позиции меняется.

Таблица 2.1 – Формат договора

№ строки Реквизит договора
1 номер создаваемого договора
2 дата создания договора
3 наименование экрана
4 название организации
5 имя ролика с расширением
6 хронометраж ролика
7 ФИО исполнителя
8 ФИО заказчика
9 стоимость изготовления ролика
10 количество позиций размещения, n
11 дата начала первой позиции
12 дата окончания первой позиции
13 периодичность первой позиции
14 цена за секунду проката первой позиции
15 дата начала второй позиции
...

Пример построчного размещения данных договора приведен в таблице 2.2:

Таблица 2.2 – Пример построчного размещения данных

5

04-24-2006

г. Бийск, пл. 9-го Января

fagot

fgt.avi

5

Трошин Е.Н.

ffgghj

111

2

12.03.2006

12.03.2006

5

0,5

12.03.2006

12.03.2006

5

1


На пятом этапе создается модуль программы. Объявляются глобальные переменные в модуле, программируются функции модуля. Глобальные переменные, описание и принципы работы функций модуля изложены в таблице 2.3.

На шестом этапе создаются текстовые файлы, которым присваивается расширение «.ini». Файлы Price.ini и Screen.ini хранят информацию настроек по умолчанию об адресах носителей (светодиодных экранов) и ценах за одну секунду проката видеоматериала на светодиодных экранах.

Тестирование программы на наличие ошибок проходит под наблюдением системного администратора. По окончании тестирования исходный файл компилируется в исполняющий двоичный файл, то есть создается независимый от среды исполнения файл (с расширением ехе), библиотека динамической компоновки (с расширением dll) и компоненты ActiveX (с расширением осх).

При необходимости создается инсталляционный модуль программы в виде самораспаковывающегося архива RAR с помощью программы WinRAR.

2.6.4 Описание функций модуля и принципы их работы

Программы Visual Basic хранятся в программных модулях, которые бывают трех видов: модуль формы, стандартный модуль и модуль класса.

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

Программа «Медиаплан» содержит модуль (код) формы и стандартный модуль.

Стандартные модули могут содержать объявления глобальных и локальных переменных, констант, типов, внешних процедур и процедур общего характера, доступных для других модулей данного приложения. Они хранятся в файлах с расширением bas.

Стандартный модуль программы «Медиаплан» использует процедуры Function

Процедуры Function в отличие от процедур sub могут возвращать значение в вызывающую процедуру. Синтаксис процедуры Function выглядит следующим образом:

[Private] [Public] [Static} Function имяПроцедуры (аргументы) [Astype]

операторы

End Function

Процедуры Function, как и переменные, имеют тип, задаваемый с помощью ключевого слова As. Если тип процедуры не задан, по умолчанию ей присваивается тип Variant. Тип процедуры определяет в свою очередь тип возвращаемого ею значения. Возвращаемое процедурой значение присваивается имени процедуры имяПроцедуры и может быть использовано в выражениях программного кода аналогично стандартным функциям Visual Basic.

Синтаксис модуля разрабатываемой программы имеет следующую структуру:

Option Explicit ‘объявляется список переменных

[Public] имяПеременной [Astype] ‘ объявляется переменная

..............................................................’ следующая переменная

[Public} Function имяПроцедуры (аргументы) [Astype]

операторы

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 - функция режима «Поиск».