ДҚ мазмұнын ұсыну үшін өте күрделі экрандық формалар Экрандық формадағы TDBGrid модификация варианттары
N_Prih Prihod кестесіндегі уникальдықты қамтамасыз ету үшін N_Prih алаңының мәнін байқауға қажет және басқа ешбір күш түсірмейді. Cондықтан берілген алаңға ең жақсысы DBGrid2 бағаналарының құрамында көрсетпеу. ДҚ кестесі алаңынан қайсысын мәліметтер жиыны үшін қосымшадан қолданудан Delphi-де сілтеудің екі мүмкіндігі бар.
Бірінші әдіс осы мәліметтер жиыны ассоцияланған. ДҚ кестесінен барлық алаңды үнсіздікпен қолдану, бұл әдіс әрқалай үнсіздікпен орындалады және Table1 және Table 2 мәліметтер жиынын құру кезінде анық емес қолданылады.
Екінші әдіс ассоцияланған мәліметтер жиынымен ДҚ кестелерінің бағыныңқы жазба алаңын қолданудан тұрады.
Осы мақсатта мәліметтер жиынының редактор алаңы қолданылады, ол мәліметтер жиынының өңделетін алаңын құру ДҚ кестелерінің бағыныңқы жазба алаңында немесе барлық алаңды қосуға мүмкіндік береді.
DataModule 5 компонентінен тышқан көмегімен Таblе2 компанентін таңдаймыз. Экранда пайда болған қалқыйтын менюден Fields Editor элементін таңдаймыз. Редактор алаңында (сурет 30 ) пайда болған тізімнен тышқанның бірінші бастырмасын менюден Add Fields меню элементін таңдаймыз.
ДҚ Prihod кестесінің барлық алаңдар тізімі көрсетіледі.
N _ Prih (сурет 12.4.6) алаңынан басқа барлық алаңды белгілеген (мен Shift бастырмасы көмегімен), Add бастырмасын басамыз. Енді редактор алаңы тізіміне белгіленген алаңының бәрі қосылады.(сурет-12.4.6)
а) б) в)
Сурет-12.4. Редактор алаңымен жұмыс:
а) редактора алаңының бос тізімі; б)алаң қосу; в) редактора алаңының толтырылған тізімі.
№3 формасындағы DBGrid 2 бағандары құрамында, енді Table 2 мәліметтер жиыны үшін редактор алаңынан қосылған алаңдар ғана бар болатынын байқауға болады.
Редактор алаңдарында мәліметтер жиынының алаңдар тізімін анықтау (Таblе2-нің тышқанның оң батырмасын басып тұрғанда) мынаған келеді, осындай жолмен қосылған Delphi –дегі қосымшаға қосылған алаңға Tfield автоматты түрде құрылады.(мәліметтер жиыны алаңында ) Бұндай әрбір компанент үнсіздік пен уникальдық атпен аталады. Бірінші құрылған алаң мәліметтер жиынының атын алады(2), екінші реттік құрылғандары—ДҚ кестесінің алаңның атын алады.
Сурет-12.5. DBGrid2 алаңы құрамы редактор алаңы тізімімен анықталады.
Material алаңына сәйкес TField компаненті Таblе2 Material сияқты аталады. Егер алаңдар редакторына сәйкес алаң атына шертсек, онда инспектор объектілерінде алаң қасиетін орналастыруға немесе өзгертуге болады. Сондақтан нақты алаң үшін оқиға өңдеушісін анықтауға болады.
DBGrid2-ң параметрлерін оның бағаналардың атауы орысша болатындай етіп өзгертеміз ол үшін тышқанның оң жағын басып DBGrid2 компонентінде, қалқыитын менюден Columns Editor элементін таңдаймыз. Экранда редактор терезесі пайда болады,(сурет12.6.а). TDBGrid столы сипатын өзгерту үшін нақты анық емес бағаннан анық бағанға көшу керек . Ол үшін Add All Fields батырмасын басу керек, нәтижесінде Таblе2 компанентінің редактор алаңында анықталған әрқайсысы алаңға сәйкес келетін бағандар қосылады.(сурет 12.6.б)
Сурет -12.6. а) DBGrid2 бағандардың бос тізімі;
б) бағандардың толтырылған тізімі
Әрбір бағанның тақырыбын өзгерту үшін тышқан көмегімен бағандар атын таңдау және объектілер инспектрлерінен Caption элементінің Title қасиетін ашу, бұл тізімде бағандар тақырыбы болады; сәйкес түрде тақырыпты өзгертеміз және содан кейін бағандар редакторынан DBGrid2 –ден шығамыз.
Таblе1 мәліметтер жиыны үшін тағыда осыны қайталаймыз.(сурет-12.7)
Сурет-12.7. DBGrid 1және 2 бағандар тақырыбын орнату
№2 формадағы Таblе3 мәліметтер жиынының жазбаларын сорттау ретін өзгертеміз. Ол үшін объектілер инспектрлерінде Таblе3 копманентіндегі (DataModule5 те) IndexFieldNames қасиетіне “DatPrih Material” мәні қалқитын тізімнен таңдау жолымен өзгертеміз осыдан кейін қайтадан DBGrid редактор колонкасына кіріп, DatPrih бағанын тышқан көмегімен Material бағанын алдындағыдай қылып “перетацим” қосымшаны компилярлаймыз және орындауға жібереміз.12.8-сурет көрсетілген Table2 мәліметтер жиыны ДҚ PrihodДВ кестесімен ассоцияциялған, қосымшада кіріс датасымен сортталған, ал әрбір кіріс датасы ішінде материал атауымен.
Сурет -12.8. Түсу датасы бойынша сортталған материалдар
Электрондық формада саналатын алаңдар
Егер форма №3 саналатын алаң құру қажет болса, онда былай істеледі:
1. Редактор алаңына жаңа алаң құру керек, оны Calculated сияқты белгілеу. Бұл үшін DataModule 5–ке өту керек, қажетті ағымды( тышқан көмегімен) НД () жасап; тышқанның оң жағын басып Field Editor менюін таңдап және қайтадан тышқанның оң жағын басып, New Field менюін таңдау, сонан кейін диалог терезесіне алаң атын көрсету қажет, оның типі және жолдақ алаң үшін ұзындығын ( сурет 12.9)
Сурет-12.9. Жаңа алаң қасиетін анықтау терезесі
Жаңа алаң үшін TField компоненті құрылды, қатынасты редактор алаңымен жүзеге асыруға болады.
2. Қолданылатын алаңға жататын НД (Table2) компоненті үшін, OnCalcFields оқиға өңдеушісі анықтау қажет .
Мысалы, Table 2 НД арналған, қауымдастырылғанға ТБДпен “ Кіріс ” ті, есептеліп, Table 2 Vychisl алаңына “ ия ” мәнін енгіземіз , егер Table 2 Kolvo алаңында осы жазбаның 100-ден көп мәнінен тұрады, ал керісінше болса, Table 2 Vychisl алаңына бос мән береміз:
Procedure TDataModule 5. Table 2 CalcFields ( DataSet : TDataSet );
Begin
IF Table 2 Kolvo . Value >100 Then
Table 2 Vychisl . AsString :=' ия '
А
Table 2 Vychisl . AsString :='';
End ;
Егер AutoCalcFields мәліметтер жиынының қасиетінде True анықталған болса, OnCalcFields оқиғасы берілген НД dsEdit және dsInsert режимінде саналатын алаң модификациясы кезінде бастайды, онымен реляциялы байланысқан (ТБД өзіне тұтастыққа шектеу орнатылған кезде ).
Осы OnCalcFields оқиға процедура - өңдеушісі есептелетін алаң немесе алаңдар тобының мәнін есептеу алгоритімін жүзеге асыруынан құрылады. Осы өңдеушіде мән тек саналатын алаңға меншіктеу керек және алаңға меншіктеле алмайтын белгілі ДҚ құрлымында (қосымша 12.10 суретте көрсетілген).
Сурет-12.10. Жіберілген қосымша түрі
Ескерпе. Кейде саналатын алаңға мән меншіктеу қажет басқаша айтқанда кейде кейбір айнымалы формаларында есептелінетін алаң мәндерін жазу тиімді болады. Мысалы біз НД Tbl жазбаны қосайық Summa алаң мәнін кейбір алгоритімдер есептелініп Summa алаң мәнін есептеу үшін TekOstatok айнымалысы қолданылады. Біз TekOstatok мәнін Tbl алаңында есептелінетін әр жазбаға енгізуімізге болады.
Бір қиындық кездеседі: мәліметтерді есептелетін алаңға енгізу OnCalcFields оқиға өңдеушіде және жергілікті айнымалы TekOstatok мәні таратылған уақытта жүргізіледі.
Мына жағдайда Tbl жаба қосатын алгоритмді орындау процесінде қандайда бір динамикалық тізімде локальді айнымалы мәндерін есте сақтау керек, содан кейін OnCalcFields оқиға өңдеушідегі сәйкес келетін элементтерді алап тастау керек, осы элементтердің мәндерін Tbl ТО алаңына қосу керек.
Дәріс №13
Тақырыбы: SQL тілінің мүмкіндігі және оларды ДҚ-да қолдану.
-
Экрандық форманың әртүрлі кестелерінің SQL-сұратуды пайдаланып мәліметтерді бейнелеу
-
Есеп беру формасын құру және олардың ДҚ-ға қатынауын орнату және мәліметтерді өңдеуді ұйымдастыру
SQL тілі (Sructured Query language – құрылымдық сұраныстар тілі) деректер қорына күрделі сұраныстарды қалыптастыруға мүмкіндік береді.
Сұраныс бұл нәтижесінде сұрақты қанағаттандыратын жазбалар жиынынан алынатын деректер қорына қойылған сұрақ. SQL синтаксисінің жалпы ережелері өте қарапайым.
ЖҰМЫСТЫ ОРЫНДАУ РЕТІ
Экрандық форманың әртүрлі кестелерінің SQL-сұратуды пайдаланып мәліметтерді бейнелеу
Бірнеше кестелерден мәліметтерді бейнелеу үшін форма құрайық, ол үшін TdataModule5 контейнеріне TQuery компонентін жайғастырамыз (Data Access компонент палитра беті). Үнсіздік бойынша оның аты Query1. PRIMER-ге DatabaseName қасиетін орнатамыз. TDataSource (DataSource 4) компонентін орналастырамыз. Query1 мәніне DataSet қасиетін орнатамыз.
№4 формаға TDBGrid компонентін орналастырамыз. Оның DataSource қасиетін DataSource4 мәніне орнатамыз.
Объектілердің инспекторында Query1 компоненті үшін SQL-қасиетін тауып батырмасын басамыз. Содан пайда болған редактор терезесінде SQL –сұрату текстін тереміз.
SELECT P.DatPrih, P.Material, P.Kolvo,Т.Zena,
(P.Kolvo * T.Zena) As Stoim
FROM Materialy T, Prihod P
WHERE T.Material = P.Material
ORDER BY P.DatPrih, P.Material
Және Ok батырмасын басамыз .
Осыдан кейін Query1. Active қасиетін True мәніне орнатамыз. Query 1 мәліметтер жиыны қоймаға түскен материалдар жайындағы мәліметтерден тұрады. Бұл жиынның жазба құрамына DatPrih (кіріс датасы), Material (материал аты), Kolvo (кіріс мөлшері), Zena ( берілген материалдар бағасы), Stoim (кіріс материал құны) алаңдары кіреді. SQL қасиетінің сұрату текстінен мәліметтер жиыны екі кестеден "жиналатыны" көрініп тұр: Materialy.DB және Prihod.DB кестелері. Material алаңының бірдей мәндері бар ДҚ кестелерінің жазбалары біріктіріледі
№1формасының есеп беру пунктіне келесі код енгіземіз :
Form 1. Visible := False ;
Form 4. Visible := True ;
Query 1 мәліметтер жиынына жаңа жазбаларды қосуға және мәліметтер жиынындағы жазбаларды өшіруге немесе өзгертуге болмайтынын ескеруіміз керек.ДҚ жалғыз "жиналатын" бұл мәліметтер жиындарының типін оқуға ғана болады.
Достарыңызбен бөлісу: |