Список использованных источников
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
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему стероиды повышают давление?: Основных причин три... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (178)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |