![]() |
|
الدرس الرابع والعشرون - تقارير المصانع والأنواع - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة بناء برنامج لإدارة السوبر ماركت من الألف إلى الياء (http://vb4arb.com/vb/forumdisplay.php?fid=128) +---- الموضوع : الدرس الرابع والعشرون - تقارير المصانع والأنواع (/showthread.php?tid=5712) |
الدرس الرابع والعشرون - تقارير المصانع والأنواع - RaggiTech - 15-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته . تقارير المصانع والأنواع : هناك الكثير مما يمكن أن تقدمه كتقرير لنوع أو مصنع ، لكننا لن نتوسع كثيراً بل كل ما سوف نعرضه هو منتجات المصنع والنوع . كل ما نحتاج إليه لتصميم هذا الفورم هو : أداة مربع تحرير وسرد Combo ، وثلاث مربعات عناوين Label لعرض اسم النوع أو المصنع ، عدد البضائع تحته ، وحالته ( محذوف - غير محذوف ) . نحتاج أيضاً في كلا الفورمين إلى جدول MSFlexGrid لنعرض فيه البضائع تحت هذا المصنع أو ذاك النوع ، وأخيراً زر أمر نكتب فيها Unload Me وذلك للاغلاق .
ولنضبط خاصية MDIChild لكلا الفورمين بحيث تصبح True ، ونسميهما Frm_Report2 و Frm_Report3 على التوالي . والآن سنبدا في كتابة الأكواد ، ونبدأ بحدث Form_Load لكلا الفورمين . في هذا الحدث سوف نضبط احداثيات الموقع كما تعودنا مع كل فورم ، ومن ثم نعبئ القائمة بالموردين أو بالمصانع : كود : [align=right]Me.Width = 4800مع ملاحظة أنه في الفورم الثالث الخاص بالمصانع سوف نستخدم T3 بدلاً من T2 .
والآن سنقوم بعمل حدث Flex خاص بتكوين الجدول ، والفرق بين الفورمين في هذا التكوين أننا في الأول نضع معلومة ( مصنع البضاعة ) دون النوع ، والعكس في الفورم الثاني : كود : [align=right]Private Sub Flex()وأخيراً نقوم بعمل الحدث Combo1_Click والذي يطلق عند اختيار المستخدم لنوع أو مصنع ما .
في البداية نقوم بعمل جملة الاستعلام والتي ستكون في حالة المصانع : كود : [align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number and tb_factory.name='" & Combo1.Text & "'")
وسنغير شرط البحث من Tb_Factory.name إلى Tb_Category في حالة الأنواع . والآن سنختبر شرط وجود سجلات ، فإن لم يكن هناك أي بضائع تحت هذا النوع-المصنع : كود : [align=right]If T4.RecordCount = 0 Thenبالرغم من عدم وجود سجلات سنضبط بعض الخصائص ، كما سنستدعي الحدث Flex والذي يكون الجدول دون أي صفوف .
لاحقاً لن يكتمل التنفيذ إلا في حالة وجود سجلات ، حيث نقوم بالانتقال للسجل الأخير ثم إلى الأول وذلك للتحديث : كود : [align=right]T4.MoveLastثم نضبط مجموعة من المعلومات المتعلقة بهذا النوع ... لاحظ الأمر التالي :
كود : [align=right]Lbl_name = "اسم المصنع : " & Combo1.Textوالآن ... لماذا في حالة وجود بضائع تحت النوع أو المصنع تأكدنا من الحالة ( محذوف أم غير ذلك ) ، أما في حالة عدم وجود بضائع فإننا نضع مباشرة ( عادي ) ؟؟؟ ذلك انه لو كان محذوف ولا توجد تحته بضائع لكان قد تم حذفه سابقاً .
بعد ذلك نقوم باظهار فورم الانتظار ونضبط خصائصة كما أسلفنا شرحه : كود : [align=right]Frm_Wait.Showومن ثم نبدأ في وضع البيانات في أماكنها الصحيحة :
كود : [align=right]For i = 0 To T4.RecordCount - 1لاحقاً نقوم بعمل Sort ترتيب للجدول مع اعادة الترتيب كما سبق :
كود : [align=right]MSFlexGrid1.Col = 2أخيراً نغلق قاعدة البيانات ، ونخفي فورم الانتظار :
كود : [align=right]T4.Closeوالله الموفق ...
والسلام عليكم ورحمة الله وبركاته . |