Валютный кассир

Страница 12

-DBEdit позволяет редактировать поле (изменять текущие значения);

-DBMemo используется для просмотра и модификации большого текстового поля, которое будет сохранено в памяти, или на BLOB (Binak Legre Object – большой двойной объект);

-DBImage используется для показа картинки, хранимой в поле BLOB;

-DBListBox и DBComboBox используется для выбора единственного значения из указанного множества;

-DBCheckBox используется для показа и переключения параметра, соответствующего выполнению некоторой функции;

-DBCtrlGrid представляет собой сетку для нескольких записей и может владеть набором других компонентов обработки данных. Такие компоненты дублируются для каждой записи набора данных.

Все указанные компоненты связываются с источником данных с помощью соответствующего свойства Data Source. Многие из них ссылаются на определенное поле данных источника с помощью свойства DataFiled. Допустимые значения этого свойства представляются в виде выпадающего комбинированного списка. Другие свойства компонентов страницы DataControls подобны свойствам соответствующих стандартных управляющих элементов.

Языком программирования в среде Delphi является Object Pascal.

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

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

Учет налога 0.5% на покупку валюты, а также комиссионного вознаграждения производится в рамках модуля ’справка’, то есть при заполнение экранной формы справки строгой отчетности.

В соответствии с вышеизложенным структуру программного обеспечения АРМ ’Валютный кассир’ можно представить в виде, изображенном на рис. 2.2.

Рис.2.2 ’Структура ПО АРМ ’Валютный кассир’

2.5 БАЗА ДАННЫХ АРМ ’ВАЛЮТНЫЙ КАССИР’

БД, входящая в состав АРМ ’Валютный кассир’ написана как Delphi приложение с использованием языка программирования Object Pascal для работы под ОС Windows 95. БД состоит из двух основных частей:

-управляющего модуля;

-модулей экранных форм.

Рассмотрим процесс создания и заполнения таблиц данных. В составе БД имеется три основные таблицы:

1 таблица содержит в себе данные, характеризующие каждый обменный пункт филиала, а именно: название Банка, текущую дату, режим работы, адрес обменного пункта, его регистрационный номер, фамилия кассира, выданный аванс ‑ денежной массы и документов;

2 таблица содержит данные об иностранной валюте, с которой обменный пункт проводит операции, а именно – название каждой валюты и ее код, текущая дата, курс ЦБ, внутренние курсы покупки / продажи валют, а также остаток денежной массы на текущий момент;

3 òàáëèöà здесь содержатся такие данные о справках строгой отчетности, как: серия и номер справки, информация о том, была ли забракована справка или нет, текущая дата, режим работы (Утро / Вечер) и регистрационный номер обменного пункта.

Создание таблиц происходило следующим образом. Прежде всего, с помощью диспетчера файлов Windows (Windows File Manager), делается новый каталог C: BOXLIGHT TEMP. Это то место, где будут размещаться таблицы и индексы. Позднее они будут скопированы в каталог, специально предназначенный для приложения.

Далее, следует перейти к Delphi, из меню Tools (Инструментальные средства) запустить Database Desktop (Рабочий стол БД). Из меню File (Файл) в DBD нужно выбрать New/Table (Новая Таблица) и выбрать dBase для Windows из предложенного набора типов файлов. Открывшийся после этого диалог Create Table (Создать таблицу) помогает определить таблицу с помощью специфики полей.

Для создания индекса по полю таблицы следует щелкнуть кнопкой на Define (Определить), в результате чего на экране появляется диалог Define Index (Определить индекс). Из списка полей выбирается индексируемое поле, на нем надо дважды щелкнуть, затем отметить индикатор Unique (Уникальный), т.к. индекс по этому полю должен иметь характеристику ’уникальный’. Полностью специфицировав все поля и индексы следует нажать кнопку Save as (Сохранить как) в диалог Create Table и записать файл в каталог C: BOXLOGHT TEMP.

Без разработки при помощи Delphi быстрых черновых инструментальных средств не обойтись. Одна из утилит должна содержать DBMemo‑объект, который должен быть связан с полем мемо. Затем ввести данные в это поле во все записи таблицы и перекомпилировать утилиту так, чтобы объект DBMemî áûë ñâÿçàí ñ äðóãèì ïîëåì ìåìî. Ïîñëå ýòîãî âñå текстуальные äàííûå в таблицу введены. Затем можно переключиться на таблицу общей информации и обработать мемо‑поля там.

Вторая утилита должна содержать объект DBImage, который следует связать с полем BLOB в таблице. После этого можно поочередно вводить битовые карты графических изображений в буфер обмена информации (карман) и вставлять их затем в DBImage.

Первую утилиту можно соорудить мгновенно, используя всего одну форму. Одновременно необходим доступ только к одной таблице, поэтому создается компоненты Ttable/DataSource. Кроме того, добавляется компонентDBText, связав его с полем PRD_NAME, так чтобы при работе с таблицей было видно с каким продуктом имеется дело. Вначале модифицируется свойство DBNavogator VisibleButtons (Видимые кнопки), так чтобы были видны первые четыре кнопки. Расставив все по местам модифицируются некоторые свойства объектов, предназначенные для работы с таблицей. Далее следует щелкнуть на Table и установить DataBase_Name (Имя БД), указав путь к каталогу БД, содержащему таблицы – C:BOXLIGHTTEMP, месту, где они были созданы. Затем, щелкнув на Table (Имя таблицы) выбирается PRODUCTS.DBF,наконец, щелкнув на IndexName (Имя таблицы) указывается PUD_STKNUM.Таким образом ‑ DataSouce (Источник данных) и Table (Таблица) соединены. Остается соединить с DataSoure – DBNavigator, DBtext и DBMemo. Для DBText в качестве DataField указывается PRD NAME.Для начала выбирается PRD_DEST для DBMemo для DataField.

После установки всех свойств следует дважды щелкнуть на Active в Table, чтобы связать ее с PRODUCT.DBF. Так как по умолчанию все объекты, информированные о данных (data aware objects), допускают прямое редактирование всех полей, то в DBText сразу появляется ’ColorShow 1200’.

По окончанию ввода данных необходимо вновь обратиться к программе и изменить свойствоDataField в DNMemol на RD_SPECS. Затем вновь – компиляция и выполнение. Теперь уже вводятся технические специфики продуктов. Процесс корректировки программы, компиляции, выполнения и ввода данных повторяется и для полей PRD_TIPS и PRD_ACCESS. Заполнив таблицу следует обратиться к таблице ’Общая информация’ и отредактировать ее единственное мемо‑поле. Для этого надо изменить DBMemol так, чтобы связать его с полем мемо, а компонент DBText настроить так, чтобы он отображал название категории. Кроме того надо изменить свойства TableName и IndexName, после чего устанавливается свойство Active в True.

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