Hisobot
tugmasi bosilganda so’rov oynasi hosil qilish.
void
__
fastcall
TForm1::Button4Click(TObject *Sender)
{
// Hisobot tugmasi bosilganda
String str;
TForm *frm;
frm =
new
TForm(Application);
frm->BorderStyle = bsDialog;
frm->Height = 200;
frm->Width = 300;
frm->Position = poScreenCenter;
frm->Caption = "Hisobot turini tanlash...";
frm->Font->Size = 14;
TRadioButton *rbPage =
new
TRadioButton(frm);
rbPage->Caption = "Alohida ko'rinishi";
rbPage->Parent = frm;
rbPage->Left = 50;
rbPage->Top = 30;
rbPage->Width = 200;
TRadioButton *rbTable =
new
TRadioButton(frm);
rbTable->Caption = "Jadval ko'rinishi";
rbTable->Parent = frm;
rbTable->Left = 50;
rbTable->Top = 30 + rbPage->Height + 30;
rbTable->Width = 200;
TBitBtn *myBtnOK =
new
TBitBtn(frm);
myBtnOK->Parent = frm;
myBtnOK->Kind = bkOK;
myBtnOK->Top = rbTable->Top + rbTable->Height+30;
myBtnOK->Width = 120;
myBtnOK->Height = 40;
myBtnOK->Left = 90;
if
(frm->ShowModal() == mrOk)
{
str = ExtractFilePath(Application->ExeName);
101
if
(rbPage->Checked)
str = str+"\\report.fr3";
else
str = str+"\\report1.fr3";
frxReport1->LoadFromFile(str);
frxReport1->ShowReport();
}
delete
myBtnOK;
delete
rbPage;
delete
rbTable;
delete
frm;
}
Yuqoridagi listingning kodi bajarilishi natijasi quyidagi – rasmlarda
keltirilgan.
Hisobot turini tanlash
oynasi
Hisobotning oddiy
ko’rinishi
Hisobotning jadval
ko’rinishi
RaveReport komponentalaridan foydalanib hisobotlar yaratish
RaveReport
komponentalar
palitrasi
komponentalari
C++Builder
dasturining barcha versiyalarida mavjud bo’lib, u bilan ishlash boshqa hisobot
komponentalari bilan ishlash anchagina qiyinroq hisoblanadi, ammo QReport
komponentalarida qila olinmaydigan ishlarni qilsa bo’ladi. Foydalanuvchi
tomonidan
yaratilgan
dasturga
hisobot
tayyorlashda
RaveReport
komponentalaridan foydalanish uchun dasturlash muhitining komponentalar
palitrasidagi Rave bo’limidan foydalanamiz. Quyida Rave komponentalar
to’plamining asosiy komponentalari keltirilgan.
TRvProject – bu komponenta yordamida hisobotlar olish fayllari yaratiladi;
TRvSystem – bu komponeta yordamida hisobot fayli bilan foydalanuvchi
tomonidan yaratilgan dasturni o’rtasidagi aloqani tiklash uchun hizmat qiladi;
TRvDataSetConnection – bu komponenta yordamida hisobot fayliga
ma’lumotlar omborini DataSet yordamida ulash;
TRvRenderPDF – bu komponenta yordamida olingan hisobot faylini PDF
ko’rinishga o’tkazish;
TRvRenderRTF – bu komponenta yordamida olingan hisobot faylini RTF
ko’rinishga o’tkazish;
TRvRenderHTML – bu komponenta yordamida olingan hisobot faylini
HTML ko’rinishga o’tkazish.
102
RaveReport komponentalar palitrasidagi komponentalarni 13.3.1–rasmda
keltirilgan oynadagi formaga o’rnatamiz.
Foydalanuvchi interfeysi (RaveReport komponentalari)
RaveReport komponentasi yordamida hisobot olish uchun komponentalar
bir–biriga bog’lanishi kerak bo’ladi. Birinchi navbatda hisobot olishda
ma’lumotlar bazasini hisobot komponentasiga ulanadi. Bu komponentalar
foydalanuvchi
tomonidan
yaratilayotgan
formadagi
ADOTable1
va
RvDataSetConnection1 komponentalari hisoblanadi. RvDataSetConnection1
komponentasining DataSet hususiyatiga ADOTable1 komponentasi nomi
yoziladi. Bu ikki komponentalar bog’langandan so’ng RvProject1 va RvSystem1
komponentalari o’zaro bog’lanadi, ya’ni RvProject1 komponentasining Engine
hususiyatiga RvSystem1 nomi yoziladi. Bu bog’lanishlar amalga oishirilganidan
so’ng hisobotning ko’rinishini tayyorlab olishimiz kerak bo’ladi. Hisobotning
ko’rinishini tayyorlash uchun 14.3.1–rasmda ko’rsatilgan formadagi RvProject1
komponentasining ustida sichqonchaning o’ng tugmasini chertamiz, hosil bo’lgan
oqib chiquvchi menyudan Rave Visual Designer… bandini tanlaymiz. SHunda
14.3.2–rasmdagi oyna hosil bo’ladi.
103
RaveReport hisobotlarni yaratish oynasi
Rasmda keltirilgan oynadagi Page1 bo’limiga yuqorida joylashgan Report
komponentalar palitrasidagi Region komponentasini joylashtiriladi. Region
komponentasining ichiga Report komponentalar palitrasidagi DataBand
komponentasini joylashtiriladi. Dasturdagi ma’lumotlar ombori bilan bog’lash
uchun File menyusidan New Data Object bandi tanlanadi, shunda 14.3.3–
rasmdagi oyna hosil bo’ladi. Bu oynadan Direct Data View bandi tanlanadi va Next
tugmasi bosiladi. Hosil bo’lgan oynadagi Active Data Connections bo’limidan
kerakli ulanish tanlanadi va Finish tugmasi bosiladi (14.3.4–rasm). Ma’lumotlar
ombori hisobotga bog’langanidan so’ng joylashtirilgan komponentalar bilan
ma’lumotlar ombori bog’lanadi. DataBand komponentasining DataView
hususiyatiga DataView1 deb yoziladi. Bu jarayon har bir yozuvni alohida – alohida
ko’rsatib berish uchun qo’llaniladi. Har bir yozuvdagi maydonlarni ko’rsatib
berish uchun Standard va Report komponentalar palitrasidagi Text va DataText
komponentalaridan
foydalaniladi.
Bu
komponentalarni
DataBand1
komponentasining ichiga rasmda ko’rsatilganidek joylashtiriladi. DataText
komponentalarning har birini DataView hususiyatiga DataView1 ni yoziladi va
har bir komponentaning DataField hususiyatiga ma’lumotlar bazasidagi
yozuvlarning maydonlari tanlanadi.
Ma’lumotlar oqimi turini oynasi
Faol ma’lumotlar omborini tanlash
oynasi
104
Hisobot faylini hosil qilish
Hisobot fayli saqlanadi. Hisobotni ko’rish uchun 14.3.1–rasmdagi Hisobot
tugmasiga quyidagi kod yoziladi.
void __fastcall TForm1::Button4Click(TObject *Sender)
{
String str;
str = ExtractFilePath(Application->ExeName);
str = str+"\\oddiy.rav";
RvProject1->ProjectFile = str;
RvSystem1->DefaultDest = rdPreview;
RvProject1->Execute();
}
Bu koddan tashqari RaveReport bilan ishlayotgan vaqtda formaning
yaratilish jarayonida RaveReport komponentalarining ba’zi bir buyruqlari
yozilishi kerak bo’ladi. Bu buyruqlar formaning OnCreate xodisasiga yoziladi.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
RvProject1->SelectReport("Report1",true);
RvProject1->Open();
}
Hisobot tugmasi bosilganida 14.3.6–rasmdagi oyna hosil bo’ladi.
105
Hisobot faylini hosil qilish
Hisobot faylini saqlash tugmasi orqali foydalanuvchi ixtiyoriy formatda
saqlashi mumkin. Bu formatlarga misol sifatida HTML, PDFlarni keltirishimiz
mumkin.
|