3) Компонент TDBEdit. С помощь этого компонента можно как отображать значение некоторого поля текущей записи, так и редактировать это значение. При вводе значения программа автоматически следит за тем, чтобы оно соответствовало формату редактируемого поля (число, дата, время и т.п.).
4) Компонент TDBCheckBox. Этот компонент представляет собой флажок, значение истинности (вкл./выкл.) зависит от содержимого логического поля (Истина/Ложь), значение которого этот компонент отображает. Кроме того, данный компонент может работать и с текстовыми полями, однако для этого необходимо указать значения символов для истинности (вкл.) и неистинности (выкл.).
5) Компонент TDBMemo. Компонент предназначен для отображения и редактирования мемо-полей (полей содержащих многострочную текстовую информацию). Данные для отображения берутся из соответствующих полей таблицы базы данных.
6) Компонент TDBNavigator. Вообще-то, строго говоря, данный компонент не предназначен для непосредственного отображения данных. Его назначение – дать пользователю удобное средство перемещения по записям некоторой таблицы базы данных и облегчить ему такие действия, как вставка новой записи (отмену добавления), а так же редактирование (отмену редактирования) и удаление текущей записи. Однако этот компонент может использоваться и быть полезен только вместе с визуализирующими компонентами.
ГЛАВА 2. ПРАКТИЧЕСКАЯ ЧАСТЬ
Назначение разработки
Программа САЗПД «АВРОРа версия 1.0» предназначена для автоматизации заполнения различного рода финансовой (первичной) документации, хранения информации об этой документации в базе данных, формирования бумажной формы документов, различного рода отчетов, автоматизации обработки хранимой информации. В общем смысле программа предназначена для облегчения рутинной работы по заполнению финансовой документации и обработке информации, относящейся к этим документам, и не является автоматизированной системой ведения компьютерной бухгалтерии.
Составные части программы
Вся разработка программы состояла из двух основных этапов: проектирование и разработка непосредственно структуры базы данных в MicrosoftAccessXP и создание программной оболочки приложения баз данных в BorlandDelphi 7.0.
Проектирование базы данных состояло из создания необходимых таблиц для хранения данных, установления необходимых ключей и индексов. Последние в основном созданы для ускорения поиска необходимой информации.
База данных состоит из трех файлов баз данных MicrosoftAccessXP. Первый файл (Nuclls.mdb) предназначен непосредственно для хранения информации электронных форм первичных документов (накладных), второй файл (Lists.mdb) предназначен для хранения информации для списков подстановки, третий файл (Querys.mdb) предназначен для хранения временной информации во время работы с запросами (см. ниже). Разделение базы данных на три составляющих файла сделано для обеспечения большей сохранности информации и повышения ее делимости.
В файле Nuclls.mdb хранятся две таблицы (N_General и N_MIO), эти таблицы связаны связью «Один ко многим» - одной записи в таблице N_General соответствует одна или несколько записей в таблице N_MIO. Первая таблица предназначена для хранения общей информации по накладным, а вторая предназначена для хранения информации по товарам на конкретную накладную, если она предусматривает содержание нескольких товаров.
В файле Lists.mdb хранятся следующее таблицы: Tab_Clients (Список клиентов), Tab_Opt_FIO (Список Ф.И.О. отпускающих), Tab_Opt_STAT (Список должностей отпускающих), Tab_Pol (Список должностей получателей), Tab_Work (Список наименований товаров и услуг). При запуске программы, во время загрузки базы данных содержимое этих таблиц загружается в соответствующие списки подстановки.
В файле Querys.mdb содержится таблица для хранения временной информации во время работы пользователя с мастером запросов (см. ниже). Для хранения выбрана именно отдельная таблица базы данных, так как в это случае существенно облегчается обработка, проверка исходной информации (она вводится пользователем) и получение выходной информации (получение текста SQL и выполнение соответствующего запроса).
Однако, наиболее трудоемкой частью разработки стало составление программной оболочки приложения базы данных.
Все приложение состоит из одного запускного файла (непосредственно программы – файла Aurora.exe) и двух вспомогательных динамических библиотек DLL (файлы String_DLL.dll и modal_forms.dll). Последние загружаются в память по мере надобности. Первая библиотека содержит функции для обработки строковой информации, а вторая содержит некоторые модальные формы, которые пользователь может использовать гораздо реже, чем остальные окна. Разделение всего приложения на три основных части сделано для снижения объема занимаемого приложением в памяти компьютера. Это сделано потому, что пользователь может использовать некоторые функции программы сравнительно редко, а содержание всех этих функций в одном запускном файле приведет к значительному его увеличению.
Вся программа представляет собой многооконное приложение, состоящее из главного окна и рабочих окон. Кроме того, при разработке программы для компонентов, связывающих приложение с базой данных, был выделен отдельный модуль – модуль данных. Для связи приложения с файлами базы данных используются компоненты TADOConnection, TADOTable, TDataSource, а так же провайдер данных MicrosoftJet 4.0 OLEDBProvider. Для обеспечения некоторых сервисных функций используются компоненты TADOQuery. В некоторых таблицах TADOTable созданы вычисляемые поля для получения результатов вычислений на основании значений других полей, в частности сумм НДС без НДС и итоговой суммы на основании суммы накладной введенной пользователем. Работа с базой данных происходит в режиме кэширования изменений, т.е. любое изменение базы данных можно отменить до сохранения или выполнения другого изменения.
На главной форме размещены следующие компоненты: главное меню программы (компонент TMainMenu), панели инструментов (TToolBar), кнопки которых дублируют команды главного меню, а так же панель состояния (TStatusBar). Вся работа с таблицами баз данных происходит в рабочих окнах, на которых расположены необходимые визуализирующие компоненты и компоненты редактирования таблиц базы данных. В частности, имеются следующие рабочие окна: окно таблицы накладных, окно заполнения списка товаров и услуг для таблицы накладных, окно мастера запросов, окно мастера отчетов по таблице накладных.
Окно таблицы накладных состоит из панели инструментов (TToolBar), которая содержит кнопки редактирования таблицы (добавить, удалить, редактировать, сохранить), а так же кнопка изменения вида окна и кнопка отката сделанных изменений. Так же окно содержит визуализирующие компоненты, позволяющие представить хранящуюся в таблицах базы данных информацию в полях редактирования (компоненты TDBEdit, TDBComboBox, TDBCheckBox), а так же компонент TDBGrid, отображающий непосредственно таблицу накладных.
Во избежание случайного изменения ценной информации доступ к полям редактирования и таблице открывается только после перехода таблицы в режим редактирования по команде пользователя. Как отмечалось выше, для удобства работы пользователя используются списки подставки. Для редактирования этих списков используется специальное средство – редактор списков, которое позволяет редактировать непосредственно таблицы списков подстановки. Это средство вызывается специально предназначенной для этого командой главного меню.
Для организации более удобного способа обработки, поиска и добавления новой информации в программе существует специальное средство – мастер запросов. Он вызывается выбором соответствующей команды главного меню программы. Данное средство позволяет формировать запросы на сложную выборку, добавление, удаление и обновление (изменение) данных. Имеется возможность сохранения условий запросов на выборку, кроме того, возможен переход из таблицы запроса, отражающей записи, удовлетворяющие условиям запроса, с текущей записи к этой же записи в реальной таблице.
Условия запроса записываются в записях таблицы базы данных Querys.mdb, сформулированные условия проверяются и записываются соответствующим образом в свойство SQL в один из экземпляров компонента TADOTable. После чего выполняется запрос к текущей таблице.
Кроме запросов в программе имеется возможность выполнения поиска и фильтров различной сложности. Для этого используется отдельная форма. Определяется текущая таблица и для этой таблицы в случае использования поиска применяется метод компонента TADOTable– Locate, соответствующего этой таблице, а в случае фильтрации соответствующим образом изменяется свойство Filter этого компонента.
В программе имеется возможность создания печатных форм хранимых документов. Для этого предусмотрено отдельное окно. Печатная форма формируется в отдельном листе отдельной книги MicrosoftExcel на основе шаблона, который входит в комплект поставки программы. Исходя из этого для формирования печатной формы необходимо наличие на машине правильным образом установленного сервера MicrosoftExcel.
Для выполнения отчетов выделено отдельное окно. При появлении этого окна выполняется запрос через отдельный экземпляр компонента TADOQuery. Запрос выполняется с учётом ранее измененных параметров. Формирование печатной формы отчета, так же как и документов производится в MicrosoftExcel.
В программе предусмотрена справочная система, которая состоит из нескольких HTML-страниц. Для вызова справочной системы необходимо выбрать соответствующий пункт главного меню программы.