В. Мәліметтеді МҚ-ға енгізу үшін, экрандық форманың құрылуы.
Жұмысты ары қарай жалғастыру үшін, DataModule5 контейтерін дайындаймыз. Delphi компоненттер палитрасынан Data Access парағынан TTаblе визуалды емес компонентін қосамыз. Оның DatabaseName (МҚ псевдонимі) қасиетін PRIMER –ге пайда болған тізімнен немесе қолымын енгізіп ауыстырамыз. Tаblе3-те TableName (МҚ кестесінің аты) қасиетінің мәнін PRIHOD.DB деп аламыз. Содан соң, Active қасиетін True леп аламыз. TDataSource компонентін орналастырамыз, DataSource3 компонентінің DataSet қасиетін Table3 деп белгілейміз. PRIHOD.DB кестесімен байланысы үшін, визуалды емес компоненттері контейнерге міндетті түрде қосу керек, себебі оған ұқсас DataModule контейнердегі компоненттер бір-бірімен байланысқан және кейін оған циклдік қатынау жасалуы мүмкін.
№2 формаға Data Controls компоненттер палитрасынан TDBGrid элементін орналастырамыз. №2 форманың unit мәтін модуліне Unit5 модулінің атын алдын ала қосып, DBGrid компонентінің DataSource қасиетін DataSource3 деп белгілейміз.
Енді Table3 кестесінің мәліметтер жиынында тек TDBGrid торынан ғана емес, басқа да визуалды компоненттер арқылы қатынауға болатындай жасаймыз.
№2 формаға TDBEdit компонентін (Data Controls компоненттер палитрасы) қосамыз. TDBEdit1 компоненті арқылы қатынау жасауға болатын, рұқсаттаманы анықтайық. Ол үшін, оның қасиеттерінің мәндерін - DataSource :DataSource3 деп алып, DataField қасиетін DatPrih деп аламыз. TDBEdit2 компоненті арқылы қатынау жасауға болатын, рұқсаттаманы анықтайық. Ол үшін оның DataSource қасиетін DataSource3 мәніне, ал DataField қасиетін Kolvo деп белгілейміз.
TDBLookupComboBox компонентін орналастырамыз. Осы компоненттің қасиеттерін орнатамыз:
DataSource - қасиеті DataModule5.DataSource3;
DataFiled - қасиеті Material;
List Source - қасиеті DataModule5.DataSource1
ListField - қасиеті Material;
KeyField - қасиеті Material.
Экрандық формада МҚ басқару батырмаларын қосу.
Экрандық формада МҚ кестелері бойынша навигацияны қамтамасыз ететін, және оның қалпын басқаратын батырмаларды құруға болады.
Ол үшін, қосымшаға бес TButton (Standard компоненттер палитрасының парағы) батырмаларын қосамыз. Осы компоненттердің аттарын объектілер инспекторын қолданып, өзгертеміз. Сәйкесінше InsertButton, EditButton, DeleteButton, PostButton, CancelButton. Осы батырмалардың атауларын (Caption қасиеті) объектілер инспекторын қолданып өзгертейік, сәйкесінше "Добавить", "Изменить", "Удалить", "Запомнить", "Закрыть" (23-сурет).
23-сурет – Ағымды мәліметтер жиынымен жұмыс істеуге арналған, визуалды компоненттері бар форма
Тышқан көмегімен InsertButton батырмасын таңдап, оны екі рет шертеміз. Автоматты түрде кодты редактрлеу терезесіне көшеміз. OnClick қалпына келесі бағдарлама кодын енгіземіз:
procedure TForm2.InsertButtonClick(Sender: TObject);
begin
DataModule5.Table3.Insert;
end;
Insert тәсілі Table1 мәліметтер жиынын жазуды қосу режиміне көшіреді. Өріс мәндерін енгізілуі DBEdit1, DBLookupComboBox1, DBEdit2 компоненттерімен жүзеге асады. Ол үшін, мәліметтер жиыны dsBrowse режимінде болуы керек.
EditButton басқан кездегі өңдеуді анықтайық:
procedure TForm2.EditButtonClick(Sender: TObject);
begin
DataModule5.Table3.Edit;
end;
Edit тәсілі Table1 мәліметтер жиынын жазбаны қосу қалпына келетіреді. Өріс мәндерін енгізілуі DBEdit1, DBLookupComboBox1, DBEdit2 компоненттерімен жүзеге асады. Ол үшін, мәліметтер жиыны dsBrowse режимінде болуы керек.
DeleteButton батырмасынын басылу нәтижесін анықтайық:
procedure TForm2.DeleteButtonClick(Sender: TObject);
begin
IF MessageDlg('Подтвердите удаление записи', mtConfirmation,[mbYes, mbNo],0) = mrYes THEN DataModule5.Table3.Delete;
end;
Егер Table1 мәліметтер жиыны жазбаларды қарап шығу dsBrowse режимінде болса, сұхбат терезесі шақырылады (егер MessageDlg функциясы орындалға болса); егер пайдаланушы Yes батырмасын шертсе, ағымды жазбаның Table1 мәліметтер жиынынан өшірілуі пайда болады.
PostButton басылу нәтижесін қарастырайық:
procedure TForm2.PostButtonClick(Sender: TObject);
begin
DataModule5.Table3.Post;
end;
Егер мәліметтер жиыны жаңа жазбаны қосу немесе түзету режимінде болса, онда Post берілгендер тәсілінің орындалуы жүргізіледі. Ол МҚ кестесіндегі ағамды күйін еске сақтайды. Еске сақталғаннан кейін, мәліметтер жиыны қарап шығу режиміне dsBrowse көшеді.
CancelButton батырмасынын басылу нәтижесін анықтайық:
procedure TForm2.CancelButtonClick(Sender: TObject);
begin
close;
Form1.Visible:=true;
end;
Егер мәліметтер жиыны жаңа жазбаны қосу немесе түзету режимінде болса, онда Cancel берілгендер тәсілінің орындалуы жүргізіледі. Ол МҚ кестесіндегі жазбаның еске сақталуын болдырмайды және мәліметтер жиынын қарап шығу режиміне ауыстырады да мәзір формасына көшеді.
Мәліметтер жиынын жазбаның қосылу немесе өзгерту режиміне ауыстыруға болмайтындай ету үшін, сонымен қатар DBGrid1 компонентінен жоюға болмайтындай ету үшін, DBGrid1.ReadOnly қасиетін True мәніне орнатамыз. Содан соң, қосымшаны іске қосамыз. Жазбаларды өзгертуге немесе басқа жазба жазу үшін, DBEdit1, DBEdit2 компоненттеріне енгізуге және DBLookupComboBox1 компоненті тізіменен мәнді таңдау негізінде қолданылады (24-сурет).
24-сурет – Жаңа жазбаны қосу
Жазбаны өзгерту кезінде де солай болады. Жазбаны жойған кезде, сұхбаттық терезе пайда болады (25-сурет).
25-сурет – Жазбаны жою жөніндегі қолдау
4.3.3. МҚ бейнелеу үшін, одан әрі күрделі форманың құрылуы.
Экрандық формада TDBGrid модификация нұсқалары.
N_Prih мәні Prihod кестесіндегі сирек кездесетін мәндерін қамту үшін арналған, және басқа жүктеуді жүргізбейді. Сондықтан бұл өрісті DBGrid2 бағаналар құрамында көрсетпеу жөн болады. Бұл мақсаттар үшін, Prihod кестесінің жолдар тізімін құрамыз. Delphi-де МҚ-ның қандай жолдары мәліметтер жиынының қосымшасын қолдануға болатынын белгілеудің екі тәсілі бар.
Бірінші тәсіл бұл мәліметтер жиыны негізделген МҚ кестесінен барлық жолдарды қолдануда негізделеді. Бұл тәсіл әдетте, өздігімен қолданылады, яғни оны біз де Table1 және Table2 мәліметтер жиынын құрғанда қолдандық.
Екінші тәсіл мәліметтер жиыны негізделген МҚ кестесінің ішкі жиын өрістерін қолдану негізінде қолданады. Бұл мақсат үшін, мәліметтер жиынынын өрістер редакторы қолданылады. Ол мәліметтер жиыны үшін өңделетін өрістер қатарына барлық өрістерді немесе МҚ-ның ішкі жиын өрістерін қосуға мүмкіндік береді.
DataModule5 контейнерінен тышқан көмегімен Таblе2 компонентін таңдаймыз да, тышқанның оң жақ батырмасын шертеміз. Экранда пайда болған қалқып шығатын мәзірден Fields Editor элементін таңдаймыз. Пайда болған өрістерді өңдеу редакторында (ол бос болған кезінде, 26а суреті) тышқанның оң жақ батырмасын шертеміз де, пайда болған қалқып шығатын мәзірден Add Fields мәзір элементін таңдаймыз. БД Prihod.DB кестесінің барлық өрістерінің тізімі көрсетіледі. N_Prih өрісінен басқа, барлық өрістерді ерекшелейміз (тышқан және Shift пернелері көмегімен) және Add батырмасын шертеміз (26б суреті). Енді өрістерді өңдеу тізімі барлық белгіленген өрістерді қосады (26в-сурет).
а) б) в)
26-сурет – Өрістердің редакторымен жұмыс: а)өрістер редакторының бос тізімі;
б) өрістерді қосу; в) Өрістер редакторының толтырылған тізімі
№3 формадағы DBGrid2 компонентінің Table2 мәліметтер жиыны үшін, бағаналар құрамында енді тек қана өрістер редакторында ғана қосылған өрістер бар (27-сурет).
27-сурет – DBGrid2 өрістерінің құрамы өрістер редакторымен анықталады
Өрістер редакторында мәліметтер жиынының өрістер тізімнін анықтау үшін (Таblе2 компонентінен тышқанның оң жақ батырмасын шерту) осындай тәсілмен әрбір қосылған өріс үшін, Delphi қосымшасындағы TField компонентінің (мәліметтер жиынынын өрісі) құрылуына әкеп соқтырады. Әрбір осындай компонент өздігімен уникалды атпен – бірінші құраушы аты негізінде мәліметтер жиынының аты (Таblе2) алынады, ал екінші құраушы аты негізінде – МҚ кестесіндегі өріс аты аталынады. Осымен, TField компоненті Material өрісіне сай келеді, Table2Material атауына ие болады. Егер өрістер редакторында тиісті өріске шертетін болсақ, объектілер инспекторында өріс қасиеттерін орнату немесе өзгертуге болады, сонымен қатар нақты бір өріс үшін, оқиға өңдеуішін анықтауға болады.
DBGrid2 компонентінің параметрлерін, бағаналар атауы орысша аталатындай етіп өзгертеміз. Ол үшін, DBGrid2 компонентінен оң жақ батырмасын шертеміз де, қалқып шығатын мәзірден Columns Editor элементін таңдаймыз. Экранда редактор терезесі компоненттер үстелі пайда болады (32а - сурет). TDBGrid үстелінің мінездемесін өзгерту үшін, толығымен анықталмаған бағандардан, толық анықталған бағандарға өту керек. Ол үшін кнопке Add All Fields батырмасын шету керек, нәтижесінде бағаналар қосылады,олардың әрқайсысы Table2 компонентінің өрістер редакторынын өрісіне сай келеді (28б-сурет).
28-сурет – а) DBGrid2 бағаналарының бос тізімі; б) DBGrid2 бағаналарының толтырылған тізімі
Әрбір бағананың бас жолын өзгерту үшін, тышқан көмегімен бағаналар редакторында бағана атын таңдау керек және объектілер инспекторында Title қасиеттер тізімін ашу (ол үшін қасиеттің атауы жанындағы крестті тышқанмен шерту керек). Осы тізімнің Caption элементінде баған атауы белгіленген; бас жолдарын тиісті түрмен өзгертеміз де, DBGrid2 баған редакторынан шығамыз. Дәл солай Table1 мәліметтер жиынымен де жасаймыз (29-сурет).
29-сурет – DBGrid1 және 2 бағаналарының атауларын орнату
Дәл сондай өзгертулерді №2 формада да жасаймыз.
Сонымен қатар, №2 формадағы Таblе3 мәліметтер жиынында жазбалардың сұрыптау тәртібін өзгертеміз. Ол үшін, Таblе3 компонентінің (DataModule5 ішіндегі) объектілер инспекторында IndexFieldNames қасиетін индекстік өрістерін құрайтын әрбір Prihod.DB кестесінің тиісті индекстері үшін анықталған, "DatPrih;Material" мәніне қалқып шығатын тізімнен таңдаймыз. Осыдан кейін, DBGrid бағаналар редакторына қайта кіреміз және тышқан көмегімен DatPrih бағанын Material бағанының алдында тұратындай етіп орналастырамыз. Қосымшаға компиляция жасап, оны іске қосамыз. 30-суретте көрсетілгендей, Table2 мәліметтер жиыны Prihod.DB кестесімен тең келеді. Қосымшада ол келу мерзімі бойына сұрыпталған, ал әрбір келу мерзімі ішінде - материал атауымен сұрыпталған.
30-сурет – Материалдар келу мерзімі бойынша сұрыпталған
Экрандық формады есептелетін өрістерді құру
Егер №3 формада мәні басқа өрістерден алынатын есептелетін өріс құру керек болса, келесідей әрекеттерді орындау керек:
Өрістер редакторында жаңа жолды құру керек, оны Calculated деп белгілейміз. Ол үшін, DataModule5 көшіп, қажетті мәліметтер жиынынын (тышқан көмегімен) ағымды ету (Table2), тышқанның оң жақ батырмасын шертіп, мәзірден Field Editor таңдау, қайтадан тышқанның оң жақ батырмасын шертіп, мәзірден New Field таңдау. Осыдан соң сұхбаттық терезеден өріс атын белгілеу, оның типін және жолдық өрістер үшін - өлшемін орнату керек (31-сурет).
31-сурет – New Field терезесі
Жаңа өріс үшін TField компоненті құрылады, енді оған қатынауды өрістер редакторында жасауға болады.
Есептелетін өріс жататын, мәліметтер жиыны (Table2) компоненті үшін, OnCalcFields оқиға өңделуінің анықтау керек.
Мысалы, Table2 мәліметтер жиыны үшін, «Приход» кестелік мәліметтер қорын білдіретін, есептелетін өрістерге Table2Vychisl «Да» мәнін енгіземіз, егер Table2Kolvo өрісінде мәні 100-ден асса. Кері жағдайда, Table2Vychisl өрісіне бос мәнді енгіземіз:
procedure TDataModule5.Table2CalcFields(DataSet: TDataSet);
begin
IF Table2Kolvo.Value > 100 Then
Table2Vychisl.AsString := 'Да'
ELSE
Table2Vychisl.AsString := ' ';
end;
Егер мәліметтер жиынының AutoCalcFields қасиетінің мәні True болып орнатылса, мәліметтер жиынының dsInsert және dsEdit режимінде, онымен реляциялық байланысқан (кестелік мәліметтер қорының бүтінділік шектеулері орнатылған кезде) OnCalcFields оқиғасы есептелмейтін өрістер модификациясы кезінде басталады.
OnCalcFields оқиғаны өңдеу-процедурасы есептелелтің өріс мәнінің есептеу алгоритмінің құрылымын құрайды. Осы өңделгіште мән тек есептелетің өріске ғана меншіктелуі мүмкін, ал МҚ құрылымында анықталған өріске меншіктей алмайды (32-суретте қосымша көрсетілген).
32-сурет – Іске қосылған қосымшаның түрі
Достарыңызбен бөлісу: |