Зертханалық жұмыс №1 «Қойма» деректер қорын басқару жүйесін құру


Сүзбеуді қолданып есептерді құрылымдау



бет33/100
Дата06.02.2022
өлшемі1,89 Mb.
#53051
1   ...   29   30   31   32   33   34   35   36   ...   100
Байланысты:
БД-зертханалық жұмыс

5.4. Сүзбеуді қолданып есептерді құрылымдау
Filtered қасиетіне True мәнін қоямыз, OnFilterRecord оқиғасының өңдеушісінде шарттары жазылған фильтрацияны орындаймыз. Мысалы, егер МЖ-да фильтр орналастырылса:
begin
Accept := DataSet['KOLVO'] >= 500;
End;
онда Table1Filtered қасиетінде False мәнін қойғанда фильтрацияны орындайды; мәліметтер тобының нәтижесінде тек қана 'KOLVO' өрісіндегі 500 және одан да көп мәндері бар жазбалар көрсетіледі.
Filtered қасиетінің мәнін False мәніне орнатқан кезде, сүзбеу тоқтатылады, оның шарттары OnFilterRecord оқиғасында көрсетілген.
Қосымшаны тестілеу және жөндеу.
Тестілеуден кейін Ввод/Название материала меню пункті жұмыс істемейтінін байқадық. Жаңа материалдарды және оның мінездемесін қосу үшін форма құрайық. Осы формаға TDBGrid компонентасын орналастырайық, DataSource қасиетіне DataSource1 мәнін қоямыз. TButton компонентін орналастырамыз, бұл компонентке CancelBtn (Name қасиеті) атын берейік, батырманың тақырыпшасын "Закрыть" атына (Caption қасиеті) өзгертейік. Батырманы Кодпен байланыстырайық. OnClick бұл оқиғаларды өңдеу процедураларын құру үшін "Закрыть" батырмасына тышқанмен екі рет басу керек. Кодтар редакторінде келесі кодты жазамыз:
Сlose;
Form1.Visible := True;
№ 1 формаға ауысайық және Ввод/Название материала менюінің пункті үшін № 8 форманы шақыратын кодты жазайық:
Form1.Visible := False;
Form8.Visible := True;
Осымен қосымшаның дайындалуы аяқталды деп есептейміз.
Жөндеу №1.
Есеп берутің жаңа формасын құрайық (№9 форма). Формаға TQuickRep (аты QuickRep1) компонентасын орналастырайық, бірақ оған қатынау Query1 арқылы жүзеге асырылсын. Ол үшін DataSet қасиетін DataModule5.Query1 мәнін қоямыз. 43-суретте көрсетілгендей басқа компоненттерді қосайық және есеп беру аймағын статикалық мәтінмен толтырайық.

43-сурет – Есеп берудің нәтижелік макеті


Есептің аяғында барлық әкелінген материалдардың нәтижелік сомасын сөз түрінде қосамыз. Ол үшін QRBand4 аты бар TQRBand компонентін қосамыз, ВапdТуре қасиеті = rbSummary.


QRBand4-ке TQRLabel (аты QRLabel7) компонентін орналастырамыз.
Unit4-ке көшіп және "Итог" батырмасының OnClick оқиға өңдеуіне мына кодты қосамыз:
procedure TForm4.Button5Click(Sender: TObject);
var ss: String;
begin
Str(TempTotal,ss);
Form9.QRLabel7.Caption := SumNumToFull(TempTotal);
Form9.QuickRep1.Preview;
end;
Unit5-те TempTotal айнымалысын анықтаймыз және қоймаға әкелінген TempTotal материалдардың нәтижелік сомасын есептейін кодын қосамыз:
var
DataModule5: TDataModule5;
TempTotal: Integer;
implementation
Объектілер инспекторінде AfterOpen қасиетін тышқанмен 2 рет шертіп, Unit5 ашамыз және келесі кодты қосамыз:
procedure TDataModule5.Query1AfterOpen(DataSet: TDataSet);
begin
Query1.First;
TempTotal := 0; { use temp for efficiency }
while not Query1.EOF do
begin
TempTotal := TempTotal + Query1Stoim.Value;
Query1.Next;
end;
SumNumToFull(TempTotal);
end;
Проектке Writesum.pas жазбасына Project|Add to Project менюін қолданып сандарды ауыстру модулін қосайық.


Достарыңызбен бөлісу:
1   ...   29   30   31   32   33   34   35   36   ...   100




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет