تعد التقارير ، باعتبارها واحدة من أشكال الإخراج النموذجية لمعلومات النظام ، وظيفة مهمة لمعظم أنظمة التطبيقات غير العادية والمهمة لأنظمة MIS. سواء كان لديها وظيفة طباعة جيدة غالبًا ما ترتبط بنجاح أو فشل النظام إلى حد ما. لدى Delphi وظائف تقارير قوية ، لكن وظائف الإبلاغ الخاصة بها لا يمكن أن تلبي احتياجاتنا. لذلك ، أطلق العديد من خبراء Delphi على التوالي العديد من عناصر التحكم في التقارير الممتازة (وحدات) كمكملات للمعلومات السريعة ، من بينها FastReport ممثل.
يجمع FastReport بين مزايا QuickReport و ReportBuilder ، فهي صغيرة الحجم وسريعة في السرعة ، ولها كل شفرة المصدر. عند تطوير نظام لعلاج المخدرات ، نجح المؤلف في إنتاج تقرير قائم على النماذج كان تمامًا مثل نموذج قبول المخدرات وتخصيص الدواء باستخدام FastReport 2.51. اسمحوا لي أن أقدمها لأصدقائي أدناه.
FastReport2.51 عنوان التنزيل: http // www.skycn.com/soft/8805.html.
تحليل متطلبات التقرير
يعرف الأصدقاء العاملين في المستشفى أنه عندما يتم وضع الأدوية في المستودع ، يجب عليهم ملء نموذج قبول المخدرات ، وعندما يتلقى موظفو الصيدلة الأدوية ، يجب عليهم ملء نموذج تخصيص المخدرات. لا يتم تخصيص نموذج قبول المخدرات ونموذج التخصيص الذي يستخدمه المؤلف ، ولكن نموذج قبول المنتج العام ونموذج التخصيص. على عكس التقارير المستخدمة في المتاجر وأنظمة الاتصالات السلكية واللاسلكية ، فإن مظهرها على شكل شريط ، ويمكن ملء كل ورقة بخمس أنواع من الأدوية ، بما في ذلك وحدة التسليم ، ورقم التسليم ، وحدة التسليم ، اسم المنتج ، المواصفات ، الوحدة ، السعر ، كمية ، وما إلى ذلك ، نمط واحد ومجموعة ثلاثية.
خلاصة القول ، يمكننا تلخيص متطلبات تصميم التقارير على النحو التالي:
1. الحجم: طوله 21 سم وعرضه 10 سم ؛
2. يمكن لكل منها طباعة 5 أنواع من الأدوية ، ويتم العثور على المجموع الفرعي لهذه الصفحة تحت النموذج.
3. عندما يكون هناك أكثر من 5 أدوية ، ابدأ في طباعة شكل جديد.
تصميم التقرير
1. افتح مصمم تقرير FastReport وتصميم "نموذج قبول المخدرات" وفقًا للشكل 1.
(الصورة كبيرة ، يرجى سحب شريط التمرير لمشاهدة)
بالإضافة إلى ذلك ، تمثل المتغيرات Inhj و outhj و CaHJ و Linecount "Total in store" و "Total Out Store" و "Total Actor" و "Total Data Dows" ، وسيتم تعيين هذه المتغيرات في القيم في برنامج.
2. اضغط على F11 لاستدعاء عارض الكائن ، وحدد Band2 ، وأدخل الكود التالي في حدث OnBeforPrint الخاص به:
يبدأ
إذا
يبدأ
showbandchild1
showbandband1
نهاية
نهاية
في الكود ، استخدم الوظيفة المدمجة line# من FastReport للحصول على رقم السطر الحالي.
3. حدد child3 وأدخل الكود التالي في حدث OnBeforPrint:
يبدأ
lin = linecount // تعيين قيمة لهذا المتغير في البرنامج
بينما lin mod 5 <> 0 تفعل
يبدأ
showbandchild2 // طباعة الخطوط الفارغة
inclin
نهاية
showbandchild3
نهاية
الغرض من هذا الرمز هو طباعة الأسطر الفارغة إذا لم يكن سطر البيانات الأخير كافيًا لعرض نموذج.
4. حدد Band3 وأدخل الكود التالي في حدث OnBeforPrint:
يبدأ
showbandchild1 // عند الوصول إلى التقرير ، يتم عرض المحتوى في أسفل النموذج
نهاية
5. حفظ التقرير والعودة إلى بيئة تطوير دلفي.
جزء البرمجة دلفي
في جزء البرمجة Delphi ، نكممل بشكل أساسي تمرير المعلمات المطلوبة للتقرير.
خاص
line1line2integer // حفظ رقم السطر
inportxjintemp // إدخال نطاق فرعي في المستودع ، واضحة بعد كل 5 أسطر ، نفس الشيء أدناه
outxjoutemp // الإخراج الفرعي
cajiaxjcatempreal // subtotal من فرق السعر
فيما يلي قائمة من الرموز للعديد من العمليات الرئيسية.
// عملية دمج بيانات نموذج واحد
الإجراء tinputform.frdbdataset1nextsender TOBJECT
var
RESOUNTETEGER
يبدأ
إعادة فرز الأصوات = Adoruku.RecordCount
incline1 // يتم إرسال هذا المتغير إلى ملف التقرير للتحكم في طباعة الخطوط الفارغة
Incline2 // يتحكم هذا المتغير في القيمة الفرعية
إذا لم يكن Adoruku.eof ثم
يبدأ
inputXJ = inputxj+adoruku.fieldbyname'Input المبلغ '
outxj = outxj+adoruku.fieldbyname'out deposit '.Asfloat
cajiaxj = cajiaxj+adorukujxcj.asfloat
نهاية
// امسح القيمة الفرعية بعد كل 5 صفوف
إذا
يبدأ
intemp = inputXJ
outemp = outxj
catemp = cajiaxj
inputXJ = 0
outxj = 0
Cajiaxj = 0
نهاية
// تعيين قيمة للمتغير عندما يصل إلى نهاية مجموعة البيانات
إذا كان Adoruku.eof ثم
يبدأ
intemp = inputXJ
outemp = outxj
catemp = cajiaxj
نهاية
نهاية
تم تصحيح البرنامج أعلاه وتم تمريره في Windows 2000/XP+Delphi6.0. حتى الآن ، أكملنا تصميم نموذج قبول المخدرات ، ويمكن أن تشير تصميمات التقارير المماثلة الأخرى إلى العملية أعلاه. الشكل 2 هو تأثير المعاينة للتقرير الذي تم إنشاؤه عند تشغيل البرنامج.
(الصورة كبيرة ، يرجى سحب شريط التمرير لمشاهدة)