غالبًا ما يقوم المستخدمون بإنشاء تقارير عند استخدام تطبيقات قاعدة البيانات. هنا ، نستخدم تقرير حوكمة الجهاز كمثال لتوضيح كيفية استخدام مكون QReport ومكون الاستعلام لإنشاء تقارير من جداول بيانات متعددة.
1. قاعدة البيانات المستخدمة
هنا نستخدم ثلاثة جداول بيانات FoxPro ، DLBMK (رمز فئة المعدات) ، SBXHK (نموذج المعدات والتكوين) ، و BMSBK (قسم المعدات) ، والتي يتم تخزينها في دليل D:/SB. هيكل المكتبة كما يلي:
(I) DLBMK اسم الحقل اسم الحقل نوع التفسير 1 DLBH N3 فئة الجهاز رقم 2 DLMC C20 اسم الفئة (II) SBXHK اسم الحقل نوع الحقل 1 4 SBPZ C30 Device Configuration 5 SBSL N3 Number of Devices (III) BMSBK Field Name Field Type Explanation 1 BMMC C20 Department Name 2 XHBM N3 XHBM Fields in SBXHK 3 SL N3 Quantity Use these three data tables to Generate a device model that is only available في قسم الكمبيوتر ولكن ليس في الإدارات الأخرى.
2؟
هناك نموذجان في البرنامج: Mainform Mainform و REPFORM. هناك جزءان من Tbutton في Mainform Mainform ، والإعدادات هي كما يلي:
خصائص الجزء وقيم السمة
المعاينة: Tbutton Caption: معاينة
printbtn: Tbutton Caption: يتم تعيين المكونات والخصائص في نموذج التقرير المطبوع على النحو التالي:
خصائص الجزء وقيم السمة
Query1: tquery databasename: d:/sb
نشط: صحيح
QREP1: Tquickrep Dataset: Query1
Titleband1: TQRBAND BANDTYPE: RBTITLE
عقال 1: TQRBAND BANDTYPE: RBCOLUMBERHEADER
Dravleft: صحيح
Drawright: صحيح
DrawTop: صحيح
DrawBottom: صحيح
SELECTIONBABRD1: TQRBAND BANDTYPE: RBDETAIL
Dravleft: صحيح
Drawright: صحيح
DrawTop: صحيح
DrawBottom: صحيح
ChildBand1: TQRChildband ParentBand: DeliefBand1
Dravleft: صحيح
Drawright: صحيح
DrawTop: صحيح
DrawBottom: صحيح
TitleLabel: Tqrlabel Caption: جدول إحصائيات الجهاز
Dlmclabel: Tqrlabel Caption: الفئة
SBXHLABEL: TQRLABEL Caption: Model
SBPZLABEL: TQRLABEL Caption: Configuration
SBSLLABEL: TQRLABEL Caption: الكمية
DLMCDBTEXT: TQRDBTEXT DATASET: QUERY1
DataField: DLMC
SBXHDBTEXT: TQRDBTEXT DATASET: QUERY1
DataField: SBXH
SBPZDBTEXT: TQRDBTEXT DATASET: QUERY1
DataField: SBPZ
SBSLDBTEXT: TQRDBTEXT DATASET: QUERY1
DataField: SBSL
الشكل 1 ~ 9: Tqrshape شكل: Qrsvertline
أعلى: 0
العرض: 1
تم تعيين خاصية SQL لـ Query1 على:
SELECT A.DLBH ، A.DLMC ، B.SBXH ، B.SBPZ ، B.SBSL
من DLBMK A ، SBXHK B
حيث a.dlbh = b.dlbh و b.xhbm ليس في
(حدد XHBM من BMSBK حيث تقليم (BMMC) $#@60 ؛ $#@62 ؛ "قسم الكمبيوتر")
اطلب من A.DLBH قم بتعيين قيم السمة المرتدة ، Drawright ، DrawTop ، و DrawBottom لعدة مكونات TQRBAND إلى صواب ، من أجل طباعة خطوط الجدول والخطوط الأفقية. يتم استخدام مكون tqrshape لطباعة الخطوط العمودية للجدول. DlmcDBText放置在DetailBand1上,其它几个TQRDBText部件放置在ChildBand1上,Shape1~3放置在HeadBand1上,Shape4~6放置在DetailBand1上,Shape7~9放置在ChildBand1上。
3. إضافة رمز إلى البرنامج
1. اثنين من أحداث الزر في الإجراء الرئيسي
يبدأ
repform.qrep1.preview ؛
نهاية؛
الإجراء tmainformprintbrintnclick (المرسل: TOBJECT)
يبدأ
repform.qrep1.print ؛
نهاية؛
2. HeadBand1、DetailBand1及ChildBand1的BeforePrint事件procedure TrepForm.HeadBand1BeforePrint(Sender : TQRCustomBand; Var PrintBand : Boolean)
يبدأ
الشكل 1.HEIGHT: = Headband1.Height ؛
الشكل 2. HEIGHT: = HADEBRING1.HEIGHT ؛
الشكل.
نهاية؛
الإجراء trpform.detailband1beforeprint (المرسل: tqrcustomband ؛ var printband: منطقية)
يبدأ
PrintBand: = BH $#@60 ؛
إذا printband ثم
يبدأ
bh: = query1 ['dlbh'] ؛
الشكل.
الشكل 5.height: = التفاصيل 1.hight ؛
الشكل 6. HIEGH: = DELECTIONBABRD1.HEIGHT ؛
نهاية
نهاية؛
الإجراءات trpform.ChildBand1beforePrint (المرسل: tqrcustomband ؛ var printband: منطقية)
يبدأ
الشكل 7. الرهانة: = childband1.hight ؛
الشكل 8. HIEGH: = childband1.hight ؛
الشكل 9.hight: = childband1.hight ؛
نهاية؛
يجب تحديد BH في قسم التعريف المتغير: var BH: Shortint = 0 ؛
يتسق ارتفاع عدة أجزاء TQRSHAPE مع أجزاء TQRBAND ، مما يجعل الخطوط العمودية طباعة بدقة. إذا تم ضبط ارتفاع مكون TQRBAND أثناء مرحلة التصميم ، فلن يكون هناك كسر خط رأسي أو طول مفرط.
在DetailBand1的BeforePrint事件中用PrintBand进行控制,可使每个设备大类名称只需打印一次,而不是每个型号都对应打印一次大类名称。 Because the values of the dlbh field are greater than 0, the initial value of bh is set to 0 so that it is different from the values of the dlbh field of any record to ensure that the first major class name is printed . هذا ينشئ تقرير بيانات يستخرج البيانات من جداول بيانات متعددة ولديه خطوط جدول.
ملاحظة: ملف المشروع في هذا المثال هو sbgl.dpr ، وملفات البرنامج الأصلية هي main.pas و sbrep.pas. في الدليل D:/SB.