Смекни!
smekni.com

Создание клиентских частей SQL БД под ОС Windows'95 и WindowsNT (стр. 26 из 27)

Модификация данных в главном окне зависит от того, было ли выбрано удаление или добавление и редактирование. Удаление записи в журнале регистрации происходит только после подтверждения пользователем. При модификации записи программа раскрывает окно для ввода информации, при этом если было выбрано редактирование, то в поля записывается соответствующая информация. Форма ввода информации разделена на две части: ввод информации по счету и ввод информации по товарам этого счета. Из формы редактирования можно попасть в формы просмотра и редактирования справочников, при этом в формах справочников появляется дополнительная возможность отменить вызов формы, а справочнике налогов также появляется возможность очистить соответствующее поле в форме ввода счета. В форме ввода счета можно вводить товары, включенные в счет, при этом возможна модификация введенной информации, такая как удаление, добавление и обновление введенной информации. Данная часть формы ввода счета содержит в себе окно просмотра введенной информации и форму ввода информации. При изменении позиции курсора в окне просмотра введенной информации по товарам, форма ввода автоматически заменяет свое содержимое. При добавлении и обновлении товаров, в программе предусмотрена проверка на правильность заполнения полей ввода. При ошибке, пользователю выдается сообщение об ошибке и автоматически позиционируется курсор на место ошибки. Если выбран режим добавления счета-фактуры, то ставка НДС по умолчанию устанавливается в 20%. При правильном заполнении всех полей программа подготавливает данные для ввода в базы данных и вводит их при помощи хранимой процедуры SP_ADD_FACT. Эта процедура имеет в параметрах все реквизиты документа и реквизиты одного товара. Остальные товары добавляются в базу данных циклически.

Печать документа вызывается из главного окна при помощи выбора соответствующей кнопки на панели инструментов или при выборе пункта в главном меню. При выборе печати из главного меню выводится стандартное окно выбора принтера и дальнейшей печати. Бланк документа зашит в программу и был спроектирован при помощи встроенного в Delphi дизайнера отчетов QuickReport. В документе выбран кириллический шрифт true type, размер и особенности шрифта (такие как наклон, толщина и т.д.) заданы при создании отчета, и не могут быть в дальнейшем изменены пользователем. Часть данных в форму документа передается через результат запроса (перечень товаров счета), а другая при непосредственной записи в соответствующие поля. В зависимости от типа документа (выданый или полученный) поля в документе меняются местами. Данные о предприятии пользователя считываются из файла настроек.

Печать или просмотр журнала регистрации вызывается из главного окна при помощи выбора соответствующей кнопки на панели инструментов или при выборе пункта в главном меню. При выборе печати из главного меню выводится стандартное окно выбора принтера и дальнейшей печати. Бланки отчетов (книга выданных или книга полученных) зашит в программу и был спроектирован при помощи встроенного в Delphi дизайнера отчетов QuickReport. В документе выбран кириллический шрифт true type, размер и особенности шрифта (такие как наклон, толщина и т.д.) заданы при создании отчета, и не могут быть в дальнейшем изменены пользователем. При вызове просмотра или печати журнала регистрации на экран выводится диалоговое окно, в котором пользователю предлагается ввести временной интервал, за который он хочет просмотреть или распечатать журнал регистрации. При этом если данные в главном меню уже отфильтрованы по дате, то программа подставляет этот временной интервал, если же данные небыли отфильтрованы, то подставляется текущий месяц целиком. После модификации пользователем временного интервала, интервал, вместе с типом счета, посылается с запросом в базу данных. При помощи хранимой процедуры SP_MAKE_BOOK, SQL сервер возвращает сформированные данные в программу. При отсутствии данных, пользователю выводится сообщение об отсутствии данных и предлагается ввести другой интервал. Пользователь может в любой момент отказаться от печати журнала регистрации. Если SQL сервер возвращает данные, то они подставляются, в зависимости от типа документа, в соответствующую форму.

Фильтрацию данных можно разделить на три части: фильтрация по типу документа, фильтрация по дате документа и расширенная фильтрация.

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

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

Вызов расширенного фильтра выводит окно, в котором пользователю предлагается ввести выражения для фильтрации данных. Это выражение должно быль написано на языке Transact-SQL, и программа подставляет его в запрос к базе данных после ключевого слова WHERE и фильтров по типу и дате документа. После этого расширенного фильтра, программа посылает запрос к базе данных и СУБД сама проводит синтаксический анализ введенного выражения. Если СУБД обнаружит ошибку, то пользователю сообщается об этом и предлагается исправить введенное выражение. При инициализации окна расширенного фильтра, программа считывает предыдущий расширенный фильтр и подставляет его в поле для ввода выражения - тем самым можно, очистив поле, очистить расширенный фильтр.

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

3. Отладка

Разрабатываемая программа должна вести журнал регистрации выданных и полученных счетов-фактур. Для ее успешной работы необходимы вспомогательные подпрограммы, поэтому программу можно представить как совокупность нескольких модулей: основная программа с вводом и корректировкой информации о счетах-фактуры, модуль справочников, состоящий из справочника клиентов и справочника налогов и модуль вывода на печать, состоящий из вывода на печать книги покупок/продаж и вывода на печать счета-фактуры.


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

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

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

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