Автоматизированная информационная система "Подписка"
Требования к функциональным характеристикам информационной системы "Подписка". Функциональное проектирование автоматизированной системы ведения учета основных средств на предприятии. Проектирование базы данных автоматизированной системы ведения учета.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.01.2015 |
Размер файла | 753,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Обработчик нажатия кнопки «Удалить». Удаляет выбранную запись из таблицы «Поставщик».
TfmSupplier.buEditClick
Обработчик нажатия кнопки «Изменить». Вносит указанные изменения в выбранную запись таблицы «Поставщик».
TfmSupplier.buInsertClick
Обработчик нажатия кнопки «Добавить». Добавляет запись с указанными данными в таблицу «Поставщик».
TfmSupplier.DBGrid1CellClick
Обработчик клика по строке таблицы «Поставщик». Вводит данные полей выбранной записи в соответствующие текстовые поля на форме.
TfmSupplier.Edit4KeyPress
Обработчик ввода данных с клавиатуры в поле ввода «ИНН». Запрещает ввод символов, не являющихся цифрами
TfmSupplier.Edit5KeyPress
Обработчик ввода данных с клавиатуры в поле ввода «КПП». Запрещает ввод символов, не являющихся цифрами
TfmSupplier.Edit6KeyPress
Обработчик ввода данных с клавиатуры в поле ввода «Расчетный счет». Запрещает ввод символов, не являющихся цифрами
TfmSupplier.Edit7KeyPress
Обработчик ввода данных с клавиатуры в поле ввода «БИК». Запрещает ввод символов, не являющихся цифрами
TfmSupplier.Edit8KeyPress
Обработчик ввода данных с клавиатуры в поле ввода «Корреспондентский счет». Запрещает ввод символов, не являющихся цифрами
TfmSupplier.FormClose
Обработчик закрытия формы «Справочники - Поставщики».
Writeoff
TfmWriteoff.buExitClick
Обработчик нажатия кнопки «Выход». Закрывает форму «Списание основных средств»
TfmWriteoff.buInsertClick
Обработчик нажатия кнопки «Добавить». Добавляет запись с указанными данными в таблицу «Списание основных средств».
TfmWriteoff.buPrintClick
Обработчик нажатия кнопки «На печать». Выводит на экран печатную форму документа «Акт о списании».
TfmWriteoff.DBGrid2CellClick
Обработчик клика по строке таблицы «Ввод в эксплуатацию».
TfmWriteoff.Edit2KeyPress
Обработчик ввода данных с клавиатуры в поле ввода «Стоимость». Запрещает ввод символов, не являющихся цифрами
TfmWriteoff.FormClose
Обработчик закрытия формы «Списание основных средств».
TfmWriteoff.FormShow
Обработчик события отображения на экране формы «Списание основных средств».
Report1
TfmReport1.buPushClick
Обработчик нажатия кнопки «Сформировать». Выводит печатную форму отчета на экран.
TfmReport1.FormClose
Обработчик закрытия формы «Отчеты - Отчет о поступлении основных средств»
Report2
TfmReport2.buPushClick
Обработчик нажатия кнопки «Сформировать». Выводит печатную форму отчета на экран.
TfmReport2.FormClose
Обработчик закрытия формы «Отчеты - Отчет по начислению амортизации»
Для вывода отчетов на печать на форме модуля данных DataM были добавлены компоненты FastReport классов TfrxReport: frxR1 для отчета по подписке и frxR2 для приходного журнала. В редакторе отчетов FastReport настроен внешний вид формируемых отчетов. Текст запросов SQL для формирования отчетов приведен в приложении В.
6.4 Используемые технические средства
Информационная система разработана на ПК со следующими характеристиками: процессор Core i5-2410M c тактовой частотой 2,3 ГГц; оперативная память - 4 Гб; с наличием клавиатуры, мыши и принтера. Приложение занимает около 10 Мб на жестком диске.
6.5 Вызов и загрузка
В папке с курсовым проектом, находится файл .EXE под названием Subscription. Следует щелкнуть по нему два раза кнопкой мыши для запуска приложения.
6.6 Входные данные
Входные данные системы:
- информация по изданию;
- информация о поступлении;
- личные данные подписчика;
- счет-фактура;
- заявка на подписку;
- информация по доставке;
- личные данные сотрудника.
6.7 Выходные данные
Выходные данные системы:
- отчет по подписке;
- справочные данные о подписчике;
- справочные данные по изданию;
- приходный журнал;
- доставочный лист.
7. Программа и методика испытаний
7.1 Объект испытаний
Объектом испытаний является приложение «Автоматизированная информационная система «Подписка».
7.2 Цель испытаний
Цель испытания любой программы и в частности данной состоит в том, чтобы убедиться, что она удовлетворяет всем требованиям технического задания и действительно решает поставленную задачу при любых условиях.
7.3 Требования к программе
Информационная система должна автоматизировать учет следующих операций на предприятии:
- поступление изданий в городское отделение связи;
- оформление подписок на издания;
- доставка изданий подписчикам;
- учет сведений об изданиях;
- учет сведений о подписчиках;
- учет сведений о сотрудниках городского отделения связи.
Должна быть реализована возможность вывода на печать следующих документов и отчетов:
- отчет по подписке;
- справочные данные о подписчике;
- справочные данные по изданию;
- приходный журнал;
- доставочный лист.
7.4 Требования к программной документации
Программная документация к разрабатываемому проекту должна содержать:
- анализ предметной области;
- техническое задание;
- описание применения.
7.5 Средства и порядок испытаний
Для проведения испытаний необходимо наличие ПК с процессором тактовой частоты 866 МГц, оперативной памятью 512 МБ, свободное дисковое пространство 50 Мбайт, клавиатура, мышь, принтер. Также необходимо наличие установленной среды программирования Delphi 2006, СУБД Firebird 2.5 и редактора Microsoft Word. Испытание программы должно проводиться на основе контрольно-отладочных примеров.
7.6 Методы испытаний
В процессе разработки программы была применена методология поэтапного тестирования, на каждом из этапов создания программы производилось её тестирование в пределах реализованных функциональных возможностей.
Попытаемся добавить в справочник «Виды изданий» запись с пустым наименованием. При нажатии на кнопку «Добавить» будет выведено сообщение о необходимости заполнить все обязательные поля. Аналогичное сообщение будет выведено также при незаполненном поле «Наименование» во время нажатия кнопки «Изменить». Также данное сообщение выводится и при работе с другими таблицами БД в аналогичных ситуациях. Стоит отметить, что не все поля всех таблиц являются обязательными.
Попытаемся удалить запись из справочника «Виды изданий» с наименованием «журнал». При нажатии на кнопку «Удалить» будет выведено сообщение, оповещающее о невозможности удаления данной записи в связи с наличием в БД зависимых записей в других таблицах. В данном случае в таблице «Издания», т.к. в БД уже хранятся записи об изданиях, тип которых - журнал. Чтобы удалить запись с наименованием «журнал» из БД необходимо сначала удалить все зависимые записи.
При попытке пользователя ввести буквенные символы, например, в поле «Цена» таблицы «Издания» данные символы вводится не будут. Во всех необходимых случаях предусмотрен запрет ввода буквенных и других неразрешенных символов в полях, предназначенных для численных данных. Кроме того, во всех полях предусмотрено ограничение на количество вводимых символов. Эти ограничения соответствуют длине полей, предусмотренной в разработанной базе данных.
Рассмотрим пример расчета суммы подписки. На форме «Оформление подписки на издания» введем количество подписки и выберем наименование издания. При этом будет проведен автоматический расчет суммы подписки согласно цене издания и количеству выписанных номеров. Это значение выводится в поле «Сумма подписки» на форме. В данном случае количество выписанных изданий - 10 штук, цена одного экземпляра издания - 100 руб. Сумма подписки рассчитывается по формуле:
Сумма подписки=Цена экземпляра издания*Количество подписки
В данном случае она должна быть равна 1000 руб. Именно такое значение было записано в поле «Сумма подписки».
Результаты примеров тестовых испытаний приведены в приложении Д.
8. Описание применения
8.1 Назначение применения
Автоматизированная информационная система предназначена для ведения учета подписок на периодические издания в городском отделении связи.
8.2 Условия применения
Разработанная программа имеет наименование Subscription. Программа написана в среде Borland Delphi 2006, её текст содержится в файлах uStart.pas, About.pas, DataM.pas, uArea.pas, uCategory.pas, uCity.pas, uEdition.pas, uEditionType.pas, uJob.pas, uPublisher.pas, uReceipt.pas, uStreet.pas, uSubscriber.pas, uSubscription.pas, uWorker.pas, Report1.pas, Report2.pas, uStart.dfm, About.dfm, DataM.dfm, uArea.dfm, uCategory.dfm, uCity.dfm, uEdition.dfm, uEditionType.dfm, uJob.dfm, uPublisher.dfm, uReceipt.dfm, uStreet.dfm, uSubscriber.dfm, uSubscription.dfm, uWorker.dfm, Report1.dfm, Report2.dfm, Subscription.dpr. Программа должна корректно работать на ПК, сертифицированном на работу под управлением операционной системы Windows XP и выше с процессором Pentium III и тактовой частотой 866 МГц, оперативной памятью 512 МБ, свободным дисковым пространством не менее 50 Мб, а также наличием клавиатуры, мыши, принтера.
8.3 Описание задачи
Программа осуществляет механизм учета подписок на периодические издания в городском отделении связи, включая поступление изданий, оформление подписок, регистрацию доставок, а также учет подписчиков и изданий. Кроме того, программа формирует отчетную документацию и печатные формы сопутствующих документов. Примеры всех экранных форм приведены в приложении Ж.
8.4 Входные и выходные данные
Входными параметрами являются:
- информация по изданию;
- информация о поступлении;
- личные данные подписчика;
- счет-фактура;
- заявка на подписку;
- информация по доставке;
- личные данные сотрудника.
Выходными параметрами являются:
- отчет по подписке;
- справочные данные о подписчике;
- справочные данные по изданию;
- приходный журнал;
- доставочный лист.
Заключение
В курсовой работе описаны этапы создания автоматизированной информационной системы «Подписка».
Проведено логическое и физическое проектирование базы данных приложения. Основное внимание уделено нормализации выделенных отношений. Все они были нормализованы до третьей нормальной формы, необходимой для надежного функционирования системы. В ходе физического проектирования были выделены соответствующие отношениям таблицы базы данных с учетом особенностей выбранной СУБД Firebird 2.5.
Реализация системы проводилась в среде IBExpert, с помощью которой созданы таблицы базы данных СУБД Firebird 2.5 и определены связи между ними, и среде программирования Delphi 2006, в которой были разработаны визуальные формы для ввода, редактирования и просмотра информации, хранимой в базе данных. При написании программы основное внимание было уделено удобству работы пользователя с программой и построению дружественного интерфейса.
Тестовые испытания показали, что программа работает верно во всех предполагаемых ситуациях.
Список использованных источников
1 Вендров А.М Проектирование программного обеспечения экономических информационных систем. - М.: Финансы и статистика, 2003. - 352с.;
2 www.interface.ru;
3 www.wikipedia.ru;
4 www.ms.by.ru;
5 www.firebird-server.narod.ru.
ПРИЛОЖЕНИЕ В
SQL-запросы
Запрос к отчету «Отчет о подписках»:
SELECT
SUBSCRIPTION.ID_SUBSCRIPTION,
SUBSCRIPTION.ID_SUBSCRIBER,
SUBSCRIBER.NAME,
SUBSCRIPTION.SDATE,
SUBSCRIPTION.AMOUNT,
SUBSCRIPTION.TOTAL,
SUBSCRIPTION.ID_EDITION,
EDITION.NAME,
EDITION.COST,
EDITION_TYPE.NAME
FROM
SUBSCRIPTION,
SUBSCRIBER,
EDITION,
EDITION_TYPE
WHERE
(SUBSCRIPTION.ID_SUBSCRIBER=SUBSCRIBER.ID_SUBSCRIBER)
AND (SUBSCRIPTION.ID_EDITION=EDITION.ID_EDITION)
AND (EDITION.ID_EDITION_TYPE=EDITION_TYPE.ID_EDITION_TYPE)
AND (SUBSCRIPTION.SDATE BETWEEN :X AND :Y)
Запрос к отчету «Приходный журнал»:
SELECT
RECEIPT.ID_RECEIPT,
RECEIPT.ID_EDITION,
RECEIPT.RDATE,
RECEIPT.AMOUNT,
EDITION.NAME,
EDITION_TYPE.NAME,
PUBLISHER.NAME
FROM
RECEIPT,
EDITION,
EDITION_TYPE,
PUBLISHER
WHERE
(RECEIPT.ID_EDITION=EDITION.ID_EDITION)
AND (EDITION.ID_EDITION_TYPE=EDITION_TYPE.ID_EDITION_TYPE)
AND (EDITION.ID_PUBLISHER=PUBLISHER.ID_PUBLISHER)
AND (RECEIPT.RDATE BETWEEN :X AND :Y)
Запрос к документу «Справочные данные подписчика»:
SELECT
ID_SUBSCRIBER,
NAME,
ADDRESS,
PHONE
FROM
SUBSCRIBER
WHERE
ID_SUBSCRIBER=:X
Запрос к документу «Доставочный лист»:
SELECT
DELIVERY.ID_DELIVERY,
DELIVERY.ID_SUBSCRIPTION,
DELIVERY.DDATE,
DELIVERY.ID_AREA,
DELIVERY.ID_WORKER,
WORKER.NAME,
SUBSCRIPTION.ID_SUBSCRIBER,
SUBSCRIPTION.ID_EDITION,
EDITION.NAME,
SUBSCRIBER.NAME
FROM
DELIVERY,
SUBSCRIPTION,
EDITION,
SUBSCRIBER,
WORKER
WHERE
(DELIVERY.ID_DELIVERY=:X)
AND (DELIVERY.ID_SUBSCRIPTION=SUBSCRIPTION.ID_SUBSCRIPTION)
AND (SUBSCRIPTION.ID_SUBSCRIBER=SUBSCRIBER.ID_SUBSCRIBER)
AND (SUBSCRIPTION.ID_EDITION=EDITION.ID_EDITION)
AND (DELIVERY.ID_WORKER=WORKER.ID_WORKER)
ПРИЛОЖЕНИЕ Г
Текст программы
Текст модуля uStart.pas:
unit uStart;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DataM, uArea, uCategory, uCity, uDelivery, uEdition,
uEditionType, uJob, uPublisher, uReceipt, uStreet, uSubscriber, uSubscription,
uWorker, uAbout, uReport1, uReport2;
type
TfmStart = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
procedure N21Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmStart: TfmStart;
implementation
{$R *.dfm}
procedure TfmStart.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dbSubscription.Connected:=False;
end;
procedure TfmStart.FormShow(Sender: TObject);
begin
DM.dbSubscription.Connected:=True;
end;
procedure TfmStart.N10Click(Sender: TObject);
begin
fmEdition:=TfmEdition.Create(Application);
fmEdition.ShowModal;
end;
procedure TfmStart.N11Click(Sender: TObject);
begin
fmSubscriber:=TfmSubscriber.Create(Application);
fmSubscriber.ShowModal;
end;
procedure TfmStart.N12Click(Sender: TObject);
begin
fmWorker:=TfmWorker.Create(Application);
fmWorker.ShowModal;
end;
procedure TfmStart.N13Click(Sender: TObject);
begin
fmPublisher:=TfmPublisher.Create(Application);
fmPublisher.ShowModal;
end;
procedure TfmStart.N14Click(Sender: TObject);
begin
fmEditionType:=TfmEditionType.Create(Application);
fmEditionType.ShowModal;
end;
procedure TfmStart.N15Click(Sender: TObject);
begin
fmJob:=TfmJob.Create(Application);
fmJob.ShowModal;
end;
procedure TfmStart.N16Click(Sender: TObject);
begin
fmCategory:=TfmCategory.Create(Application);
fmCategory.ShowModal;
end;
procedure TfmStart.N17Click(Sender: TObject);
begin
fmCity:=TfmCity.Create(Application);
fmCity.ShowModal;
end;
procedure TfmStart.N18Click(Sender: TObject);
begin
fmStreet:=TfmStreet.Create(Application);
fmStreet.ShowModal;
end;
procedure TfmStart.N19Click(Sender: TObject);
begin
fmArea:=TfmArea.Create(Application);
fmArea.ShowModal;
end;
procedure TfmStart.N20Click(Sender: TObject);
begin
fmReport1:=TfmReport1.Create(Application);
fmReport1.ShowModal;
end;
procedure TfmStart.N21Click(Sender: TObject);
begin
fmReport2:=TfmReport2.Create(Application);
fmReport2.ShowModal;
end;
procedure TfmStart.N22Click(Sender: TObject);
begin
fmAbout:=TfmAbout.Create(Application);
fmAbout.ShowModal;
end;
procedure TfmStart.N2Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfmStart.N7Click(Sender: TObject);
begin
fmReceipt:=TfmReceipt.Create(Application);
fmReceipt.ShowModal;
end;
procedure TfmStart.N8Click(Sender: TObject);
begin
fmSubscription:=TfmSubscription.Create(Application);
fmSubscription.ShowModal;
end;
procedure TfmStart.N9Click(Sender: TObject);
begin
fmDelivery:=TfmDelivery.Create(Application);
fmDelivery.ShowModal;
end;
end.
Текст модуля DataM.pas:
unit DataM;
interface
uses
SysUtils, Classes, DB, frxClass, frxDBSet, FIBDatabase, pFIBDatabase,
FIBDataSet, pFIBDataSet;
type
TDM = class(TDataModule)
dbSubscription: TpFIBDatabase;
dstEditionType: TpFIBDataSet;
trRead: TpFIBTransaction;
trUpdate: TpFIBTransaction;
frxR1: TfrxReport;
frxDBdst1: TfrxDBDataset;
dsEditionType: TDataSource;
dstArea: TpFIBDataSet;
dsArea: TDataSource;
dstCategory: TpFIBDataSet;
dsCategory: TDataSource;
dstCity: TpFIBDataSet;
dsCity: TDataSource;
dstDelivery: TpFIBDataSet;
dsDelivery: TDataSource;
dstEdition: TpFIBDataSet;
dsEdition: TDataSource;
dstJob: TpFIBDataSet;
dsJob: TDataSource;
dstPublisher: TpFIBDataSet;
dsPublisher: TDataSource;
dstReceipt: TpFIBDataSet;
dsReceipt: TDataSource;
dstStreet: TpFIBDataSet;
dsStreet: TDataSource;
dstSubscriber: TpFIBDataSet;
dsSubscriber: TDataSource;
dstSubscription: TpFIBDataSet;
dsSubscription: TDataSource;
dstWorker: TpFIBDataSet;
dsWorker: TDataSource;
dstEditionTypeID_EDITION_TYPE: TFIBIntegerField;
dstEditionTypeNAME: TFIBStringField;
dstAreaID_AREA: TFIBIntegerField;
dstAreaID_STREET: TFIBIntegerField;
dstCategoryID_CATEGORY: TFIBIntegerField;
dstCategoryNAME: TFIBIntegerField;
dstCityID_CITY: TFIBIntegerField;
dstCityNAME: TFIBStringField;
dstDeliveryID_DELIVERY: TFIBIntegerField;
dstDeliveryID_SUBSCRIPTION: TFIBIntegerField;
dstDeliveryDDATE: TFIBDateField;
dstDeliveryID_AREA: TFIBIntegerField;
dstDeliveryID_WORKER: TFIBIntegerField;
dstEditionID_EDITION: TFIBIntegerField;
dstEditionNAME: TFIBStringField;
dstEditionPERIODICITY: TFIBIntegerField;
dstEditionCOST: TFIBFloatField;
dstEditionID_EDITION_TYPE: TFIBIntegerField;
dstEditionID_PUBLISHER: TFIBIntegerField;
dstJobID_JOB: TFIBIntegerField;
dstJobNAME: TFIBStringField;
dstPublisherID_PUBLISHER: TFIBIntegerField;
dstPublisherNAME: TFIBStringField;
dstPublisherID_CITY: TFIBIntegerField;
dstReceiptID_RECEIPT: TFIBIntegerField;
dstReceiptID_EDITION: TFIBIntegerField;
dstReceiptRDATE: TFIBDateField;
dstReceiptAMOUNT: TFIBIntegerField;
dstStreetID_STREET: TFIBIntegerField;
dstStreetNAME: TFIBStringField;
dstSubscriberID_SUBSCRIBER: TFIBIntegerField;
dstSubscriberNAME: TFIBStringField;
dstSubscriberADDRESS: TFIBStringField;
dstSubscriberPHONE: TFIBStringField;
dstSubscriptionID_SUBSCRIPTION: TFIBIntegerField;
dstSubscriptionID_SUBSCRIBER: TFIBIntegerField;
dstSubscriptionSDATE: TFIBDateField;
dstSubscriptionAMOUNT: TFIBIntegerField;
dstSubscriptionTOTAL: TFIBFloatField;
dstSubscriptionID_EDITION: TFIBIntegerField;
dstWorkerID_WORKER: TFIBIntegerField;
dstWorkerNAME: TFIBStringField;
dstWorkerBIRTHDATE: TFIBDateField;
dstWorkerID_JOB: TFIBIntegerField;
dstWorkerID_CATEGORY: TFIBIntegerField;
dstEditionTypeNull: TpFIBDataSet;
FIBIntegerField1: TFIBIntegerField;
FIBStringField1: TFIBStringField;
FIBIntegerField2: TFIBIntegerField;
FIBFloatField1: TFIBFloatField;
FIBIntegerField3: TFIBIntegerField;
FIBIntegerField4: TFIBIntegerField;
dsEditionTypeNull: TDataSource;
dstStreetNull: TpFIBDataSet;
FIBIntegerField5: TFIBIntegerField;
FIBIntegerField6: TFIBIntegerField;
dsStreetNull: TDataSource;
dstCityNull: TpFIBDataSet;
FIBIntegerField7: TFIBIntegerField;
FIBStringField2: TFIBStringField;
FIBIntegerField8: TFIBIntegerField;
dsCityNull: TDataSource;
dstJobNull: TpFIBDataSet;
FIBIntegerField9: TFIBIntegerField;
FIBStringField3: TFIBStringField;
FIBDateField1: TFIBDateField;
FIBIntegerField10: TFIBIntegerField;
FIBIntegerField11: TFIBIntegerField;
dsJobNull: TDataSource;
dstCategoryNull: TpFIBDataSet;
FIBIntegerField12: TFIBIntegerField;
FIBStringField4: TFIBStringField;
FIBDateField2: TFIBDateField;
FIBIntegerField13: TFIBIntegerField;
FIBIntegerField14: TFIBIntegerField;
dsCategoryNull: TDataSource;
dstAreaNAME: TStringField;
dstAreaNull: TpFIBDataSet;
FIBIntegerField15: TFIBIntegerField;
FIBIntegerField16: TFIBIntegerField;
FIBDateField3: TFIBDateField;
FIBIntegerField17: TFIBIntegerField;
FIBIntegerField18: TFIBIntegerField;
dsAreaNull: TDataSource;
dstArea1: TpFIBDataSet;
FIBIntegerField19: TFIBIntegerField;
FIBIntegerField20: TFIBIntegerField;
StringField1: TStringField;
dsArea1: TDataSource;
dstPublisher1: TpFIBDataSet;
FIBIntegerField21: TFIBIntegerField;
FIBStringField5: TFIBStringField;
FIBIntegerField22: TFIBIntegerField;
dsPublisher1: TDataSource;
dstPublisherNull: TpFIBDataSet;
FIBIntegerField23: TFIBIntegerField;
FIBStringField6: TFIBStringField;
FIBIntegerField24: TFIBIntegerField;
FIBFloatField2: TFIBFloatField;
FIBIntegerField25: TFIBIntegerField;
FIBIntegerField26: TFIBIntegerField;
dsPublisherNull: TDataSource;
dstPublisherCITY: TStringField;
dstWorker1: TpFIBDataSet;
FIBIntegerField27: TFIBIntegerField;
FIBStringField7: TFIBStringField;
FIBDateField4: TFIBDateField;
FIBIntegerField28: TFIBIntegerField;
FIBIntegerField29: TFIBIntegerField;
dsWorker1: TDataSource;
dstWorkerNull: TpFIBDataSet;
FIBIntegerField30: TFIBIntegerField;
FIBIntegerField31: TFIBIntegerField;
FIBDateField5: TFIBDateField;
FIBIntegerField32: TFIBIntegerField;
FIBIntegerField33: TFIBIntegerField;
dsWorkerNull: TDataSource;
dstWorkerJOB: TStringField;
dstWorkerCATEGORY: TStringField;
dstEdition1: TpFIBDataSet;
FIBIntegerField38: TFIBIntegerField;
FIBStringField9: TFIBStringField;
FIBIntegerField39: TFIBIntegerField;
FIBFloatField4: TFIBFloatField;
FIBIntegerField40: TFIBIntegerField;
FIBIntegerField41: TFIBIntegerField;
dsEdition1: TDataSource;
dstEditionNull1: TpFIBDataSet;
FIBIntegerField34: TFIBIntegerField;
FIBIntegerField35: TFIBIntegerField;
FIBDateField6: TFIBDateField;
FIBIntegerField36: TFIBIntegerField;
dsEditionNull1: TDataSource;
dstEditionNull2: TpFIBDataSet;
FIBIntegerField37: TFIBIntegerField;
FIBIntegerField42: TFIBIntegerField;
FIBDateField7: TFIBDateField;
FIBIntegerField43: TFIBIntegerField;
FIBFloatField3: TFIBFloatField;
FIBIntegerField44: TFIBIntegerField;
dsEditionNull2: TDataSource;
dstEditionEDITION_TYPE: TStringField;
dstEditionPUBLISHER: TStringField;
dstSubscriberNull: TpFIBDataSet;
FIBIntegerField45: TFIBIntegerField;
FIBIntegerField46: TFIBIntegerField;
FIBDateField8: TFIBDateField;
FIBIntegerField47: TFIBIntegerField;
FIBFloatField5: TFIBFloatField;
FIBIntegerField48: TFIBIntegerField;
dsSubscriberNull: TDataSource;
dstReceipt1: TpFIBDataSet;
FIBIntegerField49: TFIBIntegerField;
FIBIntegerField50: TFIBIntegerField;
FIBDateField9: TFIBDateField;
FIBIntegerField51: TFIBIntegerField;
dsReceipt1: TDataSource;
dstReceiptNAME: TStringField;
dstSubscription1: TpFIBDataSet;
FIBIntegerField52: TFIBIntegerField;
FIBIntegerField53: TFIBIntegerField;
FIBDateField10: TFIBDateField;
FIBIntegerField54: TFIBIntegerField;
FIBFloatField6: TFIBFloatField;
FIBIntegerField55: TFIBIntegerField;
dsSubscription1: TDataSource;
dstSubscriptionNull: TpFIBDataSet;
FIBIntegerField56: TFIBIntegerField;
FIBIntegerField57: TFIBIntegerField;
FIBDateField11: TFIBDateField;
FIBIntegerField58: TFIBIntegerField;
FIBIntegerField59: TFIBIntegerField;
dsSubscriptionNull: TDataSource;
dstSubscriptionSUBSCRIBER: TStringField;
dstSubscriptionEDITION: TStringField;
dstCost: TpFIBDataSet;
dsCost: TDataSource;
dstCostCOST: TFIBFloatField;
dstDelivery1: TpFIBDataSet;
FIBIntegerField60: TFIBIntegerField;
FIBIntegerField61: TFIBIntegerField;
FIBDateField12: TFIBDateField;
FIBIntegerField62: TFIBIntegerField;
FIBIntegerField63: TFIBIntegerField;
dsDelivery1: TDataSource;
dstDeliveryNAME: TStringField;
dstR1: TpFIBDataSet;
dsR1: TDataSource;
dstR1ID_SUBSCRIPTION: TFIBIntegerField;
dstR1ID_SUBSCRIBER: TFIBIntegerField;
dstR1NAME: TFIBStringField;
dstR1SDATE: TFIBDateField;
dstR1AMOUNT: TFIBIntegerField;
dstR1TOTAL: TFIBFloatField;
dstR1ID_EDITION: TFIBIntegerField;
dstR1NAME1: TFIBStringField;
dstR1COST: TFIBFloatField;
dstR1NAME2: TFIBStringField;
frxR2: TfrxReport;
frxDBdst2: TfrxDBDataset;
dstR2: TpFIBDataSet;
dsR2: TDataSource;
frxR4: TfrxReport;
frxDBdst4: TfrxDBDataset;
dstR4: TpFIBDataSet;
dsR4: TDataSource;
frxR3: TfrxReport;
frxDBdst3: TfrxDBDataset;
dstR3: TpFIBDataSet;
dsR3: TDataSource;
dstR2ID_RECEIPT: TFIBIntegerField;
dstR2ID_EDITION: TFIBIntegerField;
dstR2RDATE: TFIBDateField;
dstR2AMOUNT: TFIBIntegerField;
dstR2NAME: TFIBStringField;
dstR2NAME1: TFIBStringField;
dstR2NAME2: TFIBStringField;
dstR3ID_SUBSCRIBER: TFIBIntegerField;
dstR3NAME: TFIBStringField;
dstR3ADDRESS: TFIBStringField;
dstR3PHONE: TFIBStringField;
dstR4ID_DELIVERY: TFIBIntegerField;
dstR4ID_SUBSCRIPTION: TFIBIntegerField;
dstR4DDATE: TFIBDateField;
dstR4ID_AREA: TFIBIntegerField;
dstR4ID_WORKER: TFIBIntegerField;
dstR4NAME: TFIBStringField;
dstR4ID_SUBSCRIBER: TFIBIntegerField;
dstR4ID_EDITION: TFIBIntegerField;
dstR4NAME1: TFIBStringField;
dstR4NAME2: TFIBStringField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
{$R *.dfm}
end.
Текст модуля uArea.pas:
unit uArea;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls;
type
TfmArea = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
DBGrid1: TDBGrid;
DBLookupComboBox1: TDBLookupComboBox;
procedure DBGrid1CellClick(Column: TColumn);
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure buExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmArea: TfmArea;
implementation
{$R *.dfm}
procedure TfmArea.buDeleteClick(Sender: TObject);
begin
if DM.dstArea.RecordCount=0 then Exit;
DM.dstAreaNull.Close;
DM.dstAreaNull.ParamByName('X').AsInteger:=
DM.dstArea.FBN('ID_AREA').AsInteger;
DM.dstAreaNull.Open;
if DM.dstAreaNull.IsEmpty then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstArea.Delete;
if DM.dstArea.UpdateTransaction.InTransaction then
DM.dstArea.UpdateTransaction.Commit;
DM.dstArea.FullRefresh;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmArea.buEditClick(Sender: TObject);
begin
DM.dstArea.Edit;
DM.dstArea.FBN('ID_STREET').AsInteger:=
DM.dstArea1.FBN('ID_STREET').AsInteger;
DM.dstArea.Post;
if DM.dstArea.UpdateTransaction.InTransaction then
DM.dstArea.UpdateTransaction.Commit;
DM.dstArea.FullRefresh;
end;
procedure TfmArea.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmArea.buInsertClick(Sender: TObject);
begin
DM.dstArea.Insert;
DM.dstArea.FBN('ID_STREET').AsInteger:=
DM.dstArea1.FBN('ID_STREET').AsInteger;
DM.dstArea.Post;
if DM.dstArea.UpdateTransaction.InTransaction then
DM.dstArea.UpdateTransaction.Commit;
DM.dstArea.FullRefresh;
end;
procedure TfmArea.DBGrid1CellClick(Column: TColumn);
begin
DM.dstArea1.Edit;
DM.dstArea1.FBN('ID_STREET').AsInteger:=
DM.dstArea.FBN('ID_STREET').AsInteger;
end;
procedure TfmArea.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstArea.Close;
DM.dstArea1.Close;
DM.dstStreet.Close;
DM.dstAreaNull.Close;
Action:=caFree;
fmArea:=nil;
end;
procedure TfmArea.FormShow(Sender: TObject);
begin
DM.dstArea.Open;
DM.dstArea1.Open;
DM.dstStreet.Open;
end;
end.
Текст модуля uCategory.pas:
unit uCategory;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, StdCtrls, ExtCtrls;
type
TfmCategory = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
Edit1: TEdit;
DBGrid1: TDBGrid;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1CellClick(Column: TColumn);
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure buExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmCategory: TfmCategory;
implementation
{$R *.dfm}
procedure TfmCategory.buDeleteClick(Sender: TObject);
begin
if DM.dstCategory.RecordCount=0 then Exit;
DM.dstCategoryNull.Close;
DM.dstCategoryNull.ParamByName('X').AsInteger:=
DM.dstCategory.FBN('ID_CATEGORY').AsInteger;
DM.dstCategoryNull.Open;
if DM.dstCategoryNull.IsEmpty then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstCategory.Delete;
if DM.dstCategory.UpdateTransaction.InTransaction then
DM.dstCategory.UpdateTransaction.Commit;
DM.dstCategory.FullRefresh;
Edit1.Clear;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmCategory.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstCategory.Edit;
DM.dstCategory.FBN('NAME').AsString:=Edit1.Text;
DM.dstCategory.Post;
if DM.dstCategory.UpdateTransaction.InTransaction then
DM.dstCategory.UpdateTransaction.Commit;
DM.dstCategory.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmCategory.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmCategory.buInsertClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstCategory.Insert;
DM.dstCategory.FBN('NAME').AsString:=Edit1.Text;
DM.dstCategory.Post;
if DM.dstCategory.UpdateTransaction.InTransaction then
DM.dstCategory.UpdateTransaction.Commit;
DM.dstCategory.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmCategory.DBGrid1CellClick(Column: TColumn);
begin
Edit1.Text:=DM.dstCategory.FBN('NAME').AsString;
end;
procedure TfmCategory.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8]) then Key:=#0;
end;
procedure TfmCategory.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstCategory.Close;
DM.dstCategoryNull.Close;
Action:=caFree;
fmCategory:=nil;
end;
procedure TfmCategory.FormShow(Sender: TObject);
begin
DM.dstCategory.Open;
end;
end.
Текст модуля uCity.pas:
unit uCategory;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, StdCtrls, ExtCtrls;
type
TfmCategory = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
Edit1: TEdit;
DBGrid1: TDBGrid;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1CellClick(Column: TColumn);
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure buExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmCategory: TfmCategory;
implementation
{$R *.dfm}
procedure TfmCategory.buDeleteClick(Sender: TObject);
begin
if DM.dstCategory.RecordCount=0 then Exit;
DM.dstCategoryNull.Close;
DM.dstCategoryNull.ParamByName('X').AsInteger:=
DM.dstCategory.FBN('ID_CATEGORY').AsInteger;
DM.dstCategoryNull.Open;
if DM.dstCategoryNull.IsEmpty then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstCategory.Delete;
if DM.dstCategory.UpdateTransaction.InTransaction then
DM.dstCategory.UpdateTransaction.Commit;
DM.dstCategory.FullRefresh;
Edit1.Clear;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmCategory.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstCategory.Edit;
DM.dstCategory.FBN('NAME').AsString:=Edit1.Text;
DM.dstCategory.Post;
if DM.dstCategory.UpdateTransaction.InTransaction then
DM.dstCategory.UpdateTransaction.Commit;
DM.dstCategory.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmCategory.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmCategory.buInsertClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstCategory.Insert;
DM.dstCategory.FBN('NAME').AsString:=Edit1.Text;
DM.dstCategory.Post;
if DM.dstCategory.UpdateTransaction.InTransaction then
DM.dstCategory.UpdateTransaction.Commit;
DM.dstCategory.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmCategory.DBGrid1CellClick(Column: TColumn);
begin
Edit1.Text:=DM.dstCategory.FBN('NAME').AsString;
end;
procedure TfmCategory.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8]) then Key:=#0;
end;
procedure TfmCategory.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstCategory.Close;
DM.dstCategoryNull.Close;
Action:=caFree;
fmCategory:=nil;
end;
procedure TfmCategory.FormShow(Sender: TObject);
begin
DM.dstCategory.Open;
end;
end.
Текст модуля uDelivery.pas:
unit uDelivery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, ComCtrls, StdCtrls, DBCtrls, ExtCtrls;
type
TfmDelivery = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
dtp1: TDateTimePicker;
DBGrid1: TDBGrid;
Panel5: TPanel;
Panel6: TPanel;
DBGrid2: TDBGrid;
buPrint: TButton;
procedure buPrintClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid2CellClick(Column: TColumn);
procedure buExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmDelivery: TfmDelivery;
implementation
{$R *.dfm}
procedure TfmDelivery.buDeleteClick(Sender: TObject);
begin
if DM.dstDelivery.RecordCount=0 then Exit;
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstDelivery.Delete;
if DM.dstDelivery.UpdateTransaction.InTransaction then
DM.dstDelivery.UpdateTransaction.Commit;
DM.dstDelivery.FullRefresh;
end;
procedure TfmDelivery.buEditClick(Sender: TObject);
begin
DM.dstDelivery.Edit;
DM.dstDelivery.FBN('DDATE').AsDateTime:=dtp1.DateTime;
DM.dstDelivery.FBN('ID_AREA').AsInteger:=
DM.dstDelivery1.FBN('ID_AREA').AsInteger;
DM.dstDelivery.FBN('ID_WORKER').AsInteger:=
DM.dstDelivery1.FBN('ID_WORKER').AsInteger;
DM.dstDelivery.FBN('ID_SUBSCRIPTION').AsInteger:=
DM.dstSubscription.FBN('ID_SUBSCRIPTION').AsInteger;
DM.dstDelivery.Post;
if DM.dstDelivery.UpdateTransaction.InTransaction then
DM.dstDelivery.UpdateTransaction.Commit;
DM.dstDelivery.FullRefresh;
end;
procedure TfmDelivery.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmDelivery.buInsertClick(Sender: TObject);
begin
DM.dstDelivery.Insert;
DM.dstDelivery.FBN('DDATE').AsDateTime:=dtp1.DateTime;
DM.dstDelivery.FBN('ID_AREA').AsInteger:=
DM.dstDelivery1.FBN('ID_AREA').AsInteger;
DM.dstDelivery.FBN('ID_WORKER').AsInteger:=
DM.dstDelivery1.FBN('ID_WORKER').AsInteger;
DM.dstDelivery.FBN('ID_SUBSCRIPTION').AsInteger:=
DM.dstSubscription.FBN('ID_SUBSCRIPTION').AsInteger;
DM.dstDelivery.Post;
if DM.dstDelivery.UpdateTransaction.InTransaction then
DM.dstDelivery.UpdateTransaction.Commit;
DM.dstDelivery.FullRefresh;
end;
procedure TfmDelivery.buPrintClick(Sender: TObject);
begin
DM.dstR4.Close;
DM.dstR4.ParamByName('X').AsInteger:=
DM.dstDelivery.FBN('ID_DELIVERY').AsInteger;
DM.dstR4.Open;
DM.frxR4.ShowReport();
end;
procedure TfmDelivery.DBGrid1CellClick(Column: TColumn);
begin
DM.dstDelivery1.Edit;
DM.dstDelivery1.FBN('ID_AREA').AsInteger:=
DM.dstDelivery.FBN('ID_AREA').AsInteger;
DM.dstDelivery1.FBN('ID_WORKER').AsInteger:=
DM.dstDelivery.FBN('ID_WORKER').AsInteger;
dtp1.DateTime:=DM.dstDelivery.FBN('DDATE').AsDateTime;
end;
procedure TfmDelivery.DBGrid2CellClick(Column: TColumn);
begin
DM.dstDelivery.Close;
DM.dstDelivery.ParamByName('X').AsInteger:=
DM.dstSubscription.FBN('ID_SUBSCRIPTION').AsInteger;
DM.dstDelivery.Open;
end;
procedure TfmDelivery.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstDelivery.Close;
DM.dstDelivery1.Close;
DM.dstWorker.Close;
DM.dstArea.Close;
DM.dstSubscription.Close;
DM.dstR4.Close;
Action:=caFree;
fmDelivery:=nil;
end;
procedure TfmDelivery.FormShow(Sender: TObject);
begin
DM.dstDelivery1.Open;
DM.dstWorker.Open;
DM.dstArea.Open;
DM.dstSubscription.Open;
end;
end.
Текст модуля uEdition.pas:
unit uEdition;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, StdCtrls, DBCtrls, ExtCtrls;
type
TfmEdition = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Edit1: TEdit;
DBLookupComboBox2: TDBLookupComboBox;
DBGrid1: TDBGrid;
Label5: TLabel;
Edit2: TEdit;
Edit3: TEdit;
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1CellClick(Column: TColumn);
procedure buExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmEdition: TfmEdition;
implementation
{$R *.dfm}
procedure TfmEdition.buDeleteClick(Sender: TObject);
begin
if DM.dstEdition.RecordCount=0 then Exit;
DM.dstEditionNull1.Close;
DM.dstEditionNull1.ParamByName('X').AsInteger:=
DM.dstEdition.FBN('ID_EDITION').AsInteger;
DM.dstEditionNull1.Open;
DM.dstEditionNull2.Close;
DM.dstEditionNull2.ParamByName('X').AsInteger:=
DM.dstEdition.FBN('ID_EDITION').AsInteger;
DM.dstEditionNull2.Open;
if (DM.dstEditionNull1.IsEmpty) and (DM.dstEditionNull2.IsEmpty) then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstEdition.Delete;
if DM.dstEdition.UpdateTransaction.InTransaction then
DM.dstEdition.UpdateTransaction.Commit;
DM.dstEdition.FullRefresh;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmEdition.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstEdition.Edit;
DM.dstEdition.FBN('NAME').AsString:=Edit1.Text;
DM.dstEdition.FBN('COST').AsFloat:=StrToFloat(Edit2.Text);
DM.dstEdition.FBN('PERIODICITY').AsInteger:=StrToInt(Edit3.Text);
DM.dstEdition.FBN('ID_PUBLISHER').AsInteger:=
DM.dstEdition1.FBN('ID_PUBLISHER').AsInteger;
DM.dstEdition.FBN('ID_EDITION_TYPE').AsInteger:=
DM.dstEdition1.FBN('ID_EDITION_TYPE').AsInteger;
DM.dstEdition.Post;
if DM.dstEdition.UpdateTransaction.InTransaction then
DM.dstEdition.UpdateTransaction.Commit;
DM.dstEdition.FullRefresh;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
end;
procedure TfmEdition.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmEdition.buInsertClick(Sender: TObject);
begin
if (Edit1.Text='') or (Edit2.Text='') or (Edit3.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstEdition.Insert;
DM.dstEdition.FBN('NAME').AsString:=Edit1.Text;
DM.dstEdition.FBN('COST').AsFloat:=StrToFloat(Edit2.Text);
DM.dstEdition.FBN('PERIODICITY').AsInteger:=StrToInt(Edit3.Text);
DM.dstEdition.FBN('ID_PUBLISHER').AsInteger:=
DM.dstEdition1.FBN('ID_PUBLISHER').AsInteger;
DM.dstEdition.FBN('ID_EDITION_TYPE').AsInteger:=
DM.dstEdition1.FBN('ID_EDITION_TYPE').AsInteger;
DM.dstEdition.Post;
if DM.dstEdition.UpdateTransaction.InTransaction then
DM.dstEdition.UpdateTransaction.Commit;
DM.dstEdition.FullRefresh;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
end;
procedure TfmEdition.DBGrid1CellClick(Column: TColumn);
begin
DM.dstEdition1.Edit;
DM.dstEdition1.FBN('ID_PUBLISHER').AsInteger:=
DM.dstEdition.FBN('ID_PUBLISHER').AsInteger;
DM.dstEdition1.FBN('ID_EDITION_TYPE').AsInteger:=
DM.dstEdition.FBN('ID_EDITION_TYPE').AsInteger;
Edit1.Text:=DM.dstEdition.FBN('NAME').AsString;
Edit2.Text:=DM.dstEdition.FBN('COST').AsString;
Edit3.Text:=DM.dstEdition.FBN('PERIODICITY').AsString;
end;
procedure TfmEdition.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', ',', #8]) then Key:=#0;
end;
procedure TfmEdition.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8]) then Key:=#0;
end;
procedure TfmEdition.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstEdition.Close;
DM.dstEdition1.Close;
DM.dstEditionType.Close;
DM.dstPublisher.Close;
DM.dstEditionNull1.Close;
DM.dstEditionNull2.Close;
Action:=caFree;
fmEdition:=nil;
end;
procedure TfmEdition.FormShow(Sender: TObject);
begin
DM.dstEdition.Open;
DM.dstEdition1.Open;
DM.dstEditionType.Open;
DM.dstPublisher.Open;
end;
end.
Текст модуля uEditionType.pas:
unit uEditionType;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DataM, StdCtrls, Grids, DBGrids;
type
TfmEditionType = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
DBGrid1: TDBGrid;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure buDeleteClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1CellClick(Column: TColumn);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure buExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmEditionType: TfmEditionType;
implementation
{$R *.dfm}
procedure TfmEditionType.buDeleteClick(Sender: TObject);
begin
if DM.dstEditionType.RecordCount=0 then Exit;
DM.dstEditionTypeNull.Close;
DM.dstEditionTypeNull.ParamByName('X').AsInteger:=
DM.dstEditionType.FBN('ID_EDITION_TYPE').AsInteger;
DM.dstEditionTypeNull.Open;
if DM.dstEditionTypeNull.IsEmpty then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstEditionType.Delete;
if DM.dstEditionType.UpdateTransaction.InTransaction then
DM.dstEditionType.UpdateTransaction.Commit;
DM.dstEditionType.FullRefresh;
Edit1.Clear;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmEditionType.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstEditionType.Edit;
DM.dstEditionType.FBN('NAME').AsString:=Edit1.Text;
DM.dstEditionType.Post;
if DM.dstEditionType.UpdateTransaction.InTransaction then
DM.dstEditionType.UpdateTransaction.Commit;
DM.dstEditionType.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmEditionType.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmEditionType.buInsertClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstEditionType.Insert;
DM.dstEditionType.FBN('NAME').AsString:=Edit1.Text;
DM.dstEditionType.Post;
if DM.dstEditionType.UpdateTransaction.InTransaction then
DM.dstEditionType.UpdateTransaction.Commit;
DM.dstEditionType.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmEditionType.DBGrid1CellClick(Column: TColumn);
begin
Edit1.Text:=DM.dstEditionType.FBN('NAME').AsString;
end;
procedure TfmEditionType.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstEditionType.Close;
DM.dstEditionTypeNull.Close;
Action:=caFree;
fmEditionType:=nil;
end;
procedure TfmEditionType.FormShow(Sender: TObject);
begin
DM.dstEditionType.Open;
end;
end.
Текст модуля uJob.pas:
unit uJob;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, StdCtrls, ExtCtrls;
type
TfmJob = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
Edit1: TEdit;
DBGrid1: TDBGrid;
procedure DBGrid1CellClick(Column: TColumn);
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure buExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmJob: TfmJob;
implementation
{$R *.dfm}
procedure TfmJob.buDeleteClick(Sender: TObject);
begin
if DM.dstJob.RecordCount=0 then Exit;
DM.dstJobNull.Close;
DM.dstJobNull.ParamByName('X').AsInteger:=
DM.dstJob.FBN('ID_JOB').AsInteger;
DM.dstJobNull.Open;
if DM.dstJobNull.IsEmpty then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstJob.Delete;
if DM.dstJob.UpdateTransaction.InTransaction then
DM.dstJob.UpdateTransaction.Commit;
DM.dstJob.FullRefresh;
Edit1.Clear;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmJob.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstJob.Edit;
DM.dstJob.FBN('NAME').AsString:=Edit1.Text;
DM.dstJob.Post;
if DM.dstJob.UpdateTransaction.InTransaction then
DM.dstJob.UpdateTransaction.Commit;
DM.dstJob.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmJob.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmJob.buInsertClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstJob.Insert;
DM.dstJob.FBN('NAME').AsString:=Edit1.Text;
DM.dstJob.Post;
if DM.dstJob.UpdateTransaction.InTransaction then
DM.dstJob.UpdateTransaction.Commit;
DM.dstJob.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmJob.DBGrid1CellClick(Column: TColumn);
begin
Edit1.Text:=DM.dstJob.FBN('NAME').AsString;
end;
procedure TfmJob.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstJob.Close;
DM.dstJobNull.Close;
Action:=caFree;
fmJob:=nil;
end;
procedure TfmJob.FormShow(Sender: TObject);
begin
DM.dstJob.Open;
end;
end.
Текст модуля uPublisher.pas:
unit uPublisher;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, StdCtrls, Grids, DBGrids, DBCtrls, ExtCtrls;
type
TfmPublisher = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label1: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
DBGrid1: TDBGrid;
Label2: TLabel;
Edit1: TEdit;
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure buExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmPublisher: TfmPublisher;
implementation
{$R *.dfm}
procedure TfmPublisher.buDeleteClick(Sender: TObject);
begin
if DM.dstPublisher.RecordCount=0 then Exit;
DM.dstPublisherNull.Close;
DM.dstPublisherNull.ParamByName('X').AsInteger:=
DM.dstPublisher.FBN('ID_PUBLISHER').AsInteger;
DM.dstPublisherNull.Open;
if DM.dstPublisherNull.IsEmpty then begin
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstPublisher.Delete;
if DM.dstPublisher.UpdateTransaction.InTransaction then
DM.dstPublisher.UpdateTransaction.Commit;
DM.dstPublisher.FullRefresh;
end
else ShowMessage('Необходимо сперва удалить зависимые записи.');
end;
procedure TfmPublisher.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstPublisher.Edit;
DM.dstPublisher.FBN('NAME').AsString:=Edit1.Text;
DM.dstPublisher.FBN('ID_CITY').AsInteger:=
DM.dstPublisher1.FBN('ID_CITY').AsInteger;
DM.dstPublisher.Post;
if DM.dstPublisher.UpdateTransaction.InTransaction then
DM.dstPublisher.UpdateTransaction.Commit;
DM.dstPublisher.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmPublisher.buExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmPublisher.buInsertClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstPublisher.Insert;
DM.dstPublisher.FBN('NAME').AsString:=Edit1.Text;
DM.dstPublisher.FBN('ID_CITY').AsInteger:=
DM.dstPublisher1.FBN('ID_CITY').AsInteger;
DM.dstPublisher.Post;
if DM.dstPublisher.UpdateTransaction.InTransaction then
DM.dstPublisher.UpdateTransaction.Commit;
DM.dstPublisher.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmPublisher.DBGrid1CellClick(Column: TColumn);
begin
DM.dstPublisher1.Edit;
DM.dstPublisher1.FBN('ID_CITY').AsInteger:=
DM.dstPublisher.FBN('ID_CITY').AsInteger;
Edit1.Text:=DM.dstPublisher.FBN('NAME').AsString;
end;
procedure TfmPublisher.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstPublisher.Close;
DM.dstPublisher1.Close;
DM.dstCity.Close;
DM.dstPublisherNull.Close;
Action:=caFree;
fmPublisher:=nil;
end;
procedure TfmPublisher.FormShow(Sender: TObject);
begin
DM.dstPublisher.Open;
DM.dstPublisher1.Open;
DM.dstCity.Open;
end;
end.
Текст модуля uReceipt.pas:
unit uReceipt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DataM, Grids, DBGrids, StdCtrls, DBCtrls, ExtCtrls, ComCtrls;
type
TfmReceipt = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
buEdit: TButton;
buInsert: TButton;
buDelete: TButton;
buExit: TButton;
Panel4: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Edit1: TEdit;
DBGrid1: TDBGrid;
dtp1: TDateTimePicker;
procedure buDeleteClick(Sender: TObject);
procedure buEditClick(Sender: TObject);
procedure buInsertClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1CellClick(Column: TColumn);
procedure buExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmReceipt: TfmReceipt;
implementation
{$R *.dfm}
procedure TfmReceipt.buDeleteClick(Sender: TObject);
begin
if DM.dstReceipt.RecordCount=0 then Exit;
if Application.MessageBox('Удалить текущую запись?', 'Удаление',
MB_YESNO) = mrYes then DM.dstReceipt.Delete;
if DM.dstReceipt.UpdateTransaction.InTransaction then
DM.dstReceipt.UpdateTransaction.Commit;
DM.dstReceipt.FullRefresh;
end;
procedure TfmReceipt.buEditClick(Sender: TObject);
begin
if (Edit1.Text='') then
ShowMessage('Заполните все обязательны поля')
else begin
DM.dstReceipt.Edit;
DM.dstReceipt.FBN('AMOUNT').AsInteger:=StrToInt(Edit1.Text);
DM.dstReceipt.FBN('RDATE').AsDateTime:=dtp1.DateTime;
DM.dstReceipt.FBN('ID_EDITION').AsInteger:=
DM.dstReceipt1.FBN('ID_EDITION').AsInteger;
DM.dstReceipt.Post;
if DM.dstReceipt.UpdateTransaction.InTransaction then
DM.dstReceipt.UpdateTransaction.Commit;
DM.dstReceipt.FullRefresh;
Edit1.Clear;
end;
end;
procedure TfmReceipt.buExitClick(Sender: TObject);
Подобные документы
Создание автоматизированной информационной системы учета оборудования (компьютерной и оргтехники) на АКБ НМБ ОАО с использованием современных компьютерных средств. Проектирование базы данных. Алгоритмы решения задач. Расчёт затрат на проектирование.
дипломная работа [2,1 M], добавлен 16.12.2013Проектирование автоматизированной информационной системы контроля и учета товарных и денежных средств для магазина розничной торговли. Составление базы данных в среде СУБД MySQL. Расчет затрат на проектирование и эксплуатацию разработанной системы.
дипломная работа [4,3 M], добавлен 13.12.2013Анализ предметной области АИС "Подписка". Проектирование базы данных методом "Сущность-Связь" для разработанной функциональной модели. Описание таблиц базы данных. Выбор программного обеспечения, требования к нему. Краткое руководство пользователя.
курсовая работа [719,6 K], добавлен 15.09.2012Создание автоматизированной системы учета заказов и их выполнения в строительной фирме по ремонту квартир. Общие требования к информационной системе. Проектирование структуры базы данных. Построение ER-диаграммы. Реализация информационной системы.
курсовая работа [750,2 K], добавлен 24.03.2014Детализация функций системы и требования к информационной системе. Анализ категорий пользователей. Этапы внедрения автоматизированной информационной системы на предприятии. Описание таблиц базы данных. Защита данных от несанкционированного доступа.
дипломная работа [1,0 M], добавлен 22.07.2015Анализ проектирования автоматизированной информационной системы компьютерного магазина "Джей". Разработка базы данных на языке Transact-SQL в системе управления базами данных Microsoft SQL Server 2000. Расчет себестоимости и цены программного продукта.
курсовая работа [2,3 M], добавлен 16.08.2012Формы как носители информации. Реляционные базы данных. Разработка автоматизированной системы по ведению учета операций на предприятии ТОО "Фирма Радар". Задачи, выполняемые приложением. Цели, задачи, функции внутрифирменной системы обработки информации.
дипломная работа [1,7 M], добавлен 03.07.2015Реализация в автосервисах информационной справочной системы для организации учета распределения работ и ведения учета их стоимости. Анализ механизма предоставления услуг. Инфологическое и даталогическое проектирование. Выявление сущностей базы данных.
курсовая работа [1020,5 K], добавлен 24.01.2009Обоснование необходимости совершенствования информационной системы (ИС) ООО "Мехсервис". Анализ системы учета деятельности авторемонтного предприятия. Разработка концепции построения автоматизированной ИС. Описание продукта информационной технологии.
дипломная работа [2,7 M], добавлен 22.05.2012Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014