Смекни!
smekni.com

Разработка системы автоматизированного учета для багетной мастерской (стр. 25 из 27)

'Where Id_Komplekt_slave =: Id_Komplekt_slave');

end;

procedure TMainForm. ActSkladRaznoeExecute (Sender: TObject);

begin

CreateAllSkladKomplektForm ('Склад - Разное', DM1. DSSklad_Raznoe, Dm1. DSVspomog, DM1. DSMaterRaznoe, 'Select * From Masterskaya_Raznoe_Table ' +

'Where Id_Komplekt_slave =: Id_Komplekt_slave');

end;

procedure TMainForm. ActSkladBagetsExecute (Sender: TObject);

begin

CreateAllSkladKomplektForm ('Склад - Багеты', DM1. DSSklad_Bagets, Dm1. DSVspomog, DM1. DSMaterBagets, 'Select * From Masterskaya_Bagets_Table ' +

'Where Id_Komplekt_slave =: Id_Komplekt_slave');

end;

procedure TMainForm. ExitActExecute (Sender: TObject);

begin

Close;

end;

// нажатие кнопки в поле ввода "Итого с работой"

procedure TMainForm. DBEditItogSRabotoiKeyPress (Sender: TObject;

var Key: Char);

begin

// допускаем ввод только положительных чисел

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "Итого без работы"

procedure TMainForm. DBEditItogBezRabotiKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "Итоговая скидка"

procedure TMainForm. DBEditItog_ScidkaKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "Итого к оплате"

procedure TMainForm. DBEditItogoKOplateKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// происходит при показе формы

procedure TMainForm. FormShow (Sender: TObject);

begin

// MainForm. Visible: =true;

// AnimateWindow (Handle, 800, AW_CENTER or AW_SLIDE);

// MainForm. Refresh;

MainForm. SetFocus;

DBGridMain. DataSource. DataSet. DisableControls; // отключить связанные с набором данных контролы

DBGridMain. DataSource. DataSet. Refresh; // обновить

DBGridMain. DataSource. DataSet. EnableControls;

// проверить состояние, вкл. или выкл. нужные кнопки

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

//

if (Act_Zak_Edit. Enabled=False) and (Act_Zak_Del. Enabled=False)

then

begin

BitSave. Enabled: =False;

BitCan. Enabled: =False;

BitDel. Enabled: =False;

BitEdit. Enabled: =False;

end;

if (Act_Zak_Save. Enabled=False) and (Act_Zak_Cancel. Enabled=False)

then

begin

BitSave. Enabled: =False;

BitCan. Enabled: =False;

end;

//

//

if (Act_Izd_Edit. Enabled=False) and (Act_Izd_Del. Enabled=False)

then

begin

BitIzd_Save. Enabled: =False;

BitIzd_Can. Enabled: =False;

BitIzd_Del. Enabled: =False;

BitIzd_Edit. Enabled: =False;

end;

if (Act_Izd_Save. Enabled=False) and (Act_Izd_Cancel. Enabled=False)

then

begin

BitIzd_Save. Enabled: =False;

BitIzd_Can. Enabled: =False;

end;

//

end;

// происходит при выходе из поля ввода "Дата приёма"

procedure TMainForm. DBEditDataPriemaExit (Sender: TObject);

Var

MyDate: TDate;

MyStr: string;

begin

MyDate: =Date (); // инициализируем

Try

MyStr: =TDBEdit (Sender). text;

MyDate: =StrToDate (MyStr);

Except

on EConvertError do // если ошибка преобразования строки в дату

Application. MessageBox ('Введите корректную дату! ',

'Неправильная дата', MB_OK + MB_ICONASTERISK);

End;

// следующине три строки внесены в код для того, чтобы компилятор дельфи не выдавал предупреждений.

// Не влияют на ход программы

If MyDate = Date ()

Then

Exit;

end;

// происходит при выходе из поля ввода "Дата окончания"

procedure TMainForm. DBEditDataOkonchExit (Sender: TObject);

Var

MyDate: TDate;

MyStr: string;

begin

MyDate: =Date ();

Try

MyStr: =TDBEdit (Sender). text;

MyDate: =StrToDate (MyStr);

Except

on EConvertError do

Application. MessageBox ('Введите корректную дату! ',

'Неправильная дата', MB_OK + MB_ICONASTERISK);

End;

If MyDate = Date ()

Then

Exit;

end;

// нажатие кнопки в поле ввода "дополн. работа"

procedure TMainForm. DBEditDopRabotaKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "Итого за материал"

procedure TMainForm. DBEditItogoMaterialKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "Итого за обработку"

procedure TMainForm. DBEditItogoObrabotkaKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "Итого за изделие"

procedure TMainForm. DBEditItogoProduktKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "высота изделия"

procedure TMainForm. DBEditVisota_productKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// нажатие кнопки в поле ввода "ширина изделия"

procedure TMainForm. DBEditShirina_productKeyPress (Sender: TObject;

var Key: Char);

begin

DM1. CheckNumericKeyPress (Sender, Key);

end;

// Кнопка "Сортировка по возрастанию"

procedure TMainForm. BBSortASCClick (Sender: TObject);

Var

MyADOQuery: TADOQuery;

begin

MyADOQuery: =TADOQuery (DBGridMain. DataSource. DataSet);

MyADOQuery. DisableControls;

MyADOQuery. close;

MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =''; // очищаем последнюю строку запроса

// в зависимости от выбранного переключателя делаем

case RadioGroup1. ItemIndex of

0: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY NomerZakaza';

1: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY NaimZakaz';

2: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY DataPriema';

3: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY DataOkonch';

4: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY ItogoKOplate';

end;

MyADOQuery. Open;

MyADOQuery. EnableControls;

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

end;

// Кнопка "Сортировка по убыванию"

procedure TMainForm. BBSortDESCClick (Sender: TObject);

Var

MyADOQuery: TADOQuery;

begin

MyADOQuery: =TADOQuery (DBGridMain. DataSource. DataSet);

MyADOQuery. DisableControls;

MyADOQuery. close;

MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: ='';

case RadioGroup1. ItemIndex of

0: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY NomerZakaza DESC';

1: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY NaimZakaz DESC';

2: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY DataPriema DESC';

3: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY DataOkonch DESC';

4: MyADOQuery. SQL. Strings [MyADOQuery. SQL. Count-1]: =' ORDER BY ItogoKOplate DESC';

end;

MyADOQuery. Open;

MyADOQuery. EnableControls;

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

end;

// Кнопка "определить состав изделия"

procedure TMainForm. ButtonSostavClick (Sender: TObject);

Var

MySostavProductForm: TSostavProductForm;

begin

MySostavProductForm: =TSostavProductForm. Create (Owner);

MySostavProductForm. ShowModal;

MySostavProductForm. Free;

end;

// щелчок по навигатору для заказов

procedure TMainForm. DBNavigatorMainClick (Sender: TObject;

Button: TNavigateBtn);

begin

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

//

if (Act_Izd_Edit. Enabled=False) and (Act_Izd_Del. Enabled=False)

then

begin

{BitIzd_Add. Enabled: =True;

BitIzd_Save. Enabled: =False;

BitIzd_Can. Enabled: =False; }

BitIzd_Del. Enabled: =false;

BitIzd_Edit. Enabled: =false;

end;

//

if (Act_Izd_Edit. Enabled=true) and (Act_Izd_Del. Enabled=true)

then

begin

{BitIzd_Add. Enabled: =True;

BitIzd_Save. Enabled: =False;

BitIzd_Can. Enabled: =False; }

BitIzd_Del. Enabled: =true;

BitIzd_Edit. Enabled: =true;

end;

//

end;

// происходит при запросе на закрытие формы

procedure TMainForm. FormCloseQuery (Sender: TObject; var CanClose: Boolean);

begin

If Application. MessageBox ('Вы уверены, что хотите выйти? ', 'Выход из программы', MB_YESNO + MB_ICONINFORMATION) = IDYES

Then

// если набор данных в режиме просмотра

If (DBGridMain. DataSource. State = dsBrowse) and (DBGridSlave. DataSource. State = dsBrowse)

Then

Begin

CanClose: =True;

End

Else

Begin

CanClose: =False;

Application. MessageBox ('Нельзя закрыть окно, т.к данные в режиме редактирования! ', 'Закрытие окна', MB_OK + MB_ICONERROR);

End

Else

CanClose: =False;

end;

procedure TMainForm. BitBtn1Click (Sender: TObject);

begin

Close;

end;

procedure TMainForm. ActPrintOptionExecute (Sender: TObject);

begin

PrinterSetupDialog1. Execute; // настройка параметров принтера

end;

procedure TMainForm. ActPrintExecute (Sender: TObject);

begin

PrintZakazForm. QuickRep1. ReportTitle: ='Заказ №: ' + DBEditNomerZakaza. Text;

PrintZakazForm. QuickRep1. PreviewModal; // распечатка заказа

end;

// редактирование заказа

procedure TMainForm. Act_Zak_EditExecute (Sender: TObject);

begin

If DBGridMain. DataSource. DataSet. CanModify // если данные можно изменять

Then DBGridMain. DataSource. DataSet. Edit

Else Application. MessageBox ('Данные нельзя модифицировать! ', 'Модификация данных', MB_OK + MB_ICONINFORMATION);

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

//

if (Act_Zak_Edit. Enabled=False) and (Act_Zak_Add. Enabled=False) and (Act_Zak_Del. Enabled=False)

then

begin

BitAdd. Enabled: =false;

BitSave. Enabled: =true;

BitCan. Enabled: =true;

BitDel. Enabled: =false;

BitEdit. Enabled: =false;

end;

//

DBEditNomerZakaza. SetFocus;

end;

// удаление заказа

procedure TMainForm. Act_Zak_DelExecute (Sender: TObject);

begin

If Application. MessageBox ('Удалить заказ со всеми изделиями? ', 'Удаление записи', MB_YESNO + MB_ICONINFORMATION) = IDYES

Then

Begin

DBGridMain. DataSource. DataSet. DisableControls;

DBGridSlave. DataSource. DataSet. DisableControls;

DBGridMain. DataSource. DataSet. Delete; // удалить текущий заказ

DBGridMain. DataSource. DataSet. EnableControls;

DBGridSlave. DataSource. DataSet. EnableControls;

End;

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

//

if (Act_Zak_Edit. Enabled=False) and (Act_Zak_Del. Enabled=False) and (Act_Zak_Save. Enabled=False) and (Act_Zak_Cancel. Enabled=False)

then

begin

BitAdd. Enabled: =True;

BitSave. Enabled: =False;

BitCan. Enabled: =False;

BitDel. Enabled: =False;

BitEdit. Enabled: =False;

end;

//

end;

// сохранить заказ

procedure TMainForm. Act_Zak_SaveExecute (Sender: TObject);

begin

If (DBEditNomerZakaza. Text = '') or (DBEditNaimZakaz. Text = '') or (DBEditDataPriema. Text = '') or (DBEditVremyaPriema. Text = '') or

(DBEditDataOkonch. Text = '') or (DBEditVremyaOkonch. Text = '') or (DBLCBLName_Client. Text = '') or

(DBEditItogSRabotoi. Text = '') or (DBEditItogBezRaboti. Text = '') or (DBEditItog_Scidka. Text = '') or

(DBEditItogoKOplate. Text = '')

Then

Begin

Application. MessageBox ('Вы незаполнили некоторые поля! Заполните, пож-та, все поля! ', 'Незаполненные поля', MB_OK + MB_ICONASTERISK);

DBEditNomerZakaza. SetFocus;

Exit

End;

If DBGridMain. DataSource. DataSet. Modified // если данные были изменены

or (DBEditNomerZakaza. Modified) or (DBEditNaimZakaz. Modified) or (DBEditDataPriema. Modified) or (DBEditVremyaPriema. Modified) or

(DBEditDataOkonch. Modified) or (DBEditVremyaOkonch. Modified) or

(DBEditItogSRabotoi. Modified) or (DBEditItogBezRaboti. Modified) or (DBEditItog_Scidka. Modified) or

(DBEditItogoKOplate. Modified)

Then DBGridMain. DataSource. DataSet. Post; // сохранить данные

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);

DM1. CheckActionState (DBGridSlave. DataSource, Act_Izd_Add, Act_Izd_Edit, Act_Izd_Del, Act_Izd_Save, Act_Izd_Cancel, DBGridSlave, DBNavigatorSlave);

BitIzd_Add. Enabled: =true;

//

if (Act_Zak_Save. Enabled=False) and (Act_Zak_Cancel. Enabled=False)

then

begin

BitAdd. Enabled: =True;

BitSave. Enabled: =False;

BitCan. Enabled: =False;

BitDel. Enabled: =true;

BitEdit. Enabled: =true;

end;

//

end;

// отмена изменений в заказе

procedure TMainForm. Act_Zak_CancelExecute (Sender: TObject);

begin

DBGridMain. DataSource. DataSet. Cancel;

DM1. CheckActionState (DBGridMain. DataSource, Act_Zak_Add, Act_Zak_Edit, Act_Zak_Del, Act_Zak_Save, Act_Zak_Cancel, DBGridMain, DBNavigatorMain);