Смекни!
smekni.com

Разработка и патентная защита программного средства Автоматизированное рабочее место инженера п (стр. 2 из 4)

Третья таблица «Детали» содержит сведения о номере детали, о наименовании детали, о технических характеристиках, о производителе.

В четвертой таблице «Инженеры» хранится информация о номере инженера, ФИО инженера, содержит телефон и адрес.

Для полей таблиц нужны различные типы данных. Задаем их согласно предполагаемым записям (см. таблицу 1, таблицу 2).

Таблица №1 – Создание доменов

Имя домена Тип Длина Not Null Ограничения
D_INDEX smallint + >0
D_NAME varchar 50
D_STOIM varchar 10
D_DATE DATE <TODAY
D_ADRES varchar 50
D_TELEPHONE varchar 15

Таблица 2 – Создание таблиц и определение их типов полей

Имя таблицы Поле Тип Длина Not Null PK Имя домена
client ID_CLIENT smallint + + D_INDEX
FIO_CL varchar 50 D_NAME
ADRES varchar 50 D_ADRES
TELEPHONE varchar 15 D_TELEPHONE
detail ID_DETAIL smallint + + D_INDEX
NAME_DETAIL varchar 50 D_NAME
TECH_HAR varchar 50 D_NAME
PROIZVOD varchar 50 D_NAME
ingener ID_ING smallint + + D_INDEX
FIO_ING varchar 50 + D_NAME
TELEPHONE varchar 15 D_TELEPHONE
ADRES varchar 50 D_ADRES
raschet Id_rasch smallint + + D_INDEX
Nalich_R varchar 50 D_NAME
Beznalich_R varchar 50 D_NAME
zakaz Id_zak smallint + + D_INDEX
DATE_PR DATE D_DATE
ID_CLIENT smallint + D_INDEX
ID_ING smallint + D_INDEX
ID_DET smallint + D_INDEX
ID_RASCH smallint + D_INDEX
DATE_V DATE D_DATE
STOIMOST VARCHAR 10 D_STOIM

Создали таблицы с помощью запроса SQL. Это можно увидеть по рисунку 4, рисунку 5, рисунку 6, рисунку 7, рисунку 8.

Рисунок 4 - Создание таблицы “Клиенты”

Рисунок 5 - Создание таблицы “Детали ”

Рисунок 6 - Создание таблицы “Инженер”

Рисунок 7 - Создание таблицы “Расчеты”

Рис. 8 – Создание таблицы «Заказы»

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

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

Рис. 9. Список генераторов

В результате было создано по 5 триггеров и генераторов:

Рис. 10. Генераторы и триггеры базы данных


Представление «Список клиентов» (CLIENT_INFO)

Рисунок 11 - Создание просмотра CLIENT_INFO

Рисунок 12 - Результат просмотра CLIENT_INFO

Аналогичным образом были созданы представления остальных таблиц.

Примеры создания хранимых процедур:

Процедура «Добавить клиента» (ADD_CLIENT)

Рисунок 13 - Создание хранимой процедуры ADD_ CLIENT


Процедура «Удалить заказ» (DEL_ZAK)

Рисунок 14 - Создание хранимой процедуры DEL_ZAK

Рисунок 15 - Список созданных хранимых процедур

Было создано исключение. Исключения представляют собой именованное сообщение об ошибке.

Рисунок 16 - Список созданных исключений

Исключение KEY_EX внедряется следующим образом:

Рисунок 17 - Исключение KEY_EX в хранимой процедуре. На примере процедуры ADD_ZAK.

2.3 Реализация программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»

C++Builder предоставляет разработчикам следующие компоненты для разроботки приложений:

· Компоненты управления данными Data Control, обеспечивающие отображение и редактирования записей на форме приложения.

· Компонентывкладки Standart (Button, Label, Edit, RadioButton, CheckBox, RadioGroup, Panel)

· Компоненты доступа к данным Data Access - адресуют фактические данные, хранящиеся в файле базы данных.

· Компоненты вкладки QReport (QuickRep, QRSubDetail, QRLabel, QRDBText, QRBand, QRSysData), создание отчетов

· КомпонентыInterbase (IBDatabase, IBTransaction, IBTable, IBStoredProc)

Наличие на форме большого количества невидимых компонентов в ряде случаев затрудняет проектирование пользовательского интерфейса. Кроме того, нередко бывает удобно отделить компоненты, отвечающие за доступ к данным и бизнес-логику информационной системы, от интерфейсных элементов, например, для обегчения ее дальнейшей модернизации. Для этой цели в C++ Builder имеется специальный тип, называемый модулем данных - TDataModule. На рис.18 представлен модуль данных разрабатываемого клиентского приложения.

Рисунок 18 - Компонент DataModule2

Рисунок 19 - Результат заполнения таблицы “Клиенты ”

Рисунок 20 - Результат заполнения таблицы “Заказы”

Рисунок 21 - Результат заполнения таблицы “Детали”

Рисунок 22 - Результат заполнения таблицы “Инженеры”

Рисунок 23 - Результат заполнения таблицы “Виды расчета”

2.3 Реализация программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»

Рассмотрим подробнее реализацию программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники».

Рисунок 24 - Модульная структура программного обеспечения

Рисунок 25 - Просмотр содержимого таблицы “Клиенты”

Имя таблицы задается в свойствах компонента IBTable. В свойствах компонента DataSourceуказываем свойство DataSet->IBTable.

Чтобы данные отображались в компоненте DBGrid, в свойстве DataSource указывается DataModule2->DataSource.

Рисунок 26 – Результат работы процедуры добавления данных

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

Пользователь может заполнять данные по таблицам “Заказы”, “Клиенты”, “Детали ”, “Инженеры”.

Ввод значения поля в таблицу осуществляется, например, такой строкой как:

DataModule2->IBStoredProc1->ParamByName("FIO_CL")->AsString=Form1->Edit1->Text;

Удаление записи из таблиц происходит посредством следующего кода:

DataModule2->IBStoredProc3->ParamByName("ID_CLIENT")->AsString=DBEdit1->Text;

Осуществляется каскадное удаление – из таблицы «Клиенты».

При нажатии на кнопку “Удалить” запись удаляется.

Рисунок 27 – Результат работы процедуры удаления данных

Рисунок 28 - Редактирование данных

Изменение записей в таблицах БД осуществляется программно:

DataModule2->IBStoredProc2->ParamByName("ID_CLIENT")->AsString=DBEdit1->Text;

DataModule2->IBStoredProc2->ParamByName("FIO_CL")->AsString=Edit4->Text;

Вывод данных в отчет также осуществляется программно с помощью компонента Button: