
- •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;
Тәжірибелік жұмыс №3. Сұрауларды құру. Іздеу және фильтрация.
Енді бағдарлама Access МҚ – ның кестесінен жазуларды олардың кестеге енгізілу тәртібімен шығарады. Егер қолданушы кесте жазуларын сұрыптаудың, мысалы бағана атауы бойынша тышқан батырмасын шерткеннен кейін, тәртібін белгілеу және өзгерту мүмкіндігіне ие болса, қолайлы болушы еді. TRxDBGrid компоненті Grid-тың бағана атаулары батырма ретінде қолданыла алатындығын анықтайтын TitleButtons қасиетіне ие. Оның мәні = False. True мәнінде бұл қасиетті бекітуде мұндай батырманы басуды өндеу үшін және атауда батырма қасиеттерін бекіту үшін OnTitleBtnClick оқиғаны қолдануға болады .
Қадам 1 – tRxDbGrid бағана атауларының батырмаларымен жұмыс
RxDBGrid1 компонентін қысқаша болуы үшін DBGrid1 (Name қасиетін өзгерту) атауын өзгерту.
Объектілер инспекторында DBGrid1 үшін True мәнінде TitleButtons қасиетін белгілеңіз.
unMain модуліне төменде қара шрифтпен көрсетілген екі ауыспалының хабарламасын қосыңыз:
……………………………
var
fmMain: TfmMain;
NameSortField:string; Desc:boolean;
implementation
……………………………
NameSortField ауыспалысы әрі қарай сұрыптау өткізілетін кесте өрісін анықтау үшін, ал Desc өсу немесе кему сұрыптау тәртібін анықтау үшін. қолданылады.
fmMain формасы үшін төменде көрсетілген оқиға өндеуші OnCreate құрыңыз:
procedure TfmMain.FormCreate(Sender: TObject);
begin
NameSortField:=DBGrid1.Columns[0].FieldName;
Desc:=False;
end;
DBGrid1 компонентінің төменде көрсетілген OnGetBtnParams және OnTitleBtnClick оқиғалар өндеушілерін құрыңыз: procedure TfmMain.DBGrid1GetBtnParams(Sender: TObject; Field: TField; AFont: TFont; var Background: TColor; var SortMarker: TSortMarker; IsDown: Boolean);
begin
if (Field <> nil) and (Field.FullName = NameSortField) then begin
if Desc then SortMarker:=smUp
else SortMarker:=smDown;
end;
end;
procedure TfmMain.DBGrid1TitleBtnClick(Sender: TObject; ACol: Integer; Field: TField);
begin
if (Field <> nil) then begin
if NameSortField=Field.FullName then Desc:=Not(Desc)
else begin
Desc:=False;
NameSortField:=Field.FullName;
end;
end;
end;
Бағдарламаны орындау үшін іске қосыңыз және бағаналар атауларында батырмалардың жұмысын тексеріңіз – бағананың жаңа атауын шерткенде батырма осы бағана атауында пайда болуы қажет, ол орналасқан бағана атауын шерткенде батарма өзінің сыртқы түрін өзгерту керек.
Қадам 2 – мқ – на sql- сұрауының бағдарламалық өзгеруі
Процедура атауын форма классын бейнелеу Public бөліміне орналастырыңыз:
Төменде көрсетілген процедураны құрыңыз және басқа да қосалқы бағдарламалардың хабарламалары жанында unMain модулінің interface секциясында оның атауын орналастырыңыз:
procedure TfmMain.NewQuerySQL;
Var strSql:string;
begin
DataSource1.Enabled :=False;
With ADOQuery1 do begin
if Active=True then Active:=False;
SQL.Clear;
strSQL:= 'SELECT * FROM Страны ORDER BY Страны.'+NameSortField;
if Desc then strSQL:=strSQL+' DESC;' else strSQL:=strSQL+';';
SQL.Add(strSQL);
Active:=True;
end;
DataSource1.Enabled :=True;
end;
Сізбен құрылған оқиғаларды өндеушілерде NewQuerySQL процедураны шақыруды қосыңыз:
procedure TfmMain.DBGrid1TitleBtnClick(Sender: TObject; ACol: Integer;
Field: TField);
begin
if (Field <> nil) then begin
if NameSortField=Field.FullName then begin
Desc:=Not(Desc);
end else begin
Desc:=False;
NameSortField:=Field.FullName;
end;
end;
NewQuerySQL;
end;
procedure TfmMain.FormCreate(Sender: TObject);
begin
NameSortField:=DBGrid1.Columns[0].FieldName;Desc:=False;
NewQuerySQL;
end;
Бағдарламаны орындау үшін іске қосыңыз және бағаналардың сұрыпталуы ойлағандай іске асып жатқанына көз жеткізіңіз.
МҚ – на сұрауды орындау уақытында бағдарлама қолданушының әрекетіне жауап бермейді және оны ол туралы ескеру керек. Rx кітапханасында осыны істеуге көмектесетін ShowSplashWindow арнайы функция бар. Бұл функцияның суреттелуін кітапхана бойынша анықтамада оқыңыз, содан кейін unMain модулінің мәтініне төменде қара шрифтпен бөліп көрсетілген жолын орналастырыңыз:
var
fmMain: TfmMain;
NameSortField:string;Desc:boolean;
implementation
uses SplshWnd;
{$R *.DFM}
procedure TfmMain.NewQuerySQL;
var strSQL:string;Splash: TForm;
begin
Splash := ShowSplashWindow(Application.Icon,
'Загрузка данных. Подождите, пожалуйста...', False,
Application.MainForm);
try
DataSource1.Enabled :=False;
With ADOQuery1 do begin
if Active=True then Active:=False;
SQL.Clear;
strSQL:= 'SELECT * FROM Страны ORDER BY Страны.'+NameSortField;
if Desc then strSQL:=strSQL+' DESC;' else strSQL:=strSQL+';';
SQL.Add(strSQL);
Active:=True;
end;
DataSource1.Enabled :=True;
finally
Splash.Free;
end;
end;