Создание клиентских частей SQL-баз данных под Win95 и WinNT


    d8ef8794     

2.5 Разработка программы - часть 5


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

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

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

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

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





Содержание  Назад  Вперед