Ім'я файлу: Kursova_-_zvit_Magazin_odyagu.docx Розширення: docx Розмір: 1193кб. Дата: 10.06.2020 скачати Зміст Вступ..................................................................................................................... 1. Аналіз завдання та вибір засобів розробки програмного продукту: 1.1. Опис предметної області та постановка завдання ..................................... 1.2. Засоби розробки програмного продукту .................................................... 2. Проектування діаграм та алгоритмів використання програмного продукту: 2.1. Проектування діаграм потоків даних ......................................................... 2.2. Розробка алгоритму вирішення завдання .................................................. 3. Розробка структури та модулів: 3.1 Структура програмного продукту ............................................................... 3.2 Функції частини програмного забезпечення................................................... 4.Керівництво користувача………………………………………………….. Висновки Література Додатки Вступ В умовах постійного зростання об’ємів інформації та вимог щодо швидкості її опрацювання, потреба у ефективних автоматизованих засобах обробки інформації стає дедалі нагальнішою. Ця проблема гостро відчувається підприємцями, які займаються електронною комерцією і яким необхідний інструмент, що дозволив би зручне ведення обліку товару та швидку обробку замовлень, навіть у випадку значної їх кількості. Бази даних та системи управління базами даних покликані розв’язувати ці проблеми. СУБД забезпечують можливість доступу до даних будь-яким користувачам, навіть тим, які практично не мають уявлення про фізичне розміщення даних в пам’яті, їх опис, механізми пошуку даних за запитами, проблеми, що виникають при одночасному запиті одних і тих самих даних багатьма користувачами та багато іншого. Мета інформаційних систем спростити контроль за даними різного типу, покращити їхню надійність при зберіганні. Наприклад: ми зможемо точно знати скільки в нас на складі залишилось товарів. Спираючись на ці дані ми можемо замовити новий товар, відслітковуючи всі зміни складати статистику покупок або замовлень. Програма «Керування БД магазину одягу» керує базою даних нашого магазину. Вона організована в зручному інтерфейсі, відображає склад товару, корзину із запланованими покупками та редактор даних. За допомогою цієї програми можна побачити скільки товару є на складі, натиснувши кнопку “Склад”. Також можна відслідкувати усі продажі і підрахувати всю виручку. Присутній чудова система пошуку товарів. Аналіз завдання та вибір засобів розробки програмного продукту Опис предметної області та постановка завдання У сучасному світі практично кожне підприємство використовує у своїй праці бази даних. База даних – це певна програма, у яку вносяться певні дані, і у якій ці дані сортуються для подальшого використання. Також у базах даних можливе існування пошуку для більшої зручності. Це може бути база даних продуктів або товару, студентів або викладачів. База даних магазин одягу створена для полегшення роботи працівників магазину. Як і будь яка база, ця повинна бути створена у вигляді списку для легшого виводу інформації та для зручності користування даної програми, тому також у постановці задачі має бути присутня така умова, як вивід інформації у вигляді списку та пошук її теж через список. Для керування такою базою даних потрібно мати зручний інструмент, за допомогою якого можна здійснювати пошук товару, організовувати замовлення, отримувати оперативну інформацію про їх наявність на складі та короткі характеристики (опис). Алгоритм роботи програми такий: підключаємо 4 основні таблиці (Books, Presences, Sales, Warhouses). Для того, щоб продати товар потрібно нажати на вкладку продажі, ввести дату продажу, ціну, кількість, склад з якого будет відвантажено заказ і вибрати сам товар. Після чого нажимаємо кнопку добавити і тоді товар буде успішно продано. Щоб підрахувати всю виручку потрібно нажати на вкладку Запроси->Виручка, вибрати початкову дату і кінцеву, нажати Пошук. 1.2. Засоби розробки програмного продукту Delphi є інтегрованим середовищем розробки програм (IntegratedDevelopmentEnvironment, IDE). Це середовище дає змогу створювати програми в стилі візуального конструювання форм, розміщуючи на них візуальні елементи. Таке конструювання позбавляє програміста багатьох труднощів розробки інтерфейсу програми, оскільки Delphi автоматично генерує необхідний програмний код. Програміст використовує спеціальне вікно, яке називається вікном форми, як прототип майбутнього вікна програми. Додаючи до нього різні компоненти, він створює необхідні інтерфейсні та функціональні властивості програми. Компоненти Delphi – готові цеглинки середовища і нагадують деталі конструктора. Delphi належить до класу інструментальних засобів прискореної розробки програм (RapidApplicationDevelopment, RAD). Перший інструмент RAD було створено корпорацією Microsoft. Це була мова Visual Basic. Середовище Delphi було створено через три роки разом із такими продуктами, як Visual C++, C++Builder, JBuilder, PowerBuilder, які також належать до класу інструментів прискореної розробки. Це прискорення досягається за рахунок двох характерних властивостей Delphi: підтримки технології візуального програмування та широкого використання бібліотеки встановлених компонентів (VisualComponentLibrary, VCL). Ядром мови Delphi є мова Pascal, створена професором Цюріхського університету Ніколаусом Віртом ще наприкінці 60-х років XX ст. спеціально для навчання студентів програмування. За довгі роки мова Pascal перетворилась на потужну сучасну об'єктно орієнтовану мову, яка успішно використовується для створення програм будь-якої складності. Delphi це зручне середовище розробки, яке дозволяє візуально налаштовувати елементи форми, задаючи їм певні параметри та події. Присутні інструменти які допоможуть розробляти програми, а також безліч компонентів які спрощують розробку. Є можливіть створення своїх власних компонентів, які можуть нам або іншим знадобитися. Основні вікна Delphi: Редактор коду Вікно форми Інспектор об’єктів В редакторі коду ми пишемо нашу програму. Відображено всі класи, парамети, функції та процедури. У вікні форми ми візуально розташувати компоненти, в інспекторі об’єктів змінюємо їхні параметри та задаєм події. Проектування діаграм та алгоритмів використання програмного продукту 2.1. Проектування діаграм потоків даних 2.2. Розробка алгоритму вирішення завдання Всі дані будуть зберігатися в таблицях БД Paradox 7. Books.db – містить бокс одягу, Presences.db – містить добавлений товар, Sales.db – продажі, Warhouses – зберігає інформацію про всі склади. ER-діаграма: 3. РОЗРОБКА СТРУКТУРИ ТА МОДУЛІВ 3.1. Структура програмного продукту Програма складається з 13-и модулів: Books.pas – форма перегляду товару. In_Book.pas – форма добавлення товару. In_Presence.pas – форма результатів. In_Sale.pas – форма підтвердженя продажу товару. In_Warhouse.pas – форма добавлення складів. Main.pas – головна форма. QAuthor.pas – форма пошук одягу по бренду. QGain.pas – форма підрахування виручки. QKnowledge.pas – форма пошук одягу по розміру. QSale_Cost.pas – відпускні ціни. Sales.pas – форма яка показує усі продані товари. SQL_Query.pas – форма SQL-запроса. Warhouses.pas – форма яка показує усі активні склади. Функції частини програмного забезпечення Пошук товарів за розміром. (аналогічно за брендом) procedure TForm_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; Форма авторизації procedure TForm_Main.Button1Click(Sender: TObject); var l: string; p: string; auth: boolean; begin // ПРИСВОЮЄМО ЗМІННЯ ПОЛЯМ l:= Edit1.Text; p:= Edit2.Text; // ВСТАНОВЛЮЄМО СТАНДАРТНЕ БУЛЕВЕ ЗНАЧЕННЯ АВТОРИЗАЦІЇ auth:= false; // ПЕРЕВІРКА ЛОГІНА І ПАРОЛЯ if ((l <> 'admin') or (p <> 'admin')) then begin // ЯКЩО АВТОРИЗАЦІЮ НЕ ПРОЙДЕНО ПОКАЗУЄМО ПОВІДОМЛЕННЯ ПРО ПОМИЛКУ MessageBox(handle, 'Неправильний логін або пароль!', 'Помилка', 0); // auth:= true; // DEBUG // РОЗКОМЕНТУЄ СТРОКУ ДЛЯ ТОГО, ЩОБ АВТОРИЗОВУВАТИСЯ БЕЗ ПАРОЛЯ end else begin auth:= true; // УСПІШНА ВТОРИЗАЦІЯ, ПРИЙМАЄМО ЗНАЧЕННЯ TRUE end; if auth = true then // ЯКЩО ЗНАЧЕННЯ TRUE АВТОРИЗОВУЄМО begin MessageBox(handle, 'Успішна авторизація!', '', 0); // ПОВІДОМЛЕННЯ ПРО УСПІХ АВТОРИЗАЦІЇ Form_Main.Width:= 800; Form_Main.Height:= 400; N1.Visible:= true; N3.Visible:= true; N8.Visible:= true; N13.Visible:= true; Panel1.Visible:= true; Panel2.Visible:= false; Panel3.Visible:= true; // АДАПТАЦІЯ ПІД РОЗМІР ЕКРАНУ Form_Main.Left:= (Screen.WorkAreaWidth - Form_Main.Width) div 2; Form_Main.Top:= (Screen.WorkAreaHeight - Form_Main.Height) div 2; end; end; Керівництво користувача Форма авторизації (рис. 4.1.) (рис. 4.1.) Головна форма (рис. 4.2.) (рис. 4.2.) Форма склади (рис. 4.3.) (рис. 4.3.) Форма наявність (рис 4.4.) (рис. 4.4.) Форма одяг (рис. 4.5.) (рис. 4.5.) Форма продажі (рис. 4.6.) (рис. 4.6.) Форма SQL-запрос (рис. 4.7.) (рис. 4.7.) Форма одяг по розміру (рис. 4.8.) (рис. 4.8.) Форма відпускні ціни (рис. 4.9.) (рис. 4.9.) Форма одяг по бренду (рис. 4.1.1.) (рис. 4.1.1.) Форма виручка (рис. 4.1.2.) (рис. 4.1.2.) Форма ввід даних – наявність товару (рис. 4.1.3.) Форма ввід даних – склади (рис. 4.1.4.) (рис. 4.1.4.) (рис. 4.1.3.) Форма ввід даних – одяг (рис. 4.1.5.) (рис. 4.1.5.) Форма ввід дних – продажі (рис. 4.1.6.) (рис. 4.1.6.) Висновок: В даній курсовій роботі було організовано програму керування базою даних магазину одягу. Реалізований пошук, організовування поставок, оформлення покупок. Програму було розроблено засобами мови програмування Delphi за допомогою середовища Borland Delphi 7. Список використаної літератури Інтернет-ресурс - https://yandex.ru/support/common/security/security-intro.xml Інтернет-ресурс - https://help.mail.ru/mail-help/security/internet Інтернет-ресурс - http://www.cyberforum.ru/ Інтернет-ресурс - http://stackoverflow.com/ Інтернет-ресурс - https://www.rl.kiev.ua/poleznaya-informatsiya/bezopasnost-v-internete/ Інтернет-ресурс - http://www.kaspersky.ua/internet-security-center/internet-safety/ Інтернет-ресурс - https://habrahabr.ru/company/mailru/blog/252091/ Інтернет-ресурс - http://softuhitel.com/bezopasnost-v-internete/ Інтернет-ресурс - http://azbez.com/safety/internet Інтернет-ресурс - http://delphisource.com/ Інтернет-ресурс - http://www.delphibasics.co.uk/ Інтернет-ресурс - http://www.delphimaster.ru/forums.shtml Delphi 7. Самовчитель програміста \ Автор: Баженова Ю.И. Програма: unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, StdCtrls, Buttons, jpeg; 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; N14: TMenuItem; N15: TMenuItem; N16: TMenuItem; N17: TMenuItem; Panel1: TPanel; Panel2: TPanel; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Button1: TButton; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; ScrollBox1: TScrollBox; Image1: TImage; Panel3: TPanel; Timer1: TTimer; Label2: TLabel; Panel4: TPanel; Label3: TLabel; Panel5: TPanel; Label4: 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); procedure Button_CloseClick(Sender: TObject); procedure N14Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_Main: TForm_Main; implementation uses Warhouses, Presences, Books, Sales, In_Warhouse, In_Book, In_Presence, In_Sale, SQL_Query, QKnowledge, QSale_Cost, QAuthor, QGain, DateUtils; {$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; procedure TForm_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; procedure TForm_Main.FormCreate(Sender: TObject); begin Form_Main.Width:= 300; Form_Main.Height:= 220; N1.Visible:= false; N3.Visible:= false; N8.Visible:= false; N13.Visible:= false; Panel1.Visible:= false; Panel3.Visible:= false; end; procedure TForm_Main.Button1Click(Sender: TObject); var l: string; p: string; auth: boolean; begin // ÀÂÒÎÐÈÇÀÖ²ß l:= Edit1.Text; p:= Edit2.Text; auth:= false; if ((l <> 'admin') or (p <> 'admin')) then begin MessageBox(handle, 'Íåïðàâèëüíèé ëîã³í àáî ïàðîëü!', 'Ïîìèëêà', 0); // auth:= true; // DEBUG end else begin auth:= true; end; if auth = true then begin MessageBox(handle, 'Óñï³øíà àâòîðèçàö³ÿ!', '', 0); Form_Main.Width:= 800; Form_Main.Height:= 400; N1.Visible:= true; N3.Visible:= true; N8.Visible:= true; N13.Visible:= true; Panel1.Visible:= true; Panel2.Visible:= false; Panel3.Visible:= true; // ÀÄÀÏÒÀÖ²ß Ï²Ä ÐÎÇ̲РÅÊÐÀÍÓ Form_Main.Left:= (Screen.WorkAreaWidth - Form_Main.Width) div 2; Form_Main.Top:= (Screen.WorkAreaHeight - Form_Main.Height) div 2; end; end; procedure TForm_Main.Timer1Timer(Sender: TObject); begin Label2.Caption:=TimeTostr(Time); Label4.Caption:=DateTostr(Date); // ÍÅ ÏÎÒÐÅÁÓª TIMER end; procedure TForm_Main.SpeedButton1Click(Sender: TObject); begin Form_Warhouses.Show; end; procedure TForm_Main.SpeedButton2Click(Sender: TObject); begin Form_Books.Show; end; procedure TForm_Main.SpeedButton3Click(Sender: TObject); begin Form_SQL_Query.Show; end; procedure TForm_Main.SpeedButton4Click(Sender: TObject); begin Form_QKnowledge.Show; end; procedure TForm_Main.SpeedButton5Click(Sender: TObject); begin Form_QGain.Show; end; procedure TForm_Main.SpeedButton6Click(Sender: TObject); begin Form_Presences.Show; end; end. // UNIT BOOK 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; procedure Button_CloseClick(Sender: TObject); procedure Table_BooksBeforeDelete(DataSet: TDataSet); private { Private declarations } public { Public declarations } end; var Form_Books: TForm_Books; implementation uses Presences, Sales; {$R *.DFM} procedure TForm_Books.Button_CloseClick(Sender: TObject); begin Close; end; procedure TForm_Books.Table_BooksBeforeDelete(DataSet: TDataSet); var id: string; begin if MessageDlg('Ïîòî÷íà çàïèñü ³ âñ³ çâÿçàí³ ç íåþ çàïèñè áóäóòü âèäàëåí³.' +#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; end. // UNIT IN_BOOK unit In_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; procedure Button_CloseClick(Sender: TObject); procedure Button_AddClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_In_Book: TForm_In_Book; implementation uses Books; {$R *.DFM} procedure fill_result_data; begin with Form_In_Book do begin Edit_Name.Text:='(íàïð. Êðîñ³âêè)'; Edit_Author.Text:='(íàïð. Puma)'; Edit_Publisher.Text:='(íàïð. Fleynar Max)'; Edit_Year.Text:='2020'; Edit_Circuation.Text:='0'; Edit_Knowledge.Text:='(íàïð. 31 àáî Ì)'; Edit_Cost.Text:='0'; end; end; procedure TForm_In_Book.Button_CloseClick(Sender: TObject); begin close; end; procedure TForm_In_Book.Button_AddClick(Sender: TObject); begin Form_Books.Table_Books.Last; try 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; procedure TForm_In_Book.FormCreate(Sender: TObject); begin fill_result_data; end; end. // UNIT IN_PRESENCE unit In_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; procedure Button_CloseClick(Sender: TObject); procedure Button_AddClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_In_Presence: TForm_In_Presence; implementation uses Presences; {$R *.DFM} procedure fill_result_data; begin with Form_In_Presence do begin Edit_Pack_Amount.Text:='0'; Edit_Item_Amount.Text:='0'; end; end; procedure TForm_In_Presence.Button_CloseClick(Sender: TObject); begin close; end; procedure TForm_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; procedure TForm_In_Presence.FormCreate(Sender: TObject); begin fill_result_data; end; end. // UNIT IN_SALE unit In_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; procedure Button_CloseClick(Sender: TObject); procedure Button_AddClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_In_Sale: TForm_In_Sale; implementation uses Sales; {$R *.DFM} procedure fill_result_data; begin with Form_In_Sale do begin Edit_Date.Text:='01.01.01'; Edit_Cost.Text:='0'; Edit_Amount.Text:='0'; end; end; procedure TForm_In_Sale.Button_CloseClick(Sender: TObject); begin close; end; procedure TForm_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; procedure TForm_In_Sale.FormCreate(Sender: TObject); begin fill_result_data; end; end. // UNIT WARHOUSE unit In_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; procedure Button_CloseClick(Sender: TObject); procedure Button_AddClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_In_Warhouse: TForm_In_Warhouse; implementation uses Warhouses; {$R *.DFM} procedure fill_result_data; begin with Form_In_Warhouse do begin Edit_Name.Text:='²ìÿ'; Edit_Address.Text:='Àäðåñ'; Edit_Phone.Text:='000-00-00'; Edit_Manager.Text:='Ìåíåäæåð'; end; end; procedure TForm_In_Warhouse.Button_CloseClick(Sender: TObject); begin close; end; procedure TForm_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; procedure TForm_In_Warhouse.FormCreate(Sender: TObject); begin fill_result_data; end; end. // UNIT PRESENCE 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; procedure Button_CloseClick(Sender: TObject); procedure Table_PresencesBeforeDelete(DataSet: TDataSet); private { Private declarations } public { Public declarations } end; var Form_Presences: TForm_Presences; implementation {$R *.DFM} procedure TForm_Presences.Button_CloseClick(Sender: TObject); begin Close; end; procedure TForm_Presences.Table_PresencesBeforeDelete(DataSet: TDataSet); begin if MessageDlg('Ïîòî÷íà çàïèñü ³ âñ³ çâÿçàí³ ç íåþ çàïèñè áóäóòü âèäàëåí³.' +#13+'Ïðîäîâæèòè?', mtConfirmation,[mbOK,mbCancel],0)=mrCancel then begin Abort; end; end; end. // UNIT QAUTHOR unit QAuthor; 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; procedure Button_CloseClick(Sender: TObject); procedure Button_ExecuteClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_QAuthor: TForm_QAuthor; implementation {$R *.DFM} procedure TForm_QAuthor.Button_CloseClick(Sender: TObject); begin close; end; procedure TForm_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. // UNIT SQL_QUERY unit SQL_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; procedure Button_ExecuteClick(Sender: TObject); procedure Button_ClearClick(Sender: TObject); procedure Button_CloseClick(Sender: TObject); procedure Button_LoadClick(Sender: TObject); procedure Button_SaveClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form_SQL_Query: TForm_SQL_Query; implementation {$R *.DFM} procedure TForm_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; procedure TForm_SQL_Query.Button_ClearClick(Sender: TObject); begin Form_SQL_Query.Memo1.Lines.Clear; end; procedure TForm_SQL_Query.Button_CloseClick(Sender: TObject); begin close; end; procedure TForm_SQL_Query.Button_LoadClick(Sender: TObject); begin if OpenDialog1.Execute then begin Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end; end; procedure TForm_SQL_Query.Button_SaveClick(Sender: TObject); begin if SaveDialog1.Execute then begin Memo1.Lines.SaveToFile(ChangeFileExt(SaveDialog1.FileName,'.sql')); end; end; end. |