الدرس الثاني
في هذا الدرس سنحاول أن تعرف عن لمحة بسيطة في التحكم في التقرير من خلال البرمجة .
في الدرس السابق قمنا بعرض تقرير بأسماء العملاء المتعاملين مع المنشأة ، ولاحظنا في هذه التقرير أن بعض العملاء في السعودية وآخرين في مصر وبعضهم في لبيا وهكذا ، أي أن المنشأة تتعامل مع مجموعة من العملاء المنشرين في مجموعة من الدول وسنفرض الآن أننا نحتاج تقرير بأسماء العملاء في مصر فقط ، طبعا لن نقوم بتصميم تقرير جديد يحتوي علي العملاء في مصر ولكن سنستخدم نفس التقرير مع خاصية property من خواص الكائن Reportفي كريستال ريبورت يستخدم في تحديد البيانات المطلوب عرضها في التقرير وهي الخاصية :
RecordSelectionFormula
والآن إلي المشروع
1- قم بإنشاء مشروع جديد
2- كرر الخطوات من 3 إلي 6 في المثال السابق لإضافة أدوات كريستال ريبورت المعتادة وربط التقرير بمشروعك .ثم قم بتشغيل المشروع لمشاهدة التقرير
3- أضغط علي النموذج Form2 مرتين لفتح محرر الكود لفيجوال بيسك
4- ستجد الكود التالي في إجراء تحميل النموذج Sub Form_Load
Private Sub Form_Load() Screen.MousePointer = vbHourglass CRViewer1.ReportSource = Report CRViewer1.ViewReport Screen.MousePointer = vbDefault End Sub
وطبعا شاهدنا هذا الكود في المثال السابق وتكرره هنا للتدريب فقط علي مشاهدة الكود والتعود عليه
أضف السطر التالي إلي هذا الإجراء
Report.RecordSelectionFormula = "{ctm.ct3} = 'مصر' "
بحيث يصبح هذا الإجراء كما يلي:
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
Report.RecordSelectionFormula = "{ctm.ct3} = 'مصر' "
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
End Sub
قم الآن بالضغط F5 لتشغيل المشروع ستجد أن التقرير أصبح يحتوي علي العملاء المصريين فقط
لاحظ كيف تم كتابة كلمة مصر في التقرير والعلامات التي حولها ، أي الصيغة التي تم بها تمرير اسم الدولة إلي الخاصية .
طبعا ليست هذه وسيلة عملية فلنفرض مثلا أننا نريد طباعة تقرير بالعملاء في السعودية مثلا ، حسب هذا الأسلوب يجب أن نفتح كود المصدر ونغير اسم الدولة الموجود في هذا السطر من مصر إلي السعودية ثم نقوم بتشغيل البرنامج ، وطبعا لن يتوفر للمستخدم كود المصدر حتى يقوم بهذا التعديل وإن توفر له الكود فقد لا يعرف ماذا يفعل بهذا الكود لطباعة مثل هذا التقرير . لذلك لا بد من إيجاد طريق أخرى ليصبح مثل هذا المشروع عمليا ..ولكي يصبح مشروعك هذا عمليا عليك أتباع الأتي :
1- عرض أسماء الدول الموجودة في الجدول في ComboBox مثلا ليقوم العميل باختيار الدولة منه
2- تقوم بتمرير ما اختاره المستخدم إلي الخاصية RecordSelectionFormula لإعداد التقرير
3- ثم تطبع التقرير بعد ذلك
ولكن كيف يتم ذلك برمجيا هذا ما سنعرفه في الدرس القادم وسيكون موعده يوم الخميس القادم بإذن الله


