Структура програмного продукту

Структура даного програмного продукту, є наступною:

v Головне вікно програми (fmMain) – на ньому розміщено головне меню з такими пунктами: Перегляд, Редагування, Поставки, Вікно та Про програму.

v Вікно редагування (fmDBForm) – забезпечує редагування записів в базі даних auto.

v Вікно перегляду (fmDBTable) – вікно, в якому відображаються всі дані занесені до таблиць бази даних

v Перегляд зв’язаних таблиць (fmDBMasterDetail) – дає можливість користувачу заносити дані до таблиць що зв’язані зв’язком один-до-багатьох.

v Про програму (fmAbout) – містить відомості про автора.

 


7.3. Розробка алгоритму

 

В процесі створення програмного продукту було створено головне вікно програми (fmMain) – на ньому розміщено головне меню, компонент ActionList1 та MainMenu1 з такими пунктами: Перегляд, Редагування, Поставки, Вікно та Про програму.

Форма fmAny – родоначальник усієї ієрархії форм проекту. Розмістимо на формі компоненти Panel1-3 та BitBtn1-2 і встановимо для їх властивостей значення. Panel1: Align -> alTop; Panel2: Align -> alClient; Panel 3: Align -> alBottom, BitBtn: Kind -> bkOk, Anchors -> akRight, BitBtn: Kind -> bkCansel, Anchors -> akRight. В код форми нічого не записуватимемо.

Форму fmAny зберігаємо в репозиторії: Project-> Add to Repository.

fmDBForm ­– форма, від якої будуть успадковуватись всі форми, які реалізують опрацювання таблиць бази даних в режимі “форма”. Створимо дану форму виконуючи наступне: File -> New -> Other -> Forms -> fmAny, встановимо перемикач Inherited та натиснемо OK. Перейменуємо нову форму в fmDBForm. На формі додамо компонент DataSource1, Navigator1, Label1-2, Button2.

procedure TfmQForm.BitBtn1Click(Sender: TObject);

begin

if Query1.State in [dsEdit, dsInsert] then

Query1.Post;

inherited;

end;

 

procedure TfmQForm.BitBtn2Click(Sender: TObject);

begin

if Query1.State in [dsEdit, dsInsert] then

Query1.Cancel;

inherited;

end;

 

procedure TfmQForm.FormCreate(Sender: TObject);

begin

inherited;

Query1.Open;

end;

 

procedure TfmQForm.FormActivate(Sender: TObject);

begin

inherited;

DataSource1DataChange(Self, Query1.Fields[0]);

end;

 

procedure TfmQForm.DataSource1DataChange(Sender: TObject; Field: TField);

begin

inherited;

case Query1.State of

 

dsEdit : Label1.Caption := 'Ðåäàãóâàííÿ';

dsInsert: Label1.Caption := 'Âñòàâêà';

dsBrowse: Label1.Caption := 'Ïåðåãëÿä';

end;

case Query1.State of

dsEdit, dsBrowse:

Label2.Caption := 'Çàïèñ '+IntToStr(Query1.RecNo)

+' ³ç '+IntToStr(Query1.RecordCount);

dsInsert:

Label2.Caption := 'Íîâèé çàïèñ';

end;

Після завершення розробки форми fmDBForm її необхідно зберегти в репозиторії.

Форма fmDBTable – похідна від форми fmDBForm, від неї будуть успадковуватись всі форми, які реалізують опрацювання таблиць бази даних в режимі “таблиця”. Для створення нової форми потрібно виконати команди: File -> New -> Other -> Forms -> fmDBForm. Встановимо перемикач Inherited та натиснемо OK. Перейменуємо нову форму в fmDBTable.

Фрагмент коду для виводу звіту на друк з допомогою програми Excel

 

procedure TfmDBForm.Button2Click(Sender: TObject);

var

X: Variant;

i, j: integer;

begin

inherited;

// Створення Ole об’єкту Excel.Application ---

X := CreateOLEObject('Excel.Application');

try

// Робимо Ole об’єкт видимим, створюємо нову робочу книгу ---

X.Visible := true;

X.Workbooks.Add;

// ---

// Створення заголовку таблиці ---

for i := 0 to (DataSource1.DataSet).FieldCount - 1 do begin

X.WorkBooks[1].ActiveSheet.Cells[1, 1 + i].Value :=

(DataSource1.DataSet).Fields[i].DisplayLabel;

X.WorkBooks[1].ActiveSheet.Cells[1, 1 + i].Font.Bold := true;

X.WorkBooks[1].ActiveSheet.Cells[1, 1 + i].Interior.ColorIndex := 10;

end;

// ---

// Передача даних з таблиці ---

(DataSource1.DataSet).First;

for i := 0 to (DataSource1.DataSet).RecordCount - 1 do begin

for j := 0 to (DataSource1.DataSet).FieldCount - 1 do begin

X.WorkBooks[1].ActiveSheet.Cells[2 + i,1 + j].Value :=

(DataSource1.DataSet).Fields[j].AsString;

end;

(DataSource1.DataSet).Next;

 

end;

// Автовирівнювання стовпців ---

for j := 0 to (DataSource1.DataSet).FieldCount - 1 do

X.WorkBooks[1].ActiveSheet.Columns[1+j].EntireColumn.AutoFit;

// ---

// Присвоєння назви листа ---

X.WorkBooks[1].ActiveSheet.Name := (DataSource1.DataSet as TQuery).DatabaseName;

// Збереження робочої книги ---

// X.WorkBooks[1].SaveAs(SaveDialog1.FileName);

finally

{X.Quit;}

Screen.Cursor := crDefault;

end;

end;

fmDBMasterDetail ­­– похідна від форми fmDBForm, вона призначена бути предком форм, які реалізують опрацювання деяких двох зв’язаних таблиць бази даних в режимі „головна-підлегла таблиці”. Для створення нової форми, породженої формою fmDBForm, потрібно виконати команди: File -> New -> Other -> Forms -> fmDBForm. Встановимо перемикач Inherited та натиснемо OK. Перейменуємо нову форму в fmDBMasterDetail.


Розробка програми

Безпосередньо перед тим, як приступити до розробки програми, необхідно створити саму базу даних автозапчастин. Запускаємо програму Database Desktop. Після старту програми вибираємо команду меню File → New → Table для створення нової таблиці. Перед нами з’явилося діалогове вікно Create Table вибору типу таблиці. Вибираємо запропонований нам за замовчуванням формат Paradox 7. Після вибору типу таблиці появиться діалогове вікно, специфічне для кожного формату, в якому нам необхідно задати поля таблиці і їх тип.

Для таблиці Деталі задаємо наступні значення:

Рис. 7.4.1 Таблиця Деталі

Таблиця Поставки

Рис. 7.4.2 Таблиця Поставки

 

Таблиця Виробники

Рис. 7.4.3 Таблиця Виробники

Таблиця Проекти

Рис. 7.4.4 Таблиця Проекти

В кінцевому результаті ми одержимо структури таблиць збережені до спеціально створеного каталогу бази даних. Після створення таблиць бази даних необхідно створити аліас. Запускаємо програму SQL Explorer і створюємо нову базу даних. Для цього виконаємо команду Object → New, після чого в діалоговому вікні вибору драйвера вказуємо значення STANDART. Після натискування кнопки Ok в списку з’являється новий елемент, помічений зеленим трикутником. Це означає, що реєстрація бази даних не завершена. За замовчуванням формується ім’я бази STANDART1, змінимо його на ім’я auto. Переконаймося, що у властивості DEFAULT DRIVER (Драйвер за замовчуванням) стоїть значення PARADOX. У властивості PATH (Шлях пошуку для каталога, в якому зберігаються таблиці) вказуємо наш робочий каталог.

Тепер зареєстровану в системі BDE базу даних необхідно зберегти. Для цього в контекстному меню об’єкта Постачальники вибираємо пункт Apply (Примінити настройки). На запитання про необхідність збереження змін даємо відповідь Yes. Якщо розкрити об’єкт auto, клацнувши по значку “+” перед його іменем, на правій панелі SQL Explorer будуть показані всі три таблиці створеної нами бази даних, а значок бази помічається зеленою рамкою, що вказує, що база даних auto відкрита. Після вивчення структури базу даних потрібно закрити за допомогою команди Close контекстного меню. Виділення об’єкту буде знято. Тепер можна закрити вікно SQL Explorer і вернутися в середовище Delphi.

Запускаємо програму Database Desktop. За допомогою команди File → Open → Table почергово відкриваємо всі три створені нами таблиці. Отже, у нас уже є створена база даних і аліас, та введені деякі дані. Тепер необхідно створити модуль даних.

Запускаємо програму Borland Delphi. Створюємо новий проект і додаємо до нього модуль даних командою File → New → Data Module. На панелі модуля розміщуємо компоненти, що забезпечать доступ до потрібних нам трьох таблиць бази даних auto. Для цього вибираємо чотири компоненти TТable та чотири компоненти TDataSource.

Налаштовуємо компоненти TTable. Для цього властивості DataBaseName присвоїмо з випадаючого списку псевдонім auto. Після цього властивості TableName присвоїмо ім’я відповідної таблиці бази даних із списку. Для активізації таблиць встановлюємо властивість Active в True.

Налаштовуємо компоненти TDataSource. Для цього властивість DataSet зв’язуємо з відповідною таблицею.

Зберігаємо готовий модуль даних в Object Repository. Для цього клацаємо правою кнопкою миші на модулі даних і вибираємо Add to Repository (Додати до сховища). В полі Title (Назва) набираємо dmPost. В полі Description (Опис) – форма модуля даних для бази даних auto. Вибираємо Data Module із списку Pages і натискаємо Ok. Тепер наш модуль буде зберігатися в репозиторії на вкладинці Data Modules під іменем dmKyrsova і його можна буде викликати з своїх проектів.

Отже, база даних і модуль ми уже створили, тепер переходимо до створення основної програми, з якою буде працювати користувач.

Запускаємо програму Borland Delphi. Створюємо новий проект. За допомогою команди File → New → Other → DataModule → dmauto додаємо до форми проекту створений нами модуль даних (при параметрі Use). В розділі Uses головної форми додаємо назву модуля даних, щоб він став доступним.

Розміщуємо на формі по три компоненти TDBGrid та TDBNavigator, які знаходяться на сторінці Data Controls. За допомогою властивості DataSource налаштовуємо ці компоненти на перегляд таблиць Обладнання, Відділ, Тип обладнання. Для цього необхідно вибрати із випадаючого списку рядок DataModule2.DataSource1, DataModule2.DataSource2, DataModule2.DataSource3, DataModule2.DataSource4. Запускаємо проект на виконання, для перевірки перегляду, введення, редагування та видалення користувачем записів таблиць бази даних.

За конфігурацію набору кнопок навігатора відповідає властивість VisibleButton. Присвоюючи окремим кнопкам значення True чи False ми тим самим додаємо або забираємо їх із стандартного набору.

Щоб змінити англійські назви полів в таблиці в модулі даних нашого проекту виділяємо елемент Table першої таблиці. Натискаємо на ньому правою кнопкою миші і вибираємо команду Fields Editor. У вікні редактора, що відкриється, натискаємо праву кнопку миші і вибираємо команду Add All Fields, після чого всі поля таблиці стануть статичними. Використовуючи інспектор об’єктів присвоюємо властивостям Display Label об’єктів Field українські назви полів. Задаємо властивості Visible значення False для полів, яких ми не хочемо висвітлювати.

Виконаємо вказані операції для всіх таблиць бази даних і переглядаємо їх вміст через відповідне використання елементів відображення.

Обробляємо подію TfmDBTableD.Button1Click для таблиці Деталі, щоб відфільтрувати всі записи таблиці за заданими значеннями Назва Деталі:

procedure TfmDBTableD.Button1Click(Sender: TObject);

begin

inherited;

Table1.Filtered := False;

Table1.Filter := 'DNazva = ''' + Edit1.Text+ '''';

Table1.Filtered := True;

end;

Аналогічним чином виконаємо фільтрування і в інших полях таблиць даних бази даних.

 


7.5. Інструкція користувачу

Для того щоб розпочати введення або редагування даних потрібно вибрати пункт головного меню Редагувати, яка переведе форму в режим редагування.

 

Рис. 7.5.1 Таблиця Виробники в режимі редагування

 

* Щоб додати новий рядок натисніть кнопку " додати запис (+) " ;

* Щоб видалити рядок натисніть кнопку " видалити запис (-) ", а потім підтвердіть або скасуйте видалення ;

* Щоб редагувати записи натисніть кнопку " редагувати записи " або двічі клацніть лівою клавішею миші по потрібному полю ;

* Якщо Ви хочете зберегти зміни натисніть кнопку " зберегти зміни ", якщо ні - "відмінити зміни" ;

* Для обновлення даних натисніть кнопку " обновити " ;

 
 

 


Для користування фільтром необхідно вибрати таблиці в режимі перегляду, пункт Перегляд та вказати пошукове значення у відповідному рядку. Щоб відмінити дію фільтру необхідно натиснути на кнопці Скинути фільтр.

Рис. 7.5.2 Таблиця Виробники в режимі перегляду

 

В результаті такого вибору будуть доступні поля по яким може проводитися фільтрування.


7.6. Результати тестування

 

Програма працює в середовищі Windows. Програма протестована на комп’ютері з такою конфігурацією:

Процесор – Intel Pentium M 1,7 ГГц ; ОЗП – 512 Мб ; Жорсткий диск – 80 Гб ; Відеоадаптер – Intel 915 GL ;

Мінімальні системні вимоги данної програми:

Процесор – 400 МГц; ОЗП – 64 Мб ;

Всі функції програми, а саме: пошук, добавлення нових записів в таблицю, редагування записів і їх видалення працюють.


Висновок

Практика підтвердила вміння володіти навиками роботи з комп’ютером, вміння складати програми дала можливість не тільки розв’язувати поставлену задачу, але й показати розуміння, і вміння чітко і лаконічно формулювати свої думки, правильно ставити задачу і знаходити оптимальні шляхи її рішення, швидко орієнтуватися в потоці інформації, звично звертатися до літературних джерел для знаходження оптимального варіанту вирішення задачі.

Для виконання поставленої задачі було створена програма яка виконує поставлену задачу по керуванні базою даних обладнання організації. Вона проста і зручна в експлуатації. Дану програму можна застосовувати в різних магазинах по виготовлення та збуту автозапчастин.


Список використаної літератури

 
 


1. Архангельський А. Я. Інтегрованная среда разработки Delphi – М.:ЗАО, Біном; 1999.

2. А. Федоров. Delphi2 для всех. 2-е издание. Компьютер-Пресс, 1997. - 464 с.

3. Нейл Рубенкинг. Программирование в Delphi для “чайников”. - 2-е издание. Диалектика, 1997. - 368 с.

4. Лей Лишнер. Секреты Delphi. Диасофт, 1996. - 600 с.

5. Мазке Кенту для професіоналів Delphi 6: видавництво Пітер, 2002.

6. Том Сван. Секреты 32-разрядного программирования на Delphi. Диалектика, 1997. - 480 с.

7. Довідкова система Delphi 7.0 Help.


Лістинг програми

unit uMain;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdActns, ActnList, ImgList;

 

type

TfmMain = class(TForm)

MainMenu1: TMainMenu;

Edit1: TMenuItem;

File1: TMenuItem;

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;

ActionList1: TActionList;

ImageList1: TImageList;

WindowClose1: TWindowClose;

WindowCascade1: TWindowCascade;

WindowTileHorizontal1: TWindowTileHorizontal;

WindowTileVertical1: TWindowTileVertical;

WindowMinimizeAll1: TWindowMinimizeAll;

WindowArrange1: TWindowArrange;

Cascade1: TMenuItem;

MinimizeAll1: TMenuItem;

ileHorizontally1: TMenuItem;

ileVertically1: TMenuItem;

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N16Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmMain: TfmMain;

 

implementation

 

uses uDBTableV, uDBTableD, uDBTableP, uDBFormD, uDBFormP, uDBFormV,

uMasterDetailV, uMasterDetailDetali, uDBFormPostavky, uDBTablePostavky,

fmAbout;

 

{$R *.dfm}

 

procedure TfmMain.N1Click(Sender: TObject);

begin

fmDBFormV := TfmDBFormV.Create( Application );

fmDBFormV.Show;

// fmDBFormV.Free; fmDBFormV := nil;

end;

 

procedure TfmMain.N2Click(Sender: TObject);

begin

fmDBFormD := TfmDBFormD.Create( Application );

fmDBFormD.Show;

// fmDBFormD.Free; fmDBFormD := nil;

end;

 

procedure TfmMain.N3Click(Sender: TObject);

begin

fmDBFormP := TfmDBFormP.Create( Application );

fmDBFormP.Show;

// fmDBFormP.Free; fmDBFormP := nil;

end;

 

procedure TfmMain.N5Click(Sender: TObject);

begin

fmDBTableV := TfmDBTableV.Create( Application );

fmDBTableV.Show;

// fmDBTableV.Free; fmDBTableV := nil;

end;

 

procedure TfmMain.N6Click(Sender: TObject);

begin

fmDBTableD := TfmDBTableD.Create( Application );

fmDBTableD.Show;

// fmDBTableD.Free; fmDBTableD := nil;

end;

 

procedure TfmMain.N7Click(Sender: TObject);

begin

fmDBTableP := TfmDBTableP.Create( Application );

fmDBTableP.Show;

// fmDBTableP.Free; fmDBTableP := nil;

end;

 

procedure TfmMain.N13Click(Sender: TObject);

begin

fmDBMasterDetailV := TfmDBMasterDetailV.Create( Application );

fmDBMasterDetailV.Show;

// fmDBMasterDetailV.Free; fmDBMasterDetailV := nil;

end;

 

procedure TfmMain.N14Click(Sender: TObject);

begin

fmDBMasterDetailDetali := TfmDBMasterDetailDetali.Create( Application );

fmDBMasterDetailDetali.Show;

// fmDBMasterDetailDetali.Free; fmDBMasterDetailDetali := nil;

end;

 

procedure TfmMain.N9Click(Sender: TObject);

begin

fmDBFormPostavky := TfmDBFormPostavky.Create( Application );

fmDBFormPostavky.Show;

// fmDBFormPostavky.Free; fmDBFormPostavky := nil;

end;

 

procedure TfmMain.N11Click(Sender: TObject);

begin

fmDBTablePostavky := TfmDBTablePostavky.Create( Application );

fmDBTablePostavky.Show;

// fmDBTablePostavky.Free; fmDBTablePostavky := nil;

end;

 

procedure TfmMain.N16Click(Sender: TObject);

begin

About := TAbout.Create( Application );

About.Show;

end;

 

end.

 

unit uDBTableD;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, uDBTable, DB, DBTables, DBCtrls, StdCtrls, Buttons, Grids,

DBGrids, ExtCtrls, jpeg;

 

type

TfmDBTableD = class(TfmDBTable)

Table1DNo: TStringField;

Table1DNazva: TStringField;

Table1Kolir: TStringField;

Table1Vaga: TSmallintField;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmDBTableD: TfmDBTableD;

 

implementation

 

{$R *.dfm}

 

procedure TfmDBTableD.Button1Click(Sender: TObject);

begin

inherited;

Table1.Filtered := False;

Table1.Filter := 'DNazva = ''' + Edit1.Text+ '''';

Table1.Filtered := True;

end;

 

procedure TfmDBTableD.Button2Click(Sender: TObject);

begin

inherited;

Table1.Filtered := False;

Table1.Filter := 'Kolir = ''' + Edit2.Text+ '''';

Table1.Filtered := True;

end;

 

end.

 

unit uDBForm;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, uAny, DB, DBTables, DBCtrls, StdCtrls, Buttons, ExtCtrls, jpeg;

 

type

TfmDBForm = class(TfmAny)

DBNavigator1: TDBNavigator;

Table1: TTable;

DataSource1: TDataSource;

Label1: TLabel;

Label2: TLabel;

Image1: TImage;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure DataSource1DataChange(Sender: TObject; Field: TField);

procedure FormActivate(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmDBForm: TfmDBForm;

 

implementation

 

{$R *.dfm}

 

procedure TfmDBForm.BitBtn1Click(Sender: TObject);

begin

if Table1.State in [dsEdit, dsInsert] then

Table1.Post;

inherited;

end;

 

procedure TfmDBForm.BitBtn2Click(Sender: TObject);

begin

if Table1.State in [dsEdit, dsInsert] then

Table1.Cancel;

inherited;

end;

 

procedure TfmDBForm.DataSource1DataChange(Sender: TObject; Field: TField);

begin

inherited;

case Table1.State of

dsEdit : Label1.Caption := 'Ðåäàãóâàííÿ';

dsInsert: Label1.Caption := 'Âñòàâêà';

dsBrowse: Label1.Caption := 'Ïåðåãëÿä';

end;

case Table1.State of

dsEdit, dsBrowse:

Label2.Caption := 'Çàïèñ '+IntToStr(Table1.RecNo)

+' ³ç '+IntToStr(Table1.RecordCount);

dsInsert:

Label2.Caption := 'Íîâèé çàïèñ';

end;

end;

 

procedure TfmDBForm.FormActivate(Sender: TObject);

begin

inherited;

DataSource1DataChange(self, Table1.Fields[0]);

end;

 

procedure TfmDBForm.FormCreate(Sender: TObject);

begin

inherited;

Table1.Open;

end;

 

procedure TfmDBForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

inherited;

Table1.Close;

end;

 

end.

 

unit uMasterDetail;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, uDBForm, DB, DBTables, DBCtrls, StdCtrls, Buttons, ExtCtrls,

Grids, DBGrids, jpeg;

 

type

TfmDBMasterDetail = class(TfmDBForm)

DBGrid1: TDBGrid;

DataSource2: TDataSource;

Table2: TTable;

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

fmDBMasterDetail: TfmDBMasterDetail;

 

implementation

 

{$R *.dfm}

procedure TfmDBMasterDetail.FormCreate(Sender: TObject);

begin

inherited;

Table2.Open;

end;

procedure TfmDBMasterDetail.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

inherited;

Table2.Close;

end;

procedure TfmDBMasterDetail.DBGrid1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState);

begin

inherited;

if odd(table2.RecNo) then begin

with DBGrid1.Canvas do

begin

Brush.Color:=clGreen;

Font.Color:=clWhite;

FillRect(Rect);

TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);

end;

end;

end;

end.

 

unit uDBTablePostavky;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, uDBTable, DB, DBTables, DBCtrls, StdCtrls, Buttons, Grids,

DBGrids, ExtCtrls, jpeg;

 

type

TfmDBTablePostavky = class(TfmDBTable)

Table2: TTable;

Table3: TTable;

Table4: TTable;

Table1VNo: TStringField;

Table1DNo: TStringField;

Table1PNo: TStringField;

Table1Kilkist: TSmallintField;

Table1V: TStringField;

Table1D: TStringField;

Table1P: TStringField;

Table1Data: TDateField;

Table1Cina: TFloatField;

Table1Suma: TFloatField;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmDBTablePostavky: TfmDBTablePostavky;

implementation

{$R *.dfm}

procedure TfmDBTablePostavky.Button1Click(Sender: TObject);

begin

inherited;

Table1.Filtered := False;

Table1.Filter := 'V = ''' + Edit1.Text+ '''';

Table1.Filtered := True;

end;

 

procedure TfmDBTablePostavky.Button2Click(Sender: TObject);

begin

inherited;

Table1.Filtered := False;

Table1.Filter := 'D = ''' + Edit2.Text+ '''';

Table1.Filtered := True;

end;

end.