Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6ddc9e41-585f-11e5-884b-f6d299da70eeУМКД_ИСП03.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.67 Mб
Скачать

Электрондық формада саналатын алаңдар

Егер форма №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 тілінің мүмкіндігі және оларды ДҚ-да қолдану.

  1. Экрандық форманың әртүрлі кестелерінің SQL-сұратуды пайдаланып мәліметтерді бейнелеу

  2. Есеп беру формасын құру және олардың ДҚ-ға қатынауын орнату және мәліметтерді өңдеуді ұйымдастыру

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 мәліметтер жиынына жаңа жазбаларды қосуға және мәліметтер жиынындағы жазбаларды өшіруге немесе өзгертуге болмайтынын ескеруіміз керек.ДҚ жалғыз "жиналатын" бұл мәліметтер жиындарының типін оқуға ғана болады.