procedure TfmMain.DataSource1DataChange(Sender: TObject; Field:
TField);
begin
Caption :='Страны мира ('+IntToStr(AdoQuery1.RecordCount)+')';
end;
Бағдарламаны орындалу үшін жіберіңіз және де оның жұмысын
тексеріңіз.
Тәжірибелік жұмыс №3. QuickReport арқылы есеп беруді құрайық
Есеп берудің мүмкіндіктері мәліметтер базасының көп тараған түріне
жатады. Шығару батырмалары қағазды документтердің барлығында
кездеседі. Delphi қолданушыға есеп шығару үшін көптеген компоненттерді
ұсынады, олар Qreport бетінде жиналған барлық компоненттер.Осы
тәжірибеде QReport компонентасы арқылы есеп берудің онай түрін құрамыз.
1. Меню қатарынан File, New таңдаймыз да шыққан терезеде Report
пиктограммасын белгілеп, Ok батырмасын басамыз.
2. Экранда «QuickReport1» жаңа формасы пайда болады. File,Save
As таңданыз да «MyWorld» папкасында форма үшін модульді unRep атымен
сақтаныз.
3. unRep модулінде implementation секциясына төменде қара
шрифтпен берілген жолды қосыныз:
implementation
uses unMain;
{$R *.DFM}
4. Инспектор объектісінде QuickReport1 формасы үшін енгізу жолын
шертіңіз, ол
DataSet қасиетіне қажет. Түсірілетін тізімде
fmMain.ADOQuery1 мағынасын тандаңыз.
5. Енді fmMain формасына есеп беру үшін жаңа батырманы
орналастырамыз, ол төмендегі суретте көрсетілген:
Name қасиетіне BtnRep батырманы орналастырып, Hint және
ShowHint қасиеттері арқылы көмекті орналастырамыз.
6. Енді BtnRep батырмасын шерткеннен кейін экранда есеп берудің
формасы шыққандай әрекет ету қажет. Ол үшін BtnRep батырмасы үшін
төменде көрсетілген OnClick оқиғаны өндеушіні құрыңыз:
procedure TfmMain.BtnRepClick(Sender: TObject);
begin
QuickReport1.Preview;
end;
Содан кейін бағдарламаны орындалуы үшін жіберіңіз. Экранда одан әрі
көрсетіліп отырғандай хабарлама пайда болатыны бәлкім. Ол хабарламаға
жауап ретінде “Yes” батырмасын басыңыз да және жобаны қайта жіберіңіз.
Енді BtnRep батырмасын шерткеннен кейін экранда суретте
көрсетілгендей біздің болашақ есеп беруіміздің формасы шығуы керек:
Есеп берудің өзі әлі жоқ, бірақ формада бірқатар батырмаларды көріп
отырмыз. Олардың үстінен жасырын көмек беруші сөздерді оқу үшін
тышқанның курсорын жүргізіңіз.
Енді Design-time –ға QuickReport1 формасына оралайық.
7. Біздің алғашқы есеп беруімізді құра бастайық. QuickReport1
формасына QRBand
компонентін орналастырыңыз.
Қастиет
Қатиеттің мәні
BandType
rbDetail
Name
BandDetail
8. Одан кейін BandDetail-ға QRDBText екі компонентін
орналастырыңыз. Екеуі үшін fmMain.ADOQuery1-да DataSet қасиетін
орналастырыңыз, ал DataField қасиетін біріншісі үшін Атауында, екіншісі
үшін Халқында орналастырыңыз.
9. QuickReport1 формасына тышқанның оң жақ батырмасын шерітіңіз
және пайда болған менюден Preview пунктін таңдаңыз.Экранда келесі түрге
жақын форма пайда болуы керек:
Тәжірибелік жұмыс
Тәжірибелік жұмыс
№4.
№4.
МҚ - ында
МҚ - ында
«
«
MyWorld
MyWorld
»
»
құру
құру
Бағдарламаны басқа бір папкаға немесе басқа компьютерге апару керек
деп ойлайық. BDMyWorld.mdb фаылының жолы өзгертілсе, онда сізге дұрыс
емес деген хабар шығады да, бағдарлама жұмыс істемейді.
Бағдарлама өз жұмысын міндетті түрде келесілерден бастауы керек:
a) Файл мен МҚ бағдарламамен бір папкада сақталып тұрғанын
тексеру.
b) Дұрыс сақталынған болса, жұмысты бастау.
c) Дұрыс емес болса, экранға МҚ – дағы файылды іздеу диалогты
терезесін шығару.
d) Егер де қолданушы диалогты терезеде МҚ – ның файылын тапса,
онда жұмысты жалғастыруға болады.
e) Егер де файыл табылмаса, онда жұмысты аяқтау.
Осы алгоритмді іске асырып көрейік.
Қадам
Қадам
1.
1.
МҚ мен динамикалық байланыс
МҚ мен динамикалық байланыс
1. Модульдің формасында ауыспалы жолдық типті және оған
ConnectionString
ConnectionString қасиетіндегі
AdoQuery
AdoQuery
1
1 компонентасын меншіктейік.
2. Ол үшін Ctrl+C пернелерүйлесімділігі арқылы объектілер
инспекторларының қасиетін көшіріп, содан кейін модульдің формасына
қойыңыз. Жол ұзақ болғандықтан оны бірнеше жолдарға бөлу керек болады.
Нәтижесінде сізде келесідей шығуы керек (қарамен белгіленген):
……………………………………………………….
var
fmMain: TfmMain;
NameSortField:string;Desc:boolean;
Source=C:\___Мои'> var ConStr:string =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User
ID=Admin;Data ' +
'Source=C:\
Мои
Документы
\ Иванов
\BDMyWorld.mdb;Mode=Share Deny None;Ext' +
'ended Properties="";Jet OLEDB:System database="";Jet
OLEDB:Regis' +
'try Path="";Jet OLEDB:Database Password="";Jet
OLEDB:Engine Type' +
'=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global
Partial Bu' +
'lk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet
OLEDB:New Data' +
'base Password="";Jet OLEDB:Create System Database=False;Jet
OLED' +
'B:Encrypt Database=False;Jet OLEDB:Don'#39't Copy Locale on
Compact=' +
'False;Jet OLEDB:Compact Without Replica Repair=False;Jet
OLEDB:S' +
'FP=False' ;
implementation
uses SplshWnd, unRep;
……………………………………………………….
Мәтіннің жолдары басқадай қосылып тұрулары да мүмкін, ол негізінен
провайдерлерге (сіз, МҚ мен байланысқан) байланысты.
3. МҚ – ның файылында ұйымдастырылған жол: Source=C:\
Мои
Документы
\ Иванов
\BDMyWorld.mdb;
4. Жол Source= символының бірізділігінен басталады нүктелі үтірмен
аяқталады. Айтылғанды жаңа бір бағдарлама ішіндегі бағдарламаны
жасайтын, жолдардың қиылысуында және оны басқаға ауыстыруында
қолданайық.
5. Директивадан кейін модуль формасына {$R *.dfm} төменде
берілген мәтінді енгізіңіз:
……………………………………………………….
{$R *.DFM}
procedure ChangeBasePath(var scon:string;sbase:string);
var j1,j2:integer;
begin
j1:=Pos('Data Source=',scon);
if j1>0 then begin
repeat
Inc(j1);
until scon[j1]='=';
Inc(j1);J2:=J1;
repeat
Достарыңызбен бөлісу: |