'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);