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

Программный комплекс "Багетная мастерская": назначение создания системы. Критерии эффективности функционирования системы. Структура информационных потоков и документооборота. Выбор языка программирования. Базовое и прикладное программное обеспечение.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 15.01.2010
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

dsSlave. DataSet. Close;

dsSlave. DataSet. Open;

MyMasterskaya_KomplektForm. myMaterial: =Material;

MyMasterskaya_KomplektForm. Caption: =sCaption;

MyMasterskaya_KomplektForm. ShowModal;

MyMasterskaya_KomplektForm. Free;

end;

procedure TMainForm. Act_Master_KomplektExecute (Sender: TObject);

begin

CreateAllMasterskayaKomplektForm ('Мастерская - Комплектующие', DM1. DSMasterskaya_Kompl, DM1. DSMaterKomlekt);

end;

procedure TMainForm. Act_Master_RaznoeExecute (Sender: TObject);

begin

CreateAllMasterskayaKomplektForm ('Мастерская - Разное', DM1. DSMasterskaya_Raznoe, DM1. DSMaterRaznoe);

end;

procedure TMainForm. Act_Master_BagetsExecute (Sender: TObject);

begin

CreateAllMasterskayaKomplektForm ('Мастерская - Багеты', DM1. DSMasterskaya_Bagets, DM1. DSMaterBagets);

end;

// процедура динамически создаёт форму для склада

// sCaption - заголовок окна, dsSlave - главный набор данных, Material - набор данных со всеми деталями

// Например, со всеми багетами или со всеми комплектующими

// dsVspomog - набор данных для раскрыв. списка наимен. комплект.

// MySqlZapros - SQL-запрос для dsVspomog

procedure TMainForm. CreateAllSkladKomplektForm (sCaption: String;

dsSlave, dsVspomog, Material: TDataSource; MySqlZapros: string);

Var

MySklad_KomplektForm: TSklad_KomplektForm;

begin

MySklad_KomplektForm: =TSklad_KomplektForm. Create (Owner);

MySklad_KomplektForm. DBGridSlave. DataSource: =dsSlave;

MySklad_KomplektForm. DBNavigatorSlave. DataSource: =dsSlave;

MySklad_KomplektForm. DBLComboBoxMaterKomplekt. DataSource: =dsSlave;

MySklad_KomplektForm. DBLComboBoxMaterKomplekt. DataField: ='LMaterKomplekt';

MySklad_KomplektForm. DBLComboBoxKomplekt. DataSource: =dsSlave;

MySklad_KomplektForm. DBLComboBoxKomplekt. DataField: ='LKomplekt';

MySklad_KomplektForm. DBEditNumberNakl. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditNumberNakl. DataField: ='Sklad_NumberNakl';

MySklad_KomplektForm. DBEditData. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditData. DataField: ='Sklad_Data';

MySklad_KomplektForm. DBEditZakupCena. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditZakupCena. DataField: ='Sklad_ZakupCena';

MySklad_KomplektForm. DBEditKolVo. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditKolVo. DataField: ='Sklad_Kol-vo';

MySklad_KomplektForm. DBEditRashod. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditRashod. DataField: ='Sklad_Rashod';

MySklad_KomplektForm. DBEditOstatok. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditOstatok. DataField: ='CMasterskaya_Ostatok';

MySklad_KomplektForm. DBEditPrim. DataSource: =dsSlave;

MySklad_KomplektForm. DBEditPrim. DataField: ='Sklad_Prim';

// обновим

dsSlave. DataSet. Close;

dsSlave. DataSet. Open;

MySklad_KomplektForm. myMaterial: =Material;

dsVspomog. DataSet. Close;

TADOQuery (dsVspomog. DataSet). SQL. Clear; // очищаем

TADOQuery (dsVspomog. DataSet). SQL. Add (MySqlZapros); // Добавляем текст запроса

TADOQuery (dsVspomog. DataSet). FieldByName ('LKomplekt'). LookupDataSet: =TADOQuery (dsSlave. DataSet). FieldByName ('LKomplekt'). LookupDataSet;

// устанавливаем параметры

TADOQuery (dsVspomog. DataSet). Parameters. ParamByName ('Id_Komplekt_slave'). DataType: =ftInteger;

TADOQuery (dsVspomog. DataSet). Parameters. ParamByName ('Id_Komplekt_slave'). Direction: =pdInput;

TADOQuery (dsVspomog. DataSet). Parameters. ParamByName ('Id_Komplekt_slave'). Value: =0;

dsVspomog. DataSet. Open;

MySklad_KomplektForm. DBEditKomplekt. DataSource: =dsVspomog;

MySklad_KomplektForm. DBEditKomplekt. DataField: ='LKomplekt';

MySklad_KomplektForm. DBEditVspomCena. DataSource: =dsVspomog;

MySklad_KomplektForm. DBEditVspomCena. DataField: ='Masterskaya_RoznCena';

MySklad_KomplektForm. DBEditVspomKolVo. DataSource: =dsVspomog;

MySklad_KomplektForm. DBEditVspomKolVo. DataField: ='Masterskaya_Kol-vo';

MySklad_KomplektForm. DBEditVspomRashod. DataSource: =dsVspomog;

MySklad_KomplektForm. DBEditVspomRashod. DataField: ='Masterskaya_Rashod';

MySklad_KomplektForm. DBEditVspomOstatok. DataSource: =dsVspomog;

MySklad_KomplektForm. DBEditVspomOstatok. DataField: ='CMasterskaya_Ostatok';

MySklad_KomplektForm. Caption: =sCaption;

MySklad_KomplektForm. ShowModal;

MySklad_KomplektForm. Free;

end;

procedure TMainForm. ActSkladKomplektExecute (Sender: TObject);

begin

CreateAllSkladKomplektForm ('Склад - Комплектующие', DM1. DSSklad_Kompl, Dm1. DSVspomog, DM1. DSMaterKomlekt, 'Select * From Masterskaya_Kompl_Table ' +

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

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_Edit. Enabled=False) and (Act_Zak_Del. Enabled=False)

then

begin

BitAdd. Enabled: =True;

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

BitAdd. Enabled: =True;

BitSave. Enabled: =False;

BitCan. Enabled: =False;

BitDel. Enabled: =true;

BitEdit. Enabled: =true;

end;

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

and

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

then

begin

BitAdd. Enabled: =True;

BitSave. Enabled: =False;

BitCan. Enabled: =False;

BitDel. Enabled: =false;

BitEdit. Enabled: =false;

end;

//

end;

// добавить изделие

procedure TMainForm. Act_Izd_AddExecute (Sender: TObject);

begin

If DBGridSlave. DataSource. DataSet. CanModify

Then DBGridSlave. DataSource. DataSet. Append

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

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

DBEditNomerProduct. SetFocus;

//

BitIzd_Add. Enabled: =False;

BitIzd_Edit. Enabled: =False;

BitIzd_Del. Enabled: =False;

BitIzd_Save. Enabled: =True;

BitIzd_Can. Enabled: =True;

//

end;

// редактировать изделие

procedure TMainForm. Act_Izd_EditExecute (Sender: TObject);

begin

If DBGridSlave. DataSource. DataSet. CanModify

Then DBGridSlave. DataSource. DataSet. Edit

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

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

DBEditNomerProduct. SetFocus;

//

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

then

begin

BitIzd_Add. Enabled: =false;

BitIzd_Save. Enabled: =true;

BitIzd_Can. Enabled: =true;

BitIzd_Del. Enabled: =false;

BitIzd_Edit. Enabled: =false;

end;

end;

// удалить изделие

procedure TMainForm. Act_Izd_DelExecute (Sender: TObject);

begin

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

Then

DBGridSlave. DataSource. DataSet. Delete;

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) and (Act_Izd_Save. Enabled=False) and (Act_Zak_Cancel. 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;

//

end;

// сохранить изменения в изделии

procedure TMainForm. Act_Izd_SaveExecute (Sender: TObject);

begin

If (DBEditNomerProduct. Text = '') or (DBEditShirina_product. Text = '') or (DBEditVisota_product. Text = '') or

(DBEditItogoMaterial. Text = '') or (DBEditItogoObrabotka. Text = '') or (DBEditItogoProdukt. Text = '')

Then

Begin

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

DBEditNomerProduct. SetFocus;

Exit

End;

If DBGridSlave. DataSource. DataSet. Modified or

(DBEditNomerProduct. Modified) or (DBEditShirina_product. Modified) or (DBEditVisota_product. Modified) or

(DBEditNaimenDopRabota. Modified) or (DBEditDopRabota. Modified)

Then

DBGridSlave. DataSource. DataSet. Post;

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

//

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

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. Act_Izd_CancelExecute (Sender: TObject);

begin

DBGridSlave. DataSource. DataSet. Cancel;

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_Save. Enabled=False) and (Act_Izd_Cancel. Enabled=False)

then

begin

BitIzd_Add. Enabled: =True;

BitIzd_Save. Enabled: =False;

BitIzd_Can. Enabled: =False;

BitIzd_Del. Enabled: =true;

BitIzd_Edit. Enabled: =true;

end;

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

and

(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;

//

end;

// определить состав изделия

procedure TMainForm. Act_Izd_SostavExecute (Sender: TObject);

Var

MySostavProductForm: TSostavProductForm;

begin

If DBGridSlave. DataSource. DataSet. RecordCount <> 0 // если таблица не пустая

Then

Begin

MySostavProductForm: =TSostavProductForm. Create (Owner);

MySostavProductForm. ShowModal;

MySostavProductForm. Free;

End

Else

Application. MessageBox ('Добавьте, пож-та, изделие', 'Отсутствие изделия', MB_OK + MB_ICONINFORMATION);

end;

// рассчитать заказ

procedure TMainForm. Act_Zak_RashitatExecute (Sender: TObject);

Var

ItogoBezRaboti,

ItogoSRabotoi: Currency;

i, j: integer;

// рассчитывает стоимость изделия в составе заказа

Procedure RashitatProduct (MyProduct: TAdoQuery);

Var

i: integer;

ItogoMaterial1,ItogoObrabotka1: Currency;

Begin

ItogoMaterial1: =0;

ItogoObrabotka1: =0;

With DM1 Do

// обрабатываем багеты в составе изделия

Begin

ADOQProducts_Bagets. First;

For i: =1 to ADOQProducts_Bagets. RecordCount do

Begin

ItogoMaterial1: =ItogoMaterial1 + ADOQProducts_Bagets. fieldByName ('CItogoZaRashod'). AsCurrency;

ItogoObrabotka1: =ItogoObrabotka1 + ADOQProducts_Bagets. fieldByName ('CObrabotka'). AsCurrency;

ADOQProducts_Bagets. Next;

End;

// обрабатываем разное в составе изделия

ADOQProducts_Raznoe. First;

For i: =1 to ADOQProducts_Raznoe. RecordCount do

Begin

ItogoMaterial1: =ItogoMaterial1 + ADOQProducts_Raznoe. fieldByName ('CItogoZaRashod'). AsCurrency;

ItogoObrabotka1: =ItogoObrabotka1 + ADOQProducts_Raznoe. fieldByName ('CObrabotka'). AsCurrency;

ADOQProducts_Raznoe. Next;

End;

// обрабатываем комплектующие в составе изделия

ADOQProducts_Kompl. First;

For i: =1 to ADOQProducts_Kompl. RecordCount do

Begin

ItogoMaterial1: =ItogoMaterial1 + ADOQProducts_Kompl. fieldByName ('CItogoZaRashod'). AsCurrency;

ItogoObrabotka1: =ItogoObrabotka1 + ADOQProducts_Kompl. fieldByName ('CObrabotka'). AsCurrency;

ADOQProducts_Kompl. Next;

End;

End;

With DM1 do

Begin

If ADOQProducts. CanModify

Then

ADOQProducts. Edit

Else

Begin

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

Exit;

End;

// заполняем соответствующие поля

ADOQProducts. FieldByName ('ItogoMaterial'). AsCurrency: =ItogoMaterial1;

ADOQProducts. FieldByName ('ItogoObrabotka'). AsCurrency: =ItogoObrabotka1;

ADOQProducts. FieldByName ('ItogoProdukt'). AsCurrency: =ItogoMaterial1 + ItogoObrabotka1 + ADOQProducts. FieldByName ('DopRabota'). AsCurrency;

If ADOQProducts. Modified

Then

ADOQProducts. Post;

End;

End;

begin

DM1. ADOQZakazi. DisableControls;

DM1. ADOQProducts. DisableControls;

If DM1. ADOQProducts. RecordCount <> 0 // если есть изделия

Then

// обрабатываем все изделия в составе заказа

Begin

DM1. ADOQProducts. First;

For j: =1 to DM1. ADOQProducts. RecordCount Do

Begin

// обновляем информацию

Dm1. ADOQProducts_Bagets. Close;

Dm1. ADOQProducts_Bagets. Open;

Dm1. ADOQProducts_Raznoe. Close;

Dm1. ADOQProducts_Raznoe. Open;

Dm1. ADOQProducts_Kompl. Close;

Dm1. ADOQProducts_Kompl. Open;

RashitatProduct (DM1. ADOQProducts); // рассчитываем изделие

DM1. ADOQProducts. Next;

End;

ItogoBezRaboti: =0;

ItogoSRabotoi: =0;

With DM1 Do

Begin

ADOQProducts. First;

// прогоняем все изделия

For i: =1 to ADOQProducts. RecordCount do

Begin

ItogoBezRaboti: =ItogoBezRaboti + ADOQProducts. fieldByName ('ItogoMaterial'). AsCurrency;

ItogoSRabotoi: =ItogoSRabotoi + ADOQProducts. fieldByName ('ItogoProdukt'). AsCurrency;

ADOQProducts. Next;

End;

End;

With DM1 do

Begin

If ADOQZakazi. CanModify

Then

ADOQZakazi. Edit

Else

Begin

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

Exit;

End;

// заполняем соответствующие поля

ADOQZakazi. FieldByName ('ItogSRabotoi'). AsCurrency: =ItogoSRabotoi;

ADOQZakazi. FieldByName ('ItogBezRaboti'). AsCurrency: =ItogoBezRaboti;

ADOQZakazi. FieldByName ('Itog_Scidka'). AsCurrency: =ItogoSRabotoi * ADOQZakazi. FieldByName ('LScidka_client'). AsCurrency;

ADOQZakazi. FieldByName ('ItogoKOplate'). AsCurrency: =ItogoSRabotoi - ADOQZakazi. FieldByName ('Itog_Scidka'). AsCurrency;

If ADOQZakazi. Modified

Then

ADOQZakazi. Post;

End;

End

Else

Begin

Application. MessageBox ('Добавьте в заказ изделие', 'Нет изделия', MB_OK + MB_ICONINFORMATION);

DM1. ADOQZakazi. EnableControls;

DM1. ADOQProducts. EnableControls;

Exit;

End;

DM1. ADOQZakazi. EnableControls;

DM1. ADOQProducts. EnableControls;

end;

// отчёт "остатки материалов в мастерской"

procedure TMainForm. Act_R_OstatkiExecute (Sender: TObject);

begin

RvProject1. Open; // открываем проект с отчётами

Try

RvProject1. ExecuteReport ('OstatkiMaterReport') // выполняем отчёт

Finally

RvProject1. Close; // закрываем проект с отчётами

End;

end;

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

procedure TMainForm. FormCreate (Sender: TObject);

begin

// если файл с отчётами существует

If FileExists (GetCurrentDir + '\BagetReport. rav')

Then

// подключаем файл с отчётами

RvProject1. ProjectFile: =GetCurrentDir + '\BagetReport. rav'

Else

Begin

Application. MessageBox ('Файл с отчётами не найден! Завершаю программу! ', 'Файл отчётов', MB_OK + MB_ICONERROR);

Application. Terminate;

End;

end;

// отчёт "прайс-лист"

procedure TMainForm. Act_R_PriceListExecute (Sender: TObject);

begin

RvProject1. Open;

Try

RvProject1. ExecuteReport ('PriceListReport')

Finally

RvProject1. Close;

End;

end;

// процедура создаёт форму выбора для отчёта начальной и конечной даты

// sCaption - заголовок

// VidForm - вид отчёта (1 - сумма заказов за период, 2 - заказы к дате, 3 - продажи материалов за период)

// isEmpty - поиск не нашёл ни одной записи

procedure TMainForm. CreateSelectDateForm (sCaption: String; VidForm: byte; Var isEmpty: boolean);

Var

MySelectDateForm: TSelectDateForm;

i: integer;

begin

MySelectDateForm: =TSelectDateForm. Create (Owner);

MySelectDateForm. Caption: =sCaption;

// в зависимости от вида подготавливаем форму

case VidForm of

1: Begin

MySelectDateForm. Tag: =1;

End;

2: Begin

MySelectDateForm. Label1. Visible: =False;

MySelectDateForm. DTPickerStart. Visible: =False;

MySelectDateForm. DTPickerStart. Date: =StrToDateTime ('01.01.1900');

MySelectDateForm. Height: =150;

MySelectDateForm. Tag: =2;

End;

3: Begin

MySelectDateForm. Tag: =3;

End;

end;

MySelectDateForm. ShowModal;

If MySelectDateForm. ModalResult = mrOk // если нажали на кнопку "выполнить"

Then

case VidForm of

1: Begin

DMReport. ADOQSummaZakazovReport. Close;

// устанавливаем параметры

DMReport. ADOQSummaZakazovReport. Parameters. ParamByName ('DataPriema'). DataType: =ftDate;

DMReport. ADOQSummaZakazovReport. Parameters. ParamByName ('DataPriema'). Value: =MySelectDateForm. DTPickerStart. Date;

DMReport. ADOQSummaZakazovReport. Parameters. ParamByName ('DataOkonch'). DataType: =ftDate;

DMReport. ADOQSummaZakazovReport. Parameters. ParamByName ('DataOkonch'). Value: =MySelectDateForm. DTPickerEnd. Date;

DMReport. ADOQSummaZakazovReport. Open;

If DMReport. ADOQSummaZakazovReport. RecordCount = 0 // если ничего не нашли

Then

Begin

Application. MessageBox ('Не найдено ни одной записи! Измените условия поиска', 'Поиск', MB_OK + MB_ICONASTERISK);

isEmpty: =True;

End;

End;

2: Begin

DMReport. ADOQZakaziKDate. Close;

// устанавливаем параметры

DMReport. ADOQZakaziKDate. Parameters. ParamByName ('DataOkonch'). DataType: =ftDate;

DMReport. ADOQZakaziKDate. Parameters. ParamByName ('DataOkonch'). Value: =MySelectDateForm. DTPickerEnd. Date;

DMReport. ADOQZakaziKDate. Open;

If DMReport. ADOQZakaziKDate. RecordCount = 0

Then

Begin

Application. MessageBox ('Не найдено ни одной записи! Измените условия поиска', 'Поиск', MB_OK + MB_ICONASTERISK);

isEmpty: =True;

End;

End;

3: Begin

With DMReport. ADOQProdazhiZaPeriodBagets Do

Begin

Close;

// устанавливаем параметры

Parameters. ParamByName ('DataPriema'). DataType: =ftDate;

Parameters. ParamByName ('DataPriema'). Value: =MySelectDateForm. DTPickerStart. Date;

Parameters. ParamByName ('DataOkonch'). DataType: =ftDate;

Parameters. ParamByName ('DataOkonch'). Value: =MySelectDateForm. DTPickerEnd. Date;

Open;

End;

With DMReport. ADOQProdazhiZaPeriodKomplekt Do

Begin

Close;

// устанавливаем параметры

Parameters. ParamByName ('DataPriema'). DataType: =ftDate;

Parameters. ParamByName ('DataPriema'). Value: =MySelectDateForm. DTPickerStart. Date;

Parameters. ParamByName ('DataOkonch'). DataType: =ftDate;

Parameters. ParamByName ('DataOkonch'). Value: =MySelectDateForm. DTPickerEnd. Date;

Open;

End;

With DMReport. ADOQProdazhiZaPeriodRaznoe Do

Begin

Close;

// устанавливаем параметры

Parameters. ParamByName ('DataPriema'). DataType: =ftDate;

Parameters. ParamByName ('DataPriema'). Value: =MySelectDateForm. DTPickerStart. Date;

Parameters. ParamByName ('DataOkonch'). DataType: =ftDate;

Parameters. ParamByName ('DataOkonch'). Value: =MySelectDateForm. DTPickerEnd. Date;

Open;

End;

If (DMReport. ADOQProdazhiZaPeriodBagets. RecordCount = 0) and (DMReport. ADOQProdazhiZaPeriodKomplekt. RecordCount = 0) and

(DMReport. ADOQProdazhiZaPeriodRaznoe. RecordCount = 0) // если ничего не нашли

Then

Begin

Application. MessageBox ('Не найдено ни одной записи! Измените условия поиска', 'Поиск', MB_OK + MB_ICONASTERISK);

isEmpty: =True;

Exit;

End;

// Очистка таблицы по продажам

DMReport. ADOComProdazhiDelete. Execute;

// Добавление в таблицу по продажам багетов

DMReport. ADOTableProdazhiZaPeriod. Close;

DMReport. ADOTableProdazhiZaPeriod. Open;

DMReport. ADOTableProdazhiZaPeriod. First;

DMReport. ADOQProdazhiZaPeriodBagets. First;

For i: =1 to DMReport. ADOQProdazhiZaPeriodBagets. RecordCount Do

Begin

If DMReport. ADOTableProdazhiZaPeriod. CanModify

Then

DMReport. ADOTableProdazhiZaPeriod. Append;

With DMReport. ADOTableProdazhiZaPeriod Do

Begin

FieldByName ('TipKomplekt'). AsString: =DM1. ADOQMaterBagets. fieldByName ('MaterKomlekt_Name'). AsString;

FieldByName ('Naimenovanie'). AsString: =DMReport. ADOQProdazhiZaPeriodBagets. FieldByName ('Lkomplekt'). AsString;

FieldByName ('EdIzm'). AsString: =DMReport. ADOQProdazhiZaPeriodBagets. FieldByName ('LEdIzm'). AsString;

FieldByName ('Rashod'). AsCurrency: =DMReport. ADOQProdazhiZaPeriodBagets. FieldByName ('CRashod_Komplekt'). AsCurrency;

FieldByName ('Prodano'). AsCurrency: =DMReport. ADOQProdazhiZaPeriodBagets. FieldByName ('CItogoZaRashod'). AsCurrency;

End;

If DMReport. ADOTableProdazhiZaPeriod. Modified

Then

DMReport. ADOTableProdazhiZaPeriod. Post;

DMReport. ADOQProdazhiZaPeriodBagets. Next

End;

// Добавление в таблицу по продажам комплектующих

DMReport. ADOQProdazhiZaPeriodKomplekt. First;

For i: =1 to DMReport. ADOQProdazhiZaPeriodKomplekt. RecordCount Do

Begin

If DMReport. ADOTableProdazhiZaPeriod. CanModify

Then

DMReport. ADOTableProdazhiZaPeriod. Append;

With DMReport. ADOTableProdazhiZaPeriod Do

Begin

FieldByName ('TipKomplekt'). AsString: =DMReport. ADOQProdazhiZaPeriodKomplekt. fieldByName ('LMasterMaterKomplekt'). AsString;

FieldByName ('Naimenovanie'). AsString: =DMReport. ADOQProdazhiZaPeriodKomplekt. FieldByName ('Lkomplekt'). AsString;

FieldByName ('EdIzm'). AsString: =DMReport. ADOQProdazhiZaPeriodKomplekt. FieldByName ('LEdIzm'). AsString;

FieldByName ('Rashod'). AsCurrency: =DMReport. ADOQProdazhiZaPeriodKomplekt. FieldByName ('CRashod_Komplekt'). AsCurrency;

FieldByName ('Prodano'). AsCurrency: =DMReport. ADOQProdazhiZaPeriodKomplekt. FieldByName ('CItogoZaRashod'). AsCurrency;

End;

If DMReport. ADOTableProdazhiZaPeriod. Modified

Then

DMReport. ADOTableProdazhiZaPeriod. Post;

DMReport. ADOQProdazhiZaPeriodKomplekt. Next

End;

// Добавление в таблицу по продажам разного

DMReport. ADOQProdazhiZaPeriodRaznoe. First;

For i: =1 to DMReport. ADOQProdazhiZaPeriodRaznoe. RecordCount Do

Begin

If DMReport. ADOTableProdazhiZaPeriod. CanModify

Then

DMReport. ADOTableProdazhiZaPeriod. Append;

With DMReport. ADOTableProdazhiZaPeriod Do

Begin

FieldByName ('TipKomplekt'). AsString: =DMReport. ADOQProdazhiZaPeriodRaznoe. fieldByName ('LMasterMaterKomplekt'). AsString;

FieldByName ('Naimenovanie'). AsString: =DMReport. ADOQProdazhiZaPeriodRaznoe. FieldByName ('Lkomplekt'). AsString;

FieldByName ('EdIzm'). AsString: =DMReport. ADOQProdazhiZaPeriodRaznoe. FieldByName ('LEdIzm'). AsString;

FieldByName ('Rashod'). AsCurrency: =DMReport. ADOQProdazhiZaPeriodRaznoe. FieldByName ('Rashod_Komplekt'). AsCurrency;

FieldByName ('Prodano'). AsCurrency: =DMReport. ADOQProdazhiZaPeriodRaznoe. FieldByName ('CItogoZaRashod'). AsCurrency;

End;

If DMReport. ADOTableProdazhiZaPeriod. Modified

Then

DMReport. ADOTableProdazhiZaPeriod. Post;

DMReport. ADOQProdazhiZaPeriodRaznoe. Next

End;

// Открываем сгруппированный запрос

DMReport. ADOQGroupProdazhiZaPeriod. Close;

DMReport. ADOQGroupProdazhiZaPeriod. Open;

End; // // /

end

Else

isEmpty: =True;

MySelectDateForm. Free; // уничтожаем переменную

end;

// отчёт "сумма заказов за период"

procedure TMainForm. Act_R_SummaZakazovExecute (Sender: TObject);

var

Empty: boolean;

TmpRaveComponent: TRaveComponent; // компонент рейва

DateStart, // начальная дата

DateEnd: string; // конечная дата

begin

Empty: =False;

CreateSelectDateForm ('Отчёт - Сумма заказов за период с ____ по ____', 1, Empty); // показать форму выбора дат

If Empty

Then

Exit;

RvProject1. Open;

// Поиск и активизация необходимого отчета. Метод вернет false если отчет не найден

if not RvProject1. SelectReport ('ZakaziZaPeriodReport', true)

Then EXIT;

// Поиск компонента с именем 'TittleText' на первой странице отчета

TmpRaveComponent: = RvProject1. ProjMan. FindRaveComponent ('TittleText',RvProject1. ProjMan. ActiveReport. FirstPage);

// Если объект найден, и он произошел от класса TRaveText

if (TmpRaveComponent <> nil) and (TmpRaveComponent is TRaveText)

Then

Begin

DateStart: =DMReport. ADOQSummaZakazovReport. Parameters. ParamByName ('DataPriema'). Value;

DateEnd: =DMReport. ADOQSummaZakazovReport. Parameters. ParamByName ('DataOkonch'). Value;

// Замена выводимого текста

TRaveText (TmpRaveComponent). Text: = 'Сумма заказов за период с ' + DateStart + ' г' + ' по ' + DateEnd + ' г';

End;

Try

// Генерация активного отчета

RvProject1. Execute;

Finally

RvProject1. Close;

End;

end;

// отчёт "Заказы к дате"

procedure TMainForm. Act_R_ZakaziKDateExecute (Sender: TObject);

Var

Empty: boolean;

TmpRaveComponent: TRaveComponent;

DateEnd: string;

begin

Empty: =False;

CreateSelectDateForm ('Отчёт - Заказы, которые должны быть готовы к _дата_', 2, Empty);

If Empty // если ничего не нашли

Then

Exit;

RvProject1. Open;

// Поиск и активизация необходимого отчета. Метод вернет false если отчет не найден

if not RvProject1. SelectReport ('ZakaziKSroku', true)

Then EXIT;

// Поиск компонента с именем 'TittleText' на первой странице отчета

TmpRaveComponent: = RvProject1. ProjMan. FindRaveComponent ('TittleText',RvProject1. ProjMan. ActiveReport. FirstPage);

// Если объект найден, и он произошел от класса TRaveText

if (TmpRaveComponent <> nil) and (TmpRaveComponent is TRaveText)

Then

Begin

DateEnd: =DMReport. ADOQZakaziKDate. Parameters. ParamByName ('DataOkonch'). Value;

// Замена выводимого текста

TRaveText (TmpRaveComponent). Text: = 'Заказы, которые должны быть готовы к ' + DateEnd + ' г';

End;

Try

// Генерация активного отчета

RvProject1. Execute;

Finally

RvProject1. Close;

End;

end;

// отчёт "продажи материалов за период"

procedure TMainForm. Act_R_ProdazhiMaterExecute (Sender: TObject);

var

Empty: boolean;

TmpRaveComponent: TRaveComponent;

DateStart, DateEnd: string;

begin

Empty: =False;

CreateSelectDateForm ('Отчёт - Продажи материалов за период... ', 3, Empty);

If Empty

Then

Exit;

RvProject1. Open;

// Поиск и активизация необходимого отчета. Метод вернет false если отчет не найден

if not RvProject1. SelectReport ('ProdazhiZaPeriod', true)

Then EXIT;

// Поиск компонента с именем 'Text1' на первой странице отчета

TmpRaveComponent: = RvProject1. ProjMan. FindRaveComponent ('Text1',RvProject1. ProjMan. ActiveReport. FirstPage);

// Если объект найден, и он произошел от класса TRaveText

if (TmpRaveComponent <> nil) and (TmpRaveComponent is TRaveText)

Then

Begin

DateStart: =DMReport. ADOQProdazhiZaPeriodBagets. Parameters. ParamByName ('DataPriema'). Value;

DateEnd: =DMReport. ADOQProdazhiZaPeriodBagets. Parameters. ParamByName ('DataOkonch'). Value;

// Замена выводимого текста

TRaveText (TmpRaveComponent). Text: = 'Продажи материалов за период с ' + DateStart + ' г' + ' по ' + DateEnd + ' г';

End;

Try

// Генерация активного отчета

RvProject1. Execute;

Finally

RvProject1. Close;

// Очистка таблицы по продажам

DMReport. ADOComProdazhiDelete. Execute;

End;

end;

// "Файл - архивация базы"

procedure TMainForm. ActArchivExecute (Sender: TObject);

begin

If (DM1. ADOQZakazi. State = dsBrowse) and (DM1. ADOQProducts. State = dsBrowse)

Then

If SaveArchivDialog. Execute // если выбран файл для сохранения

Then

Begin

if FileExists (ExtractFileDir (Application. ExeName) +'\baget. mdb') // если файл существует

Then

// копируем файл с БД

If CopyFile (PChar (ExtractFileDir (Application. ExeName) +'\baget. mdb'), PChar (SaveArchivDialog. FileName),true)

Then

Application. MessageBox ('База данных успешно скопирована! ', 'База данных', MB_OK + MB_ICONASTERISK)

Else

Application. MessageBox ('Ошибка копирования БД', 'База данных', MB_OK + MB_ICONError)

Else

Application. MessageBox ('Файл базы данных не существует! ', 'База данных', MB_OK + MB_ICONERRor);

End

Else

Else

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

end;

// Очистить заказы

procedure TMainForm. Act_Zak_ClearExecute (Sender: TObject);

begin

DM1. OchistitZakaz: =True; // устанавливаем флаг ОЧИСТКИ заказа

DM1. ClearTable (Application. Handle, TADOQuery (DBGridMain. DataSource. Dataset)); // очищаем

DM1. OchistitZakaz: =False; // сбрасываем флаг ОЧИСТКИ заказа

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;

// процедура устанавливает уровень доступа

// 1 - мастер, 2 - менеджер

procedure TMainForm. SetLevelAccess (RezhimRaboti: byte);

begin

case RezhimRaboti of

1: Begin

// отключаем всё ненужное

EdIzmAct. Enabled: =False;

ActMaterBaget. Enabled: =False;

ActMaterKomplekt. Enabled: =False;

ActMaterRaznoe. Enabled: =False;

Act_Master_Bagets. Enabled: =False;

Act_Master_Komplekt. Enabled: =False;

Act_Master_Raznoe. Enabled: =False;

ActSkladBagets. Enabled: =False;

ActSkladKomplekt. Enabled: =False;

ActSkladRaznoe. Enabled: =False;

// Act_Zak_Clear. Enabled: =False;

Act_R_Ostatki. Enabled: =False;

Act_R_PriceList. Enabled: =True;

Act_R_SummaZakazov. Enabled: =False;

Act_R_ZakaziKDate. Enabled: =False;

Act_R_ProdazhiMater. Enabled: =False;

Act_Zash_ChangePass. Enabled: =False;

End;

2: Begin

// пока ничего:)

End;

end;

end;

// Защита - изменить пароль

procedure TMainForm. Act_Zash_ChangePassExecute (Sender: TObject);

Var

MyChangePassForm: TChangePassForm;

begin

MyChangePassForm: =TChangePassForm. Create (Owner);

MyChangePassForm. ShowModal;

MyChangePassForm. Free;

end;

// "заказы - добавить"

procedure TMainForm. Act_Zak_AddExecute (Sender: TObject);

begin

If DBGridMain. DataSource. DataSet. CanModify

Then

DBGridMain. DataSource. DataSet. Append

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

Act_Izd_Add. Enabled: =False;

//

BitAdd. Enabled: =False;

BitDel. Enabled: =False;

BitEdit. Enabled: =False;

BitSave. Enabled: =True;

BitCan. Enabled: =True;

//

BitIzd_Add. Enabled: =false;

BitIzd_Edit. Enabled: =false;

BitIzd_Del. Enabled: =false;

//

DBEditNomerZakaza. SetFocus;

end;

// при щелчке по ячейкам таблицы заказов

procedure TMainForm. DBGridMainCellClick (Column: TColumn);

begin

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_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. FormClose (Sender: TObject; var Action: TCloseAction);

begin

AnimateWindow (handle, 500, AW_BLEND or AW_HIDE);

PlaySound ('Bye. wav',0,SND_SYNC);

end;

// процедура динамически создаёт форму "о программе"

procedure TMainForm. Act_AboutExecute (Sender: TObject);

Var

MyAboutUnitForm: TAboutForm;

begin

MyAboutUnitForm: =TAboutForm. Create (Owner);

MyAboutUnitForm. ShowModal;

MyAboutUnitForm. Free;

end;

procedure TMainForm. Act_HelpExecute (Sender: TObject);

begin

if FileExists (ExtractFileDir (Application. ExeName) +'\help. chm') // если файл существует

Then

// WinExec (PChar (ExtractFileDir (Application. ExeName) +'\help. chm'), SW_Restore) // запустить справку

ShellExecute (Handle,nil,'help. chm',nil,nil,SW_RESTORE)

Else

Application. MessageBox ('Файл справки не найден! ', 'Справка', MB_OK + MB_ICONASTERISK);

end;

end.

Приложение Б

Образец бланка заказа генерируемого системой

Приложение В

Перечень замечаний и предложений нормоконтролера

Наименование документа

№ стр. (листа)

Условные пометки

Содержание изменений и предложений

Примечание

Пояснительная записка

Графическая часть


Подобные документы

  • Системное, инструментальное и прикладное программное обеспечение. Современные настольные издательские системы. Программные средства мультимедиа. Системы искусственного интеллекта. Прикладное программное обеспечение автоматизированного проектирования.

    реферат [59,4 K], добавлен 18.12.2013

  • Аппаратное, сетевое, программное обеспечение предприятия. Разработка системы электронного документооборота. Последовательность создания и технология построения информационной системы. Выбор системы управления базами данных, среды разработки приложения.

    дипломная работа [1,5 M], добавлен 15.10.2013

  • Разработка программного комплекса "ConstructDocs", предназначенного для ведения документооборота строительной организации: идентификация информационного пространства, выделение сущностей, выбор языка программирования и аппаратного обеспечения системы.

    дипломная работа [3,1 M], добавлен 07.09.2011

  • Основное программное обеспечение для автоматизации производства. Финансовые и коммуникационные системы. Системы планирования и управления. Текстовые редакторы и табличные процессоры. Финансовое программное обеспечение. Шрифтовые технологии в документах.

    шпаргалка [551,9 K], добавлен 16.08.2010

  • Системное и прикладное программное обеспечение. Выполнение программ, хранение данных и взаимодействие пользователя с компьютером. Возможности операционных систем. Системы технического обслуживания. Системы обработки электронных таблиц и текста.

    презентация [15,9 K], добавлен 06.01.2014

  • Программное обеспечение как совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ. Системное ПО (программы общего пользования), прикладное и инструментальное (системы программирования).

    реферат [73,1 K], добавлен 04.06.2010

  • Вычислительные системы и программное обеспечение как важнейшие разделы информатики, условия перехода общества в информационную стадию развития. Развитие вычислительных систем и персональных компьютеров. Операционные системы и системы программирования.

    реферат [906,9 K], добавлен 18.01.2011

  • Классификация программного обеспечения, его особенности, назначение. Программное обеспечение для работы с текстом, изображением, прикладное, офисное, для работы в Интернете. Системы программирования, специфика программного обеспечения, что такое вирусы.

    презентация [1,2 M], добавлен 25.02.2010

  • Прикладное программное обеспечение, его виды, классификация, тенденции развития: редакторы документов, табличные процессоры, графические редакторы, правовые базы данных, системы автоматизированного проектирования. Роль и назначение системных программ.

    реферат [26,1 K], добавлен 29.11.2012

  • Прикладное программное обеспечение специального и общего назначения. Программы, обрабатывающие тексты и основное назначение электронных таблиц, системы управления базами данных и графические изображения. Интегрированные программные средства решения задач.

    курсовая работа [1,0 M], добавлен 24.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.