Мегаобучалка Главная | О нас | Обратная связь


Список использованных источников



2020-02-04 178 Обсуждений (0)
Список использованных источников 0.00 из 5.00 0 оценок




 

1. Зартенова Л.Г., Мурых Е.Л. Методические указания по дипломному проектированию. - Караганда: КарГТУ, 2005, 28с.

2. Фаронов В. "Программирование баз данных в Delphi 7", Издательский дом "Питер", СПб:. 2006 г., 459с.

3. Михеева В., Харитонова И. Microsoft Access 2003. - СПб.: БХВ - Санкт-Петербург, 2004, 1072с.

4. Архангельский А.Я. Работа с локальными базами данных в Delphi 5. - М.: ЗАО "Издательство БИНОМ", 2000, 192с.

5. Сайт условно-бесплатного ПО www.freesoft.ru/index.html

6. Сайт автора программного комплекса "Багетная мастерская" www.ldm2. narod.ru/idex.html

7. Сайт тестирования и разгона аппаратного обеспечения ПК www.overclockers.ru

8. Фаронов В. Delphi 6. - М.: Издательский дом "Питер", 2002 г., 512с.

9. Глушаков С. Программирование в среде Deiphi 7. - Харьков: Фолио, 2003, 528с.

10. Культин Н. Deiphi в задачах и примерах. - СПб.: БХВ - Санкт-Петербург, 2003, 288с.

11. Сайт АРТ-предприятия "АНТУРАЖ" www.anturaj.74.ru/index1. php

12. Веб-сервис багетных мастеров www.bagetchik.ru/autobaget/faq. htm

13. Интернет-магазин www.artrex.ru/myframedart/photomodelg. php

14. Сайт сети салонов багетных мастерских в Москве http://www.art-master.ru/baget. php

15. Фурсов В.И. Экологические проблемы окружающей среды. Учебное пособие для вузов. Алма-Ата, Ана тiлi, 1991 г., 253с.

16. Санитарные правила и нормы №1 01.004.01. Гигиенические требования к организации и условиям работы с видеодисплейными терминалами и персональными электронно-вычислительными машинами. Астана. - Изд. офиц., 2001, 40 с.

17. Баклашин И.А., Марин Б.А. "Экологические исследования". Учебник для вузов.М., Недра, 1984.308с.

18. Экология и безопасность жизнедеятельности: учеб, пособие для вузов. Под ред. Л.А. Муравья. - М.: ЮНИТИ-ДАНА, 2002. - 447с.

19. Т.А. Хван, П.А. Хван. Основы экологии. Серия "Учебники и учебные пособия". Ростов н/Д: "Феникс", 2003. - 256с.

20. Закон Республики Казахстан "О безопасности и охране труда" от 28 февраля 2004 года №528-II. Издательский дом "Бико" Алматы 2004.

21. Охрана труда на предприятиях автомобильного транспорта (практические расчёты). Под ред. И.А. Салова М., "Транспорт", 1997.184с.

22. Правила пожарной безопасности в Республике Казахстан. Основные требования. ППБ РК 08-97, Алматы, 1999г.

23. Шумилин В.К. Краткий курс безопасности. Памятка для работников, занятых эксплуатацией ПЭВМ и видеодисплейных терминалов. Издательство "Соуэль" Москва: 32с.

24. Закон Республики Казахстан "О труде в Республике Казахстан" от 10 декабря 1999 года N 493. Ведомости Парламента Республики Казахстан, 1999 г., N 24, ст.1068; "Казахстанская правда" от 24 декабря 1999 г. N 294

25. Охрана труда в вычислительных центрах. - М.: Машиностроение, 1985. - 176с.


Приложение А

Программный код главного модуля системы "Багетная мастерская "

unit MainUnit; // Главный модуль

var

MainForm: TMainForm;

implementation

{$R *. dfm}

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

procedure TMainForm. CreateALLEdIzmForm;

Var

MyEdIzmForm: TEdIzmForm; // переменная типа формы "Единицы измерения"

begin

MyEdIzmForm: =TEdIzmForm. Create (Owner); // создаём

MyEdIzmForm. ShowModal; // показываем пользователю

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

end;

 // Показать форму "Ед. изм."

procedure TMainForm. EdIzmActExecute (Sender: TObject);

begin

CreateALLEdIzmForm;

end;

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

procedure TMainForm. CreateALLKlientsForm;

Var

MyKlientsForm: TKlientsForm;

begin

MyKlientsForm: =TKlientsForm. Create (Owner);

MyKlientsForm. ShowModal;

MyKlientsForm. Free;

end;

procedure TMainForm. KlientsActExecute (Sender: TObject);

begin

CreateALLKlientsForm;

end;

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

 // sCaption - заголовок окна, dsMain - главный набор данных, dsSlave - подчинённый набор днных

procedure TMainForm. CreateBagetKomplektForm (sCaption: String; dsMain,

dsSlave: TDataSource);

Var

MyBagetKomplektForm: TBagetKomplektForm;

begin

MyBagetKomplektForm: =TBagetKomplektForm. Create (Owner);

 // Устанавливаем свойства элементов формы

MyBagetKomplektForm. DBGridSlave. DataSource: =dsSlave;

MyBagetKomplektForm. DBNavigatorSlave. DataSource: =dsSlave;

MyBagetKomplektForm. DBEditName. DataSource: =dsSlave;

MyBagetKomplektForm. DBEditName. DataField: ='Komplekt_Name';

MyBagetKomplektForm. DBLComboBoxEdIzm. DataSource: =dsSlave;

MyBagetKomplektForm. DBLComboBoxEdIzm. DataField: ='LEdIzm';

MyBagetKomplektForm. DBEditShirina. DataSource: =dsSlave;

MyBagetKomplektForm. DBEditShirina. DataField: ='Komplekt_shirina';

MyBagetKomplektForm. DBEditVisota. DataSource: =dsSlave;

MyBagetKomplektForm. DBEditVisota. DataField: ='Komplekt_visota';

MyBagetKomplektForm. DBListBoxMater. DataSource: =dsMain;

MyBagetKomplektForm. DBListBoxMater. DataField: ='MaterKomlekt_Name';

MyBagetKomplektForm. DBNavigatorMain. DataSource: =dsMain;

MyBagetKomplektForm. DBEditMaterName. DataSource: =dsMain;

MyBagetKomplektForm. DBEditMaterName. DataField: ='MaterKomlekt_Name';

MyBagetKomplektForm. DBEditMaterKoef. DataSource: =dsMain;

MyBagetKomplektForm. DBEditMaterKoef. DataField: ='MaterKomlekt_Koef';

MyBagetKomplektForm. Caption: =sCaption;

MyBagetKomplektForm. ShowModal;

MyBagetKomplektForm. Free;

end;

 // процедура динамически создаёт форму "Материалы - Комплектующие" и "Материалы - Разное"

 // sCaption - заголовок окна, dsMain - главный набор данных, dsSlave - подчинённый набор днных

procedure TMainForm. CreateAllKomplektForm (sCaption: String; dsMain,

dsSlave: TDataSource);

Var

MyALLKomplektForm: TALLKomplektForm;

begin

MyALLKomplektForm: =TALLKomplektForm. Create (Owner);

 // Устанавливаем свойства элементов формы

MyALLKomplektForm. DBGridSlave. DataSource: =dsSlave;

MyALLKomplektForm. DBNavigatorSlave. DataSource: =dsSlave;

MyALLKomplektForm. DBEditName. DataSource: =dsSlave;

MyALLKomplektForm. DBEditName. DataField: ='Komplekt_Name';

MyALLKomplektForm. DBLComboBoxEdIzm. DataSource: =dsSlave;

MyALLKomplektForm. DBLComboBoxEdIzm. DataField: ='LEdIzm';

MyALLKomplektForm. DBListBoxMater. DataSource: =dsMain;

MyALLKomplektForm. DBListBoxMater. DataField: ='MaterKomlekt_Name';

MyALLKomplektForm. DBNavigatorMain. DataSource: =dsMain;

MyALLKomplektForm. DBEditMaterName. DataSource: =dsMain;

MyALLKomplektForm. DBEditMaterName. DataField: ='MaterKomlekt_Name';

MyALLKomplektForm. DBEditMaterKoef. DataSource: =dsMain;

MyALLKomplektForm. DBEditMaterKoef. DataField: ='MaterKomlekt_Koef';

MyALLKomplektForm. Caption: =sCaption;

MyALLKomplektForm. ShowModal;

MyALLKomplektForm. Free;

end;

procedure TMainForm. ActMaterBagetExecute (Sender: TObject);

begin

CreateBagetKomplektForm ('Багеты', DM1. DSMaterBagets, DM1. DSBagets);

end;

procedure TMainForm. ActMaterKomplektExecute (Sender: TObject);

begin

CreateAllKomplektForm ('Комплектующие', DM1. DSMaterKomlekt, DM1. DSKomplekt);

end;

procedure TMainForm. ActMaterRaznoeExecute (Sender: TObject);

begin

CreateAllKomplektForm ('Разное', DM1. DSMaterRaznoe, DM1. DSRaznoe);

end;

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

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

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

procedure TMainForm. CreateAllMasterskayaKomplektForm (sCaption: String; dsSlave, Material: TDataSource);

Var

MyMasterskaya_KomplektForm: TMasterskaya_KomplektForm;

begin

MyMasterskaya_KomplektForm: =TMasterskaya_KomplektForm. Create (Owner);

 // Устанавливаем свойства элементов формы

MyMasterskaya_KomplektForm. DBGridSlave. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBNavigatorSlave. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBLComboBoxMaterKomplekt. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBLComboBoxMaterKomplekt. DataField: ='LMaterKomplekt';

MyMasterskaya_KomplektForm. DBLComboBoxKomplekt. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBLComboBoxKomplekt. DataField: ='LKomplekt';

MyMasterskaya_KomplektForm. DBEditRoznCena. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBEditRoznCena. DataField: ='Masterskaya_RoznCena';

MyMasterskaya_KomplektForm. DBEditKolVo. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBEditKolVo. DataField: ='Masterskaya_Kol-vo';

MyMasterskaya_KomplektForm. DBEditRashod. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBEditRashod. DataField: ='Masterskaya_Rashod';

MyMasterskaya_KomplektForm. DBEditOstatok. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBEditOstatok. DataField: ='CMasterskaya_Ostatok';

MyMasterskaya_KomplektForm. DBEditPrim. DataSource: =dsSlave;

MyMasterskaya_KomplektForm. DBEditPrim. DataField: ='Masterskaya_Prim';

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. Para



2020-02-04 178 Обсуждений (0)
Список использованных источников 0.00 из 5.00 0 оценок









Обсуждение в статье: Список использованных источников

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (178)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.012 сек.)