
- •050703 «Ақпараттық жүйелер» мамандығының
- •050703 «Ақпараттық жүйелер» мамандығының студенттеріне
- •Тәжірибелік жұмыс №1.
- •2 Қадам – қосымшаның басты формасын қалыптастыру
- •3 Қадам – ado технологиясы бойынша Ms-Access мқ-на қосылу
- •Тәжірибелік жұмыс №3. Сұрауларды құру. Іздеу және фильтрация.
- •Қадам 1 – tRxDbGrid бағана атауларының батырмаларымен жұмыс
- •Қадам 2 – мқ – на sql- сұрауының бағдарламалық өзгеруі
- •Var strSql:string;
- •Қадам 3 – мәліметтерді фильтрациялау және іздеу
- •Var I:integer;
- •If (Fields[I] is tIntegerField) then
- •Var s,sf:string;I,j:longint;
- •If CheckFiltr.Checked then begin
- •Тәжірибелік жұмыс №4. QuickReport арқылы есеп беруді құрайық
- •Тәжірибелік жұмыс №5. Мқ - ында «MyWorld» тасымалдауы
- •Қадам 1. Мқ мен динамикалық байланыс
- •Тапсырма: Бағдарлама ішіндегі бағдарламалар алгоритімімен танысып, оларға комментарии жасаңыз.
- •Var sbase:string;
- •Қадам 2 – ini-файлын құру
- •Қадам 3 – ini-файлын қолдану
- •Тәжірибелік жұмыс№6. «MyWorld» мқ құру. Алмастыру буферімен және графикалық бейнелермен жұмыс
- •DataControls бетінен біздің бастапқы формамыздың проектісіндегі dbImage-дің 3 компонентіне paLeft панелін ретпен жоғарыдан төмен орналастырыңыз.
- •Var j:integer;
- •Var dbIm:tdbImage;
- •If Not(dlgOpenImage.Execute) then Exit;
- •Var dbIm:tdbImage;
- •If Not(dlgSaveImage.Execute) then Exit;
- •Var dbIm:tdbImage;nmField:string;
- •XyPoint:tPoint;
- •Var j:integer;
- •If (Components[j] is tdbImage) then begin
- •If not(dbIm is tdbImage) then Exit;
Var I:integer;
begin
cbFiltr.Items.Clear;
With ADOQuery1 do begin
for i:=0 to FieldCount-1 do begin
If (Fields[I] is tIntegerField) then
cbFiltr.Items.Add(Fields[i].DisplayLabel);
end;
end;
end;
Бағдарламаны жібергеннен кейін тізім дұрыс қалыптасуын тексеріңіз.
edFiltr компонентасында қолданушы сандық мәліметтерді енгізеді. Қолданушы қате жібермеу үшін, осы өрісте сандардан басқа ештене болмауы керек. Берілген OnKeyPress компонентасына өндеушіні құрамыз:
procedure TfmMain.edFiltrKeyPress(Sender: TObject; var Key: Char);
begin
if (Key=Chr(VK_BACK))or(Key=Chr(VK_DELETE)) then Exit;
if not(Key in ['0'..'9']) then Key:= #0;
end;
Бағдарламаны жіберіп, осы компонентаның жұмысын тексеріңіз.
AdoQuery1 компонентасын Filter қасиетінде Design-Time орналастырыңыз төмендегідей мәнде: [Население]>100000000
CheckFiltr компонентасы үшін төмендегі өндеушіні OnClick оқиғасына құрыңыз:
procedure TfmMain.CheckFiltrClick(Sender: TObject);
begin
AdoQuery1.Filtered := CheckFiltr.Checked;
end;
Бағдарламаны жіберіп оның CheckFiltr компонентасында ерекшелінген бүкіл тізімде елдер халықтарымен 100 миллионнан аса тұрғынымен шығатынын тексеріңіз.
cbFiltr, cbCond және edFiltr компоненттерін қолданып, қолданушы фильтр арқылы өзгерту алуы біздің келесі міндетіміз. Установите в для свойства компонента cbFiltr копонентасында Text қасиетінде Design-Time орналастырып, «Население» мәнін, ал осы қасиетке edFiltr компонентасында 1000000000 (сто миллионов). CheckFiltr компонентасында OnClick оқиғаларында өндеушілерімен төмендегідей болуы керек:
procedure TfmMain.CheckFiltrClick(Sender: TObject);
Var s,sf:string;I,j:longint;
begin
//Перекодировка и проверка числового значения:
try
i:=StrToInt(Trim(edFiltr.Text));
if i>2000000000 then begin
ShowMessage('Числовое значение слишком велико!');
AdoQuery1.Filtered :=False;CheckFiltr.Checked:=False;Exit;
end;
except
on E: EConvertError do begin
ShowMessage('Неверное числовое значение !');
AdoQuery1.Filtered :=False;CheckFiltr.Checked:=False;Exit;
end;
end;
//Поиск FieldName по значению DisplayLabel из cbFiltr.Text:
with ADOQuery1 do begin
for j:=0 to FieldCount-1 do begin
if Fields[j].DisplayLabel = cbFiltr.Text then begin
sf:=Fields[j].FieldName; Break;
end;
end;
end;
//Формирование значения свойства Filter для AdoQuery1:
If CheckFiltr.Checked then begin
s:='['+cbFiltr.Text +']';
if cbCond.Text='Больше' then s:=s+'>' else s:=s+'<';
s:=s+IntToStr(i);AdoQuery1.Filter:=s;
end;
AdoQuery1.Filtered := CheckFiltr.Checked;
end;
Қолданушы жаңа фильтірмен қолданғанда ескіні жоюы керек. cbFiltr, cbCond и edFiltr компоненттері OnChange үшін өндеушіні құрып, оларды келесілерге жазыңыз:
CheckFiltr.Checked:=False;
Әр түрлі фильтірлердің жұмысы мен бағдарламаның орындалуын тексеріңіз.
Фильтірді өзгертткенне кейін қолданушыға кейбір мәліметтерді енгізуге тура келеді.Оның формасында орын алмау үшін, оның тақырыбын қолданыңыз. DataSource1 компонентасының OnDataChange оқиғасын қолдану тиімді.:
procedure TfmMain.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Caption :='Страны мира ('+IntToStr(AdoQuery1.RecordCount)+')';
end;
Бағдарламаны орындалу үшін жіберіңіз және де оның жұмысын тексеріңіз.