major

كريستال ريبورت ..... الدرس الثاني عشر

11 ردود في هذا الموضوع

قبل أن أبدء هذه الحلقة أوجهة اعتذاري للأخوة المتابعين لهذه الحلقات عن التأخير في رفع الحلقات ، وذلك لظروف شخصيه تتعلق بالوقت ، ولقد رأيت أن أرفع هذه الحلقة بدوت شرح مفصل نظرا لضيق الوقت لإعداد شرح مفصل لها ، وسأقوم بذلك في وقت لاحق بإذن الله ، ولكن هذا لا يمنع من أنني سأقدم شرح مختصر هنا ، وأعتذر مرة أخري عن هذا التأخير وهذا الإيجاز في الشرح .

موضوع حلقة اليوم يتعلق بتصميم التقارير باستخدام تقنية الملفات الاحتياطية

من الأخطاء الشائعة بين المبرمجين هو استخدام قاعدة البيانات الأصلية في تصميم وطباعة التقرير، وتعتبر عملية الطباعة من أبطأ عمليات الكومبيوتر مما يؤدي إلي بطأ العمليات الأخرى في البرنامج أثناء عملية الطباعة خصوصا في بيئة تعدد المستخدمين ، في البرامج التجارية جري العرف علي استخدام الملفات الاحتياطية في الطباعة ، حيث يتم نسخ البيانات المراد طباعتها إلي ملف احتياطي واستخدام هذا الملف في طباعة التقرير ، وتعطيك هذه الطريقة إذا أتقنتها مع عبارات SQL وبعض الخيال مرونة كبيرة في تصميم التقرير، كما تعفيك من معظم التعقيدات في برنامج كريستال ريبورت علاوة علي القدرة علي تصميم تقارير قوية قد لا تستطيع تصميمها بسهولة باستخدام كريستال ريبورت ، وفيها يتحول كريستال ريبورت إلي أداة تنسيق وطباعة فقط . حيث أننا سنقوم بكل شئ من ربط للجداول واستخلاص البيانات المطلوب طباعتها ، وما علي المبرمج في كريستال ريبورت سوي تنسيق هذه البيانات بالطريقة التي يراها مناسبة ، ثم طباعة التقرير وتتلخص هذه الطريقة في الخطوات التالية

1- إنشاء قاعدة بيانات خالية من الجدول ووضعها في الفهرس الرئيسي للبرنامج وفي المثال المرفق هي dbprint.mdb

2- من خلال الكود يتم إنشاء فهرس احتياطي علي القرص C (أي لا تقوم بإنشائه يدويا)، وقد اخترت القرص C بالذات لأنه لا يخلو جهاز كومبيوتر من هذا القرص ، قد لا يحتوي الجهاز علي أقراص أخري ولكن بالضرورة سيحتوي علي القرص C

3- من خلال الكود البر مجي يتم نسخ قاعدة البيانات Dbprin.mdb إلي هذا الفهرس أي الفهرس الاحتياطي

4- من خلال الكود أيضا يتم نسخ البيانات المطلوب طباعتها إلي قاعدة البيانات هذه

5- يتم تصميم التقرير باستخدام قاعدة البيانات هذه من خلال كريستال ريبورت

6- العودة مرة أخري إلي البرنامج لكتابة كود عرض التقرير وطباعته

المثال المرفق لطباعة تقرير بسيط بقائمة العملاء من دولة معينة ، وكل الكود الخاص بالحلقة موجود في زر الطباعة ، وفي الحلقة القادمة سنستخدم هذه الطريقة في تصميم فاتورة مبيعات مثل الفاتورة التي تصدر من الشركات.

ملحوظة:

1- تم تعديل قاعدة البيانات بدء من هذه الحلقة بحيث أصبح أسم الحقل يعبر عن محتوياته ، وبذلك أصبحت قاعدة البيانات قاعدة بيانات نموذجية لنظام متكامل للمخازن .ويمكن تمثيل العلاقات فيها بدون مشاكل .

2- الروتين الموجود في الحدث Click لزر الطباعة موثق باللغة العربية ويحتوي علي خطوات هذه العملية

3- لاحظ كيف استخدمت العبارة Into في جملة Sql لنسخ البيانات إلي قاعدة البيانات الاحتياطية .

creatTemp.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك على سلسلة الدروس الرائعه جدا .. واقترح عليك بشده أن تقوم بوضعها في كتاب إلكتروني عندما تنتهي منها ...

بالتوفيق لك وللجميع هنا

تحياتي لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يعطيك الف عافية اخي على الدروس الاكثر من رائعة

اخي عندي سؤال ضروري جدا

انا لو عايز اعمل تقري يضم اكثر من جدول

كيف يعني

مثلا يعني لو بدي اعمل كشف درجات للطلاب لاكثر من فصل دراسي

باول التقرير حاكتب الاسم والعمر وجميع البيانات الشخصية

وبعدها يكتبلي الفصل الاول ويعمل جدول يضم

اسم الطالب اسم المادة العلامة المعدل الفصلي

وبعدها كمان جدول للفصل الثاني

اسم الطالب اسم المادة العلامة المعدل الفصلي

وهكذا

يعني الفكرة اني احط اكثر من جدول بالتقرير

ارجو ان تكون الفكرة وصلت

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك وزادك من نعيمه وبارك فى وقتك حتى تفيدنا أكثر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

في المرفقات يوجد شرح مبسط للمثال السابق ، فقد وجدت ان عملية إنشاء التقرير لأول مرة غامضة بعض الشئ فقمت بإعداد هذا الشرح المبسط لهذه العملية

Major

createtemp1.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الأخ smart4463

رجاء إرفلق طلبك بمشروع كمثال يوضح طلبك حتى يمكن الرد علية بإذن الله

Major

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يعطيك العافية اخي major

انا الحمد لله وصلت للجواب

وما بدي اغلبك

بس فيه سؤال بالدرس هدا

هالقيت لما اختار السعودية مثلا

بفتح التقرير تمام

بس لما اطفي صفحة التقرير واختار دولة تانية او السعودية نفسها بتظهر رسالة خطا

انه حركة ممنوعة

واعتقد انو الخطا لما بنسخ الداتا بيز وهيا مفتوحة

ارجو التعديل على المثال لاداء الوظيفة

وارجو منك ما تتاخر علينا بالدروس الجديدة

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الأخ smart4463

لقد قمت بتجربة المثال مرة أخري بعد ردك ولم تصدر رسالة الخطأ ، أعتقد أنك حاولت إنشاء مثال بمعرفتك وقمت بلإعلان عن نسخة التقرير علي مستوي النموذج ، ولكن في هذه الحالة يجب الإعلان عن التقرير علي مستوي الإجراء كما هو موضح في المثال المرفق

Major

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الأخ smart4463

يوجد خطأ فعلا في النسخة المرفوعة إلي المنتدي حيث ينقصها سطر في كود إغلاق النموذج Form2

ضع السطر التالي في الإجراء Form_Unload للنموذج Form2 بحيث يصبح كما في الكود التالي

Private Sub Form_Unload(Cancel As Integer)
If Not (Report Is Nothing) Then Set Report = Nothing
End Sub

وأعتذر عن هذا الخطأ وأرجو من الجميع تداركة ، يبدو أن القلق من تأخير رفع هذا الدرس أحث هذا الخطأ

Major

تم تعديل بواسطه major
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يعطيك الف عافية أخي major

المثال زبط مية المية

يلا اخي شدلنا حيك احنا بنستنى الدرس الجديد

معلش احنا دايما بنغلبك

عندي سؤال صغير اخي

كنت سالته بس بشاركة تانية وبطريقة غير مباشرة

بس إن شاء الله الاقي الجواب عندك

عندي داتا بيز اكسيس وفيها Stored Procedure

وهي عبارة عن جملة Sql بس محتاجة باراماتر

ولما جيت اعمللها تقيرير ضفتها عندي فتحتلي رسالة بتحكيلي حدد اسم ال discrete value

السؤال

كيف بدي اممر قيمة من خلال الفورم بالفجوال للتقرير هدا

يعني مثلا بدي التقرير يعرضلي جميع المدن الخاصة بالدولة الي انا حامررها للقرير من خلال الفورم

ارجو تكون الفكرة وصلت

رجاء اخي ما تطلب مني مثال

لانه هدا من شرح للمشكلة الي موجودة عندي بالبرنامج تاعي

وهو كبير وانا ما بقدر ارفقه هون

تحياتي الك اخي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الاخ Major

السلام عليكم ورحمة الله وبركاته

جزاك الله خيرا على هذا المجهود وجعله فى ميزان حسناتك

و اسف لعدم ممتابعتى فى الفتلرة الماضية بسبب بعض المشاغل

واود ان اضم صوتى الى صوت الاخ النبهاني فى وضع السلسلة فى كتاب موحد :rolleyes:

و شكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .