قبل أن أبدء هذه الحلقة أوجهة اعتذاري للأخوة المتابعين لهذه الحلقات عن التأخير في رفع الحلقات ، وذلك لظروف شخصيه تتعلق بالوقت ، ولقد رأيت أن أرفع هذه الحلقة بدوت شرح مفصل نظرا لضيق الوقت لإعداد شرح مفصل لها ، وسأقوم بذلك في وقت لاحق بإذن الله ، ولكن هذا لا يمنع من أنني سأقدم شرح مختصر هنا ، وأعتذر مرة أخري عن هذا التأخير وهذا الإيجاز في الشرح .
موضوع حلقة اليوم يتعلق بتصميم التقارير باستخدام تقنية الملفات الاحتياطية
من الأخطاء الشائعة بين المبرمجين هو استخدام قاعدة البيانات الأصلية في تصميم وطباعة التقرير، وتعتبر عملية الطباعة من أبطأ عمليات الكومبيوتر مما يؤدي إلي بطأ العمليات الأخرى في البرنامج أثناء عملية الطباعة خصوصا في بيئة تعدد المستخدمين ، في البرامج التجارية جري العرف علي استخدام الملفات الاحتياطية في الطباعة ، حيث يتم نسخ البيانات المراد طباعتها إلي ملف احتياطي واستخدام هذا الملف في طباعة التقرير ، وتعطيك هذه الطريقة إذا أتقنتها مع عبارات SQL وبعض الخيال مرونة كبيرة في تصميم التقرير، كما تعفيك من معظم التعقيدات في برنامج كريستال ريبورت علاوة علي القدرة علي تصميم تقارير قوية قد لا تستطيع تصميمها بسهولة باستخدام كريستال ريبورت ، وفيها يتحول كريستال ريبورت إلي أداة تنسيق وطباعة فقط . حيث أننا سنقوم بكل شئ من ربط للجداول واستخلاص البيانات المطلوب طباعتها ، وما علي المبرمج في كريستال ريبورت سوي تنسيق هذه البيانات بالطريقة التي يراها مناسبة ، ثم طباعة التقرير وتتلخص هذه الطريقة في الخطوات التالية
1- إنشاء قاعدة بيانات خالية من الجدول ووضعها في الفهرس الرئيسي للبرنامج وفي المثال المرفق هي dbprint.mdb
2- من خلال الكود يتم إنشاء فهرس احتياطي علي القرص C (أي لا تقوم بإنشائه يدويا)، وقد اخترت القرص C بالذات لأنه لا يخلو جهاز كومبيوتر من هذا القرص ، قد لا يحتوي الجهاز علي أقراص أخري ولكن بالضرورة سيحتوي علي القرص C
3- من خلال الكود البر مجي يتم نسخ قاعدة البيانات Dbprin.mdb إلي هذا الفهرس أي الفهرس الاحتياطي
4- من خلال الكود أيضا يتم نسخ البيانات المطلوب طباعتها إلي قاعدة البيانات هذه
5- يتم تصميم التقرير باستخدام قاعدة البيانات هذه من خلال كريستال ريبورت
6- العودة مرة أخري إلي البرنامج لكتابة كود عرض التقرير وطباعته
المثال المرفق لطباعة تقرير بسيط بقائمة العملاء من دولة معينة ، وكل الكود الخاص بالحلقة موجود في زر الطباعة ، وفي الحلقة القادمة سنستخدم هذه الطريقة في تصميم فاتورة مبيعات مثل الفاتورة التي تصدر من الشركات.
ملحوظة:
1- تم تعديل قاعدة البيانات بدء من هذه الحلقة بحيث أصبح أسم الحقل يعبر عن محتوياته ، وبذلك أصبحت قاعدة البيانات قاعدة بيانات نموذجية لنظام متكامل للمخازن .ويمكن تمثيل العلاقات فيها بدون مشاكل .
2- الروتين الموجود في الحدث Click لزر الطباعة موثق باللغة العربية ويحتوي علي خطوات هذه العملية
3- لاحظ كيف استخدمت العبارة Into في جملة Sql لنسخ البيانات إلي قاعدة البيانات الاحتياطية .