Проектирование автоматизированной информационной системы книжного склада - Курсовая работа

бесплатно 0
4.5 139
Среда разработки Delphi. Обзор современной автоматизированной информационной системы "Книжный склад". Структурированное добавление новых данных. Автоматизация учета и отчетности товарооборота фирм. Дублирование ввода информации. Деление книг по тематикам.


Аннотация к работе
Актуальность проектирования АИС «Книжный склад» обусловлено тем, что в данный момент на книжных складах используется не систематизированные учеты хранения книг и неструктурированные отчеты по закупкам и продажам. Для того что бы спроектировать конкурентоспособную АИС «книжный склад» необходимо выполнить следующие задачи: рассмотреть современные АИС «книжный склад», выбрать язык программирования и среду разработки.Изначально язык был предназначен исключительно для разработки приложений MICROSOFTWINDOWS, затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET.Паскаль был полностью процедурным языком, Турбо Паскаль начиная с версии 5.5 добавил в Паскаль объектно-ориентированные свойства, а Delphi - объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией. Также отличительным свойством Дельфи от С является отсутствие возможности располагать объекты в стеке (объекты, унаследованные из Турбо Паскаля, располагаться в стеке могут) - все объекты попадают в динамически выделяемую область (кучу). Так, в Delphi 7 компилятор имеет номер версии 15.0 (Последняя версия BORLANDPASCAL / TURBOPASCAL обозначалась 7.0, в Delphi 1 компилятор имеет версию 8.0, в Delphi 2 - 9.0, и т. д. В настоящее время, в Delphi 2006, можно писать приложения для .NET используя стандартную библиотеку классов .NET, VCL для .NET. Среда также позволяет писать .NET-приложения на C# и Win32-приложения на C .База данных - поименная совокупность структурированных данных, относящихся к определенной предметной области. Под предметной областью принято понимать часть реального мира, подлежащую изучению для организации управления и автоматизации (предприятия, организации). Пользователями БД могут быть различные прикладные программы, программы-комплексы, а также специалисты предметной области, которые называются конечными пользователями. В качестве таких средств могут выступать текстовые описания предметной области, наборы должностных инструкций, правила ведения дел в компании и т.п. Модель предметной области описывает скорее процессы, происходящие в предметной области и данные, используемые этими процессами.Разработать структуру базы данных для книжного склада. Эта база данных должна содержать следующую информацию: 1. данные о складах 2. данные о книгах 3. наличие на складе Построить запросы, формы и отчеты, позволяющие получать следующую информацию: · какие книги по конкретной тематике имеются на складеАлгоритм - заранее определенное, точное предписание, которое задает дискретный (пошаговый) процесс, начинающийся определенным образом и приводящий к результату за конечное число шагов. Каждый алгоритм должен обладать следующими свойствами: - дискретность - каждый алгоритм должен быть разбит на конечное число законченных действий;Содержит четыре вкладки меню: «Файл», «Таблицы», «Запросы», «Ввод данных». Вкладка «Таблицы» содержит пункты меню : «Склады», «Наличие», «Книги», «Продажи». Меню «Склады» содержит таблицу складов организации и Содержит такие данные как: идентификатор, название склада,адрес склада,телефон склада и контактное лицо. Меню «Наличие» содержит таблицу, в которой записываются идентификаторы книг, их колво, наличие на складе. Меню «Книги» содержит таблицу, в которой записываются наименования книг, авторы, год издания, издательство.USESWARHOUSES, Presences, Books, Sales, In_Warhouse, In_Book, In_Presence, In_Sale, SQL_Query, QKNOWLEDGE, QSALE_Cost, QAUTHOR, QGAIN; Form_SQL_Query.Show; PROCEDURETFORM_SQL_Query.Button_EXECUTECLICK(Sender: TOBJECT); Form_SQL_Query.Query1.SQL:=Form_SQL_Query.Memo1.Lines; Form_Books.Table_Books.FIELDBYNAME("id").ASINTEGER 1, Edit_Name.Text, Edit_Author.Text, Edit_Publisher.Text, STRTOINT(Edit_Year.Text), STRTOINT(Edit_Circuation.Text), Edit_Knowledge.Text, STRTOINT(Edit_Cost.

План
СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1.ТЕОРИТИЧЕСКАЯ ЧАСТЬ.СРЕДА РАЗРАБОТКИ И ИСТОРИЯ ЯЗЫКА DELPHI.

1.1 Среда разработки Delphi

1.2История языка

1.3 Обзор современной АИС «Книжный склад»

ГЛАВА 2.ПРАКТИЧЕСКАЯ ЧАСТЬ.ПРОЕКТИРОВАНИЕ АИС КНИЖНЫЙ СКЛАД

2.1Анализ предметной области

2.2Постановка задачи

2.3ER-диаграмма Книжного склада

2.4Алгоритм программы

2.5Инструкция пользователя

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ А

Вывод
В первой главе были рассмотрены теоретические понятия в области автоматизированных информационных систем и приведен пример работы ведущей программы «книжный склад». На основе анализа был сделан вывод о целесообразности проектирования и последующей разработки информационной системы «книжного склада».

Во второй главе была выбрана среда разработки, описана инструкция пользователя и структура программы. В качестве среды разработки была ВЫБРАНАDELPHI, среда очень понравилась своим дружелюбным интерфейсом и простотой использования. Данная программа позволяет работникам книжного склада осуществлять структурированное добавление новых данных, также осуществлять удобный поиск по данным вести учет проданный и купленных книг. Также во второй главе описана инструкция пользователя, позволяющая пользователю ознакомиться с функционалом программы и рассмотрен пример работы с программой.

ПРИЛОЖЕНИЕА unit Main;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, Menus, EXTCTRLS, STDCTRLS;

type

TFORM_Main = 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;

SQL1: TMENUITEM;

Button_Close: TBUTTON;

Bevel1: TBEVEL;

N14: TMENUITEM;

N15: TMENUITEM;

N16: TMENUITEM;

N17: TMENUITEM;

Label1: TLABEL;

procedure N2Click(Sender: TOBJECT);

procedure N4Click(Sender: TOBJECT);

procedure N5Click(Sender: TOBJECT);

procedure N6Click(Sender: TOBJECT);

procedure N7Click(Sender: TOBJECT);

procedure N9Click(Sender: TOBJECT);

procedure N11Click(Sender: TOBJECT);

procedure N10Click(Sender: TOBJECT);

procedure N12Click(Sender: TOBJECT);

procedure SQL1Click(Sender: TOBJECT);

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

procedure N14Click(Sender: TOBJECT);

procedure N15Click(Sender: TOBJECT);

procedure N16Click(Sender: TOBJECT);

procedure N17Click(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_Main: TFORM_Main;

implementation

USESWARHOUSES, Presences, Books, Sales, In_Warhouse, In_Book, In_Presence, In_Sale, SQL_Query, QKNOWLEDGE, QSALE_Cost, QAUTHOR, QGAIN;

{$R *.DFM} procedure TFORM_Main.N2Click(Sender: TOBJECT);

begin

Close;

end;

procedure TFORM_Main.N4Click(Sender: TOBJECT);

begin

Form_Warhouses.Show;

end;

procedure TFORM_Main.N5Click(Sender: TOBJECT);

begin

Form_Presences.Show;

end;

procedure TFORM_Main.N6Click(Sender: TOBJECT);

begin

Form_Books.Show;

end;

procedure TFORM_Main.N7Click(Sender: TOBJECT);

begin

Form_Sales.Show;

end;

procedure TFORM_Main.N9Click(Sender: TOBJECT);

begin

Form_In_Warhouse.Show;

end;

procedure TFORM_Main.N11Click(Sender: TOBJECT);

begin

Form_In_Book.Show;

end;

procedure TFORM_Main.N10Click(Sender: TOBJECT);

begin

Form_In_Presence.Show;

end;

procedure TFORM_Main.N12Click(Sender: TOBJECT);

begin

Form_In_Sale.Show;

end;

procedure TFORM_Main.SQL1Click(Sender: TOBJECT);

begin

Form_SQL_Query.Show;

end;

PROCEDURETFORM_Main.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

procedure TFORM_Main.N14Click(Sender: TOBJECT);

begin

Form_QKNOWLEDGE.Show;

end;

procedure TFORM_Main.N15Click(Sender: TOBJECT);

begin

Form_QSALE_Cost.Show;

end;

procedure TFORM_Main.N16Click(Sender: TOBJECT);

begin

Form_QAUTHOR.Show;

end;

procedure TFORM_Main.N17Click(Sender: TOBJECT);

begin

Form_QGAIN.Show;

end;

end. unit Presences;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, EXTCTRLS, DBCTRLS, Grids, DBGRIDS, Db, DBTABLES;

type

TFORM_Presences = class(TFORM)

Table_Presences: TTABLE;

DATASOURCE_Presences: TDATASOURCE;

DBGRID1: TDBGRID;

DBNAVIGATOR1: TDBNAVIGATOR;

Button_Close: TBUTTON;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDURETABLE_PRESENCESBEFOREDELETE(DATASET: TDATASET);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_Presences: TFORM_Presences;

implementation

{$R *.DFM}

PROCEDURETFORM_Presences.Button_CLOSECLICK(Sender: TOBJECT);

begin

Close;

end;

PROCEDURETFORM_Presences.Table_PRESENCESBEFOREDELETE(DATASET: TDATASET);

begin

IFMESSAGEDLG("Текущая запись и все связанные с ней записи будут удалены."

#13 "Продолжить?", MTCONFIRMATION,[MBOK,MBCANCEL],0)=MRCANCEL then begin

Abort;

end;

end;

end.

UNITQGAIN;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Grids, DBGRIDS, Db, DBTABLES, DBCTRLS, COMCTRLS;

type

TFORM_QGAIN = class(TFORM)

Query1: TQUERY;

DATASOURCE1: TDATASOURCE;

DBGRID1: TDBGRID;

Button_Close: TBUTTON;

Button_Execute: TBUTTON;

DATETIMEPICKER_Start: TDATETIMEPICKER;

DATETIMEPICKER_Last: TDATETIMEPICKER;

Label1: TLABEL;

Label2: TLABEL;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_EXECUTECLICK(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_QGAIN: TFORM_QGAIN;

implementation

{$R *.DFM}

PROCEDURETFORM_QGAIN.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_QGAIN.Button_EXECUTECLICK(Sender: TOBJECT);

begin try

Query1.Active:=false;

Query1.PARAMBYNAME("first_date").ASDATE:=DATETIMEPICKER_Start.Date;

Query1.PARAMBYNAME("last_date").ASDATE:=DATETIMEPICKER_Last.Date;

Query1.Active:=true;

except on error: EDATABASEERROR do begin

MESSAGEDLG("При выполнении запроса произошла ошибка:" #13 #13 error.Message ,MTERROR,[MBOK],0);

end;

end;

end;

end.

UNITQAUTHOR;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Grids, DBGRIDS, Db, DBTABLES, DBCTRLS;

type

TFORM_QAUTHOR = class(TFORM)

Query1: TQUERY;

DATASOURCE1: TDATASOURCE;

DBGRID1: TDBGRID;

Button_Close: TBUTTON;

Button_Execute: TBUTTON;

DBLOOKUPCOMBOBOX1: TDBLOOKUPCOMBOBOX;

Table_Books1: TTABLE;

DATASOURCE_Books1: TDATASOURCE;

Label1: TLABEL;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_EXECUTECLICK(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_QAUTHOR: TFORM_QAUTHOR;

implementation

{$R *.DFM}

PROCEDURETFORM_QAUTHOR.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_QAUTHOR.Button_EXECUTECLICK(Sender: TOBJECT);

begin try

Query1.Active:=false;

Query1.PARAMBYNAME("author").ASSTRING:=DBLOOKUPCOMBOBOX1.Text;

Query1.Active:=true;

except on error: EDATABASEERROR do begin

MESSAGEDLG("При выполнении запроса произошла ошибка:" #13 #13 error.Message ,MTERROR,[MBOK],0);

end;

end;

end;

end.

UNITQKNOWLEDGE;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Grids, DBGRIDS, Db, DBTABLES, DBCTRLS;

type

TFORM_QKNOWLEDGE = class(TFORM)

Query1: TQUERY;

DATASOURCE1: TDATASOURCE;

DBGRID1: TDBGRID;

Button_Close: TBUTTON;

Button_Execute: TBUTTON;

DBLOOKUPCOMBOBOX1: TDBLOOKUPCOMBOBOX;

Table_Books1: TTABLE;

DATASOURCE_Books1: TDATASOURCE;

Label1: TLABEL;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_EXECUTECLICK(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_QKNOWLEDGE: TFORM_QKNOWLEDGE;

implementation

{$R *.DFM}

PROCEDURETFORM_QKNOWLEDGE.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_QKNOWLEDGE.Button_EXECUTECLICK(Sender: TOBJECT);

begin try

//закрываетсязапрос

Query1.Active:=false;

//устанавливаетсяпараметр "Областьзнаний"

Query1.PARAMBYNAME("know").ASSTRING:=DBLOOKUPCOMBOBOX1.Text;

//открывается запрос

Query1.Active:=true;

except

//в случае ошибки базы данных выводится сообщение об ошибке on error: EDATABASEERROR do begin

MESSAGEDLG("Привыполнениизапросапроизошлаошибка:" #13 #13 error.Message ,MTERROR,[MBOK],0);

end;

end;

end;

end

UNITQSALE_Cost;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, DBCTRLS, DBTABLES, Db, Grids, DBGRIDS;

type

TFORM_QSALE_Cost = class(TFORM)

DBGRID1: TDBGRID;

Query1: TQUERY;

DATASOURCE1: TDATASOURCE;

Table_Books1: TTABLE;

DATASOURCE_Books1: TDATASOURCE;

DBLOOKUPCOMBOBOX1: TDBLOOKUPCOMBOBOX;

Button_Execute: TBUTTON;

Button_Close: TBUTTON;

Label1: TLABEL;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_EXECUTECLICK(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_QSALE_Cost: TFORM_QSALE_Cost;

implementation

{$R *.DFM}

PROCEDURETFORM_QSALE_Cost.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_QSALE_Cost.Button_EXECUTECLICK(Sender: TOBJECT);

begin try

Query1.Active:=false;

Query1.Params[0].Value:=DBLOOKUPCOMBOBOX1.KEYVALUE;

Query1.Active:=true;

except on error: EDATABASEERROR do begin

MESSAGEDLG("При выполнении запроса произошла ошибка:" #13 #13 error.Message ,MTERROR,[MBOK],0);

end;

end;

end;

end. unit Sales;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, EXTCTRLS, DBCTRLS, Grids, DBGRIDS, Db, DBTABLES;

type

TFORM_Sales = class(TFORM)

Table_Sales: TTABLE;

DATASOURCE_Sales: TDATASOURCE;

DBGRID1: TDBGRID;

DBNAVIGATOR1: TDBNAVIGATOR;

Button_Close: TBUTTON;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDURETABLE_SALESBEFOREDELETE(DATASET: TDATASET);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_Sales: TFORM_Sales;

implementation

{$R *.DFM}

PROCEDURETFORM_Sales.Button_CLOSECLICK(Sender: TOBJECT);

begin

Close;

end;

PROCEDURETFORM_Sales.Table_SALESBEFOREDELETE(DATASET: TDATASET);

begin

IFMESSAGEDLG("Текущая запись и все связанные с ней записи будут удалены."

#13 "Продолжить?", MTCONFIRMATION,[MBOK,MBCANCEL],0)=MRCANCEL then begin

Abort;

end;

end;

end.

UNITSQL_Query;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Grids, DBGRIDS, Db, DBTABLES;

type

TFORM_SQL_Query = class(TFORM)

Query1: TQUERY;

DATASOURCE1: TDATASOURCE;

Button_Execute: TBUTTON;

Button_Clear: TBUTTON;

Button_Close: TBUTTON;

GROUPBOX1: TGROUPBOX;

Memo1: TMEMO;

GROUPBOX2: TGROUPBOX;

DBGRID1: TDBGRID;

Button_Save: TBUTTON;

Button_Load: TBUTTON;

OPENDIALOG1: TOPENDIALOG;

SAVEDIALOG1: TSAVEDIALOG;

PROCEDUREBUTTON_EXECUTECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_CLEARCLICK(Sender: TOBJECT);

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_LOADCLICK(Sender: TOBJECT);

PROCEDUREBUTTON_SAVECLICK(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_SQL_Query: TFORM_SQL_Query;

implementation

{$R *.DFM}

PROCEDURETFORM_SQL_Query.Button_EXECUTECLICK(Sender: TOBJECT);

begin

//присваиваетсятекст SQL-запроса

Form_SQL_Query.Query1.SQL:=Form_SQL_Query.Memo1.Lines;

try

//закрываетсязапрос

Form_SQL_Query.Query1.Active:=false;

//открываетсязапрос

Form_SQL_Query.Query1.Active:=true;

except

//в случае ошибки базы данных выводится сообщение об ошибке on error: EDATABASEERROR do begin

MESSAGEDLG("Привыполнениизапросапроизошлаошибка:" #13 #13 error.Message ,MTERROR,[MBOK],0);

end;

end;

end;

PROCEDURETFORM_SQL_Query.Button_CLEARCLICK(Sender: TOBJECT);

begin

Form_SQL_Query.Memo1.Lines.Clear;

end;

PROCEDURETFORM_SQL_Query.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_SQL_Query.Button_LOADCLICK(Sender: TOBJECT);

begin if OPENDIALOG1.Execute then begin

Memo1.Lines.LOADFROMFILE(OPENDIALOG1.FILENAME);

end;

end;

PROCEDURETFORM_SQL_Query.Button_SAVECLICK(Sender: TOBJECT);

begin if SAVEDIALOG1.Execute then begin

Memo1.Lines.SAVETOFILE(CHANGEFILEEXT(SAVEDIALOG1.FILENAME,".sql"));

end;

end;

end.

UNITWARHOUSES;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, EXTCTRLS, DBCTRLS, Grids, DBGRIDS, Db, DBTABLES;

type

TFORM_Warhouses = class(TFORM)

Table_Warhouses: TTABLE;

DATASOURCE_Warhouses: TDATASOURCE;

DBGRID1: TDBGRID;

DBNAVIGATOR1: TDBNAVIGATOR;

Button_Close: TBUTTON;

Query_Delete: TQUERY;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDURETABLE_WARHOUSESBEFOREDELETE(DATASET: TDATASET);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_Warhouses: TFORM_Warhouses;

implementation uses Presences, Sales;

{$R *.DFM}

PROCEDURETFORM_Warhouses.Button_CLOSECLICK(Sender: TOBJECT);

begin

Close;

end;

PROCEDURETFORM_Warhouses.Table_WARHOUSESBEFOREDELETE(DATASET: TDATASET);

var id: string;

begin

//подтверждение удаления записи

IFMESSAGEDLG("Текущая запись и все связанные с ней записи будут удалены."

#13 "Продолжить?", MTCONFIRMATION,[MBOK,MBCANCEL],0)=MRCANCEL then begin

Abort;

end;

//закрытие запроса на удаление

Query_Delete.Close;

//получение ключа удаляемой записи id:=Table_Warhouses.FIELDBYNAME("id").ASSTRING;

//очищение SQL-запроса

Query_Delete.SQL.Clear;

//добавлениетекста SQL-запроса

Query_Delete.SQL.Add("DELETE FROM presences");

Query_Delete.SQL.Add("WHERE presences.id_warhouse=" id);

//выполнение запроса

Query_Delete.EXECSQL;

Query_Delete.SQL.Clear;

Query_Delete.SQL.Add("DELETE FROM sales");

Query_Delete.SQL.Add("WHERE sales.id_warhouse=" id);

Query_Delete.EXECSQL;

//обновление данных в окнах программы

Form_Presences.Table_Presences.Close;

Form_Presences.Table_Presences.Open;

Form_Sales.Table_Sales.Close;

Form_Sales.Table_Sales.Open;

end;

end. unit Books;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, EXTCTRLS, DBCTRLS, Grids, DBGRIDS, Db, DBTABLES;

type

TFORM_Books = class(TFORM)

Table_Books: TTABLE;

DATASOURCE_Books: TDATASOURCE;

DBGRID1: TDBGRID;

DBNAVIGATOR1: TDBNAVIGATOR;

Button_Close: TBUTTON;

Query_Delete: TQUERY;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDURETABLE_BOOKSBEFOREDELETE(DATASET: TDATASET);

PROCEDUREFORMCREATE(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_Books: TFORM_Books;

implementation uses Presences, Sales;

{$R *.DFM}

PROCEDURETFORM_Books.Button_CLOSECLICK(Sender: TOBJECT);

begin

Close;

end;

PROCEDURETFORM_Books.Table_BOOKSBEFOREDELETE(DATASET: TDATASET);

var id: string;

begin

IFMESSAGEDLG("Текущая запись и все связанные с ней записи будут удалены."

#13 "Продолжить?", MTCONFIRMATION,[MBOK,MBCANCEL],0)=MRCANCEL then begin

Abort;

end;

Query_Delete.Close;

id:=Table_Books.FIELDBYNAME("id").ASSTRING;

Query_Delete.SQL.Clear;

Query_Delete.SQL.Add("DELETE FROM presences");

Query_Delete.SQL.Add("WHERE presences.id_book=" id);

Query_Delete.EXECSQL;

Query_Delete.SQL.Clear;

Query_Delete.SQL.Add("DELETE FROM sales");

Query_Delete.SQL.Add("WHERE sales.id_book=" id);

Query_Delete.EXECSQL;

Form_Presences.Table_Presences.Close;

Form_Presences.Table_Presences.Open;

Form_Sales.Table_Sales.Close;

Form_Sales.Table_Sales.Open;

end;

PROCEDURETFORM_Books.FORMCREATE(Sender: TOBJECT);

begin end;

end.

UNITIN_Book;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Db, DBTABLES, DBCTRLS, EXTCTRLS, COMCTRLS;

type

TFORM_In_Book = class(TFORM)

Label1: TLABEL;

Label2: TLABEL;

Label3: TLABEL;

Button_Add: TBUTTON;

Button_Close: TBUTTON;

Label6: TLABEL;

Label4: TLABEL;

Bevel1: TBEVEL;

Edit_Author: TEDIT;

Edit_Circuation: TEDIT;

Edit_Year: TEDIT;

Edit_Publisher: TEDIT;

Edit_Name: TEDIT;

Label5: TLABEL;

Label7: TLABEL;

Edit_Knowledge: TEDIT;

Edit_Cost: TEDIT;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_ADDCLICK(Sender: TOBJECT);

PROCEDUREFORMCREATE(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_In_Book: TFORM_In_Book;

implementation uses Books;

{$R *.DFM} procedurefill_result_data;

begin

WITHFORM_In_Book do begin

Edit_Name.Text:="Name";

Edit_Author.Text:="Author";

Edit_Publisher.Text:="Publisher";

Edit_Year.Text:="1900";

Edit_Circuation.Text:="0";

Edit_Knowledge.Text:="Knowledge";

Edit_Cost.Text:="0";

end;

end;

PROCEDURETFORM_In_Book.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_In_Book.Button_ADDCLICK(Sender: TOBJECT);

begin

Form_Books.Table_Books.Last;

ry

Form_Books.Table_Books.APPENDRECORD([

Form_Books.Table_Books.FIELDBYNAME("id").ASINTEGER 1, Edit_Name.Text, Edit_Author.Text, Edit_Publisher.Text, STRTOINT(Edit_Year.Text), STRTOINT(Edit_Circuation.Text), Edit_Knowledge.Text, STRTOINT(Edit_Cost.Text)]);

except

MESSAGEDLG("Вполяформывведенынедопустимыеданные", MTERROR,[MBOK],0);

Exit;

end;

fill_result_data;

end;

PROCEDURETFORM_In_Book.FORMCREATE(Sender: TOBJECT);

begin fill_result_data;

end;

end.

UNITIN_Presence;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Db, DBTABLES, DBCTRLS, EXTCTRLS, COMCTRLS;

type

TFORM_In_Presence = class(TFORM)

Label1: TLABEL;

Label2: TLABEL;

Button_Add: TBUTTON;

Button_Close: TBUTTON;

DBLOOKUPCOMBOBOX_Warhouse: TDBLOOKUPCOMBOBOX;

Label6: TLABEL;

Table_Warhouses1: TTABLE;

DATASOURCE_Warhouses1: TDATASOURCE;

Table_Warhouses2: TTABLE;

DATASOURCE_Warhouses2: TDATASOURCE;

Label4: TLABEL;

DBLOOKUPCOMBOBOX_Book: TDBLOOKUPCOMBOBOX;

Table_Books1: TTABLE;

DATASOURCE_Books1: TDATASOURCE;

Table_Books2: TTABLE;

DATASOURCE_Books2: TDATASOURCE;

Bevel1: TBEVEL;

Edit_Item_Amount: TEDIT;

Edit_Pack_Amount: TEDIT;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_ADDCLICK(Sender: TOBJECT);

PROCEDUREFORMCREATE(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_In_Presence: TFORM_In_Presence;

implementation uses Presences;

{$R *.DFM} procedurefill_result_data;

begin

WITHFORM_In_Presence do begin

Edit_Pack_Amount.Text:="0";

Edit_Item_Amount.Text:="0";

end;

end;

PROCEDURETFORM_In_Presence.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_In_Presence.Button_ADDCLICK(Sender: TOBJECT);

begin

Form_Presences.Table_Presences.Last;

try

Form_Presences.Table_Presences.APPENDRECORD([

Form_Presences.Table_Presences.FIELDBYNAME("id").ASINTEGER 1, Edit_Pack_Amount.Text, Edit_Item_Amount.Text, DBLOOKUPCOMBOBOX_Warhouse.Field.Value, DBLOOKUPCOMBOBOX_Book.Field.Value]);

except

MESSAGEDLG("В поля формы введены недопустимые данные", MTERROR,[MBOK],0);

Exit;

end;

fill_result_data;

end;

PROCEDURETFORM_In_Presence.FORMCREATE(Sender: TOBJECT);

begin fill_result_data;

end;

end.

UNITIN_Sale;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Db, DBTABLES, DBCTRLS, EXTCTRLS, COMCTRLS;

type

TFORM_In_Sale = class(TFORM)

Label1: TLABEL;

Label2: TLABEL;

Label3: TLABEL;

Button_Add: TBUTTON;

Button_Close: TBUTTON;

DBLOOKUPCOMBOBOX_Warhouse: TDBLOOKUPCOMBOBOX;

Label6: TLABEL;

Table_Warhouse1: TTABLE;

DATASOURCE_Warhouse1: TDATASOURCE;

Table_Warhouse2: TTABLE;

DATASOURCE_Warhouse2: TDATASOURCE;

Label4: TLABEL;

DBLOOKUPCOMBOBOX_Book: TDBLOOKUPCOMBOBOX;

Table_Book1: TTABLE;

DATASOURCE_Book1: TDATASOURCE;

Table_Book2: TTABLE;

DATASOURCE_Book2: TDATASOURCE;

Bevel1: TBEVEL;

Edit_Cost: TEDIT;

Edit_Amount: TEDIT;

Edit_Date: TEDIT;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_ADDCLICK(Sender: TOBJECT);

PROCEDUREFORMCREATE(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_In_Sale: TFORM_In_Sale;

implementation uses Sales;

{$R *.DFM} procedurefill_result_data;

begin

WITHFORM_In_Sale do begin

Edit_Date.Text:="01.01.01";

Edit_Cost.Text:="0";

Edit_Amount.Text:="0";

end;

end;

PROCEDURETFORM_In_Sale.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_In_Sale.Button_ADDCLICK(Sender: TOBJECT);

begin

Form_Sales.Table_Sales.Last;

try

Form_Sales.Table_Sales.APPENDRECORD([

Form_Sales.Table_Sales.FIELDBYNAME("id").ASINTEGER 1, STRTODATE(Edit_Date.Text), STRTOINT(Edit_Cost.Text), STRTOINT(Edit_Amount.Text), DBLOOKUPCOMBOBOX_Warhouse.Field.Value, DBLOOKUPCOMBOBOX_Book.Field.Value]);

except

MESSAGEDLG("Вполяформывведенынедопустимыеданные", MTERROR,[MBOK],0);

Exit;

end;

fill_result_data;

end;

PROCEDURETFORM_In_Sale.FORMCREATE(Sender: TOBJECT);

begin fill_result_data;

end;

end.

UNITIN_Warhouse;

interface uses

Windows, Messages, SYSUTILS, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Db, DBTABLES, DBCTRLS, EXTCTRLS, COMCTRLS;

type

TFORM_In_Warhouse = class(TFORM)

Label1: TLABEL;

Label2: TLABEL;

Label3: TLABEL;

Button_Add: TBUTTON;

Button_Close: TBUTTON;

Label6: TLABEL;

Bevel1: TBEVEL;

Edit_Address: TEDIT;

Edit_Name: TEDIT;

Edit_Phone: TEDIT;

Edit_Manager: TEDIT;

PROCEDUREBUTTON_CLOSECLICK(Sender: TOBJECT);

PROCEDUREBUTTON_ADDCLICK(Sender: TOBJECT);

PROCEDUREFORMCREATE(Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form_In_Warhouse: TFORM_In_Warhouse;

implementation

USESWARHOUSES;

{$R *.DFM} procedurefill_result_data;

begin

WITHFORM_In_Warhouse do begin

Edit_Name.Text:="Name";

Edit_Address.Text:="Address";

Edit_Phone.Text:="000-00-00";

Edit_Manager.Text:="Manager";

end;

end;

PROCEDURETFORM_In_Warhouse.Button_CLOSECLICK(Sender: TOBJECT);

begin close;

end;

PROCEDURETFORM_In_Warhouse.Button_ADDCLICK(Sender: TOBJECT);

begin

Form_Warhouses.Table_Warhouses.Last;

try

Form_Warhouses.Table_Warhouses.APPENDRECORD([

Form_Warhouses.Table_Warhouses.FIELDBYNAME("id").ASINTEGER 1, Edit_Name.Text, Edit_Address.Text, Edit_Phone.Text, Edit_Manager.Text]);

except

MESSAGEDLG("В поля формы введены недопустимые данные", MTERROR,[MBOK],0);

Exit;

end;

fill_result_data;

end;

PROCEDURETFORM_In_Warhouse.FORMCREATE(Sender: TOBJECT);

begin fill_result_data;

end;

end.

Размещено на
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?