تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس العاشر - تصميم شاشة عرض البضائع - العرض والتحديد
#2
ترتيب البضائع في الجدول .

بالتأكيد قد مر بك هذان الأمران خلال الدروس سابقاً :



كود :
[align=right]MSFlexGrid1.ColAlignment(0) = 5

MSFlexGrid1.Col = 6
MSFlexGrid1.Text = T1!Box_Count[/align]
ذكرت بهذين الامرين فقط لتدرك أننا حينما نريد تطبيق جميع خصائص التنسيق على هذه الأداة فإننا نستخدم أحد طريقتين - حسب الخاصية فإما إن نذكر اسم الأداة MSFlexGrid1 ثم الخاصية ، وأخيراً نضع رقم هذا العمود بين قوسين ، أو نذكر رقم العمود أو الصف - أو كليهما - ثم نطبق عليه هذه الخاصية وهو مثل خاصية Sort والتي تقوم بالترتيب ، لذا فلترتيب الحقول حسب عمود الاسم فإننا نكتب الكود التالي :



كود :
[align=right]MSFlexGrid1.Col = 1
MSFlexGrid1.Sort = 7[/align]
ومعنى الرقم 7 واضح لمن اطلع على الدرس على الرابط السابق ...

ولكن ربما تكون قد لاحظت ان الأرقام لم تعد مرتبة ، هل هذا صحيح ؟
حل هذه المشكلة أن نضع عداداً جديداً كلياً وصفاً جديداً آخراً يحتوي على التسلسل غير الرقم ، فلنر كيف نقوم بذلك .
أولاً قم بزيادة عدد الأعمدة بمقدار عمود واحد ... أيضاً قم بتحويل رقم كل عمود إلى الرقم + 1 .
قم بذلك وشاهد النتيجة ، ستجد ظهور صف فارغ على اليمين من الجدول .
سنغير الآن من اسم عمود الرقم ليصبح ( الرقم ) فيما يصبح العمود الجديد ( ت ) .

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


ولذلك نضع الكود التالي بعد الترتيب :



كود :
[align=right]MSFlexGrid1.Col = 0
For i = 0 To T1.RecordCount - 1
MSFlexGrid1.Row = i + 1
MSFlexGrid1.Text = i + 1
Next i[/align]
وضع أسماء الموردين والأنواع بدلاً من أرقامها .

لو لاحظت أننا نقوم بوضع الأرقام لأن هذا هو المخزن في قاعدة البيانات أو تحديداً في الجدول الذي نقوم بالقراءة منه .
ولذا فإننا نحتاج إلى البحث في جدولي الأنواع والموردين قبل وضع الناتج وذلك في الأسطر التالي من الكود :



كود :
[align=right]MSFlexGrid1.Col = 3
MSFlexGrid1.Text = T1!Category
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = T1!Factory[/align]
وسنرى الآن كيف نقوم بهذه المهمة .
هل تتذكر كيف قمنا بفتح قاعدة T1 في البداية :



كود :
[align=right]Set T1 = D1.OpenRecordset("Tb_Product", dbOpenTable)[/align]
لكننا لا نحتاج إلى فتحها بهذه الطريقة ، بل إننا نريد أن نقوم بفتح قاعدة بجملة استعلام للعلاقات التي بين الجداول ، لهذا الغرض سوف نستخدم T4 وذلك بالشكل التالي :



كود :
[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"
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)[/align]

تقوم جملة الاستعلام هذه باستخراج جميع المعلومات من الجداول الثلاثة مع دمج كل معلومات المصانع والأنواع جنباً إلى جنب مع معلومات البضائع ، ولتتكون لديك نظرة أكثر تركيزاً قم بتجربة هذه الجملة في Access .

وإذا كنت تود معرفة المزيدعن مثل هذه الجمل ، وكيف تمت كتابتها ، فبامكانك مراجعة الدروس الخاصة بجمل الاستعلام على هذا الرابط :

http://vb4arb.com/vb/forumdisplay.php?31


وسيوضع هذا الأمر في حدث Refresh_Me .

الآن لا تنس أن تقوم بتحويل كل T1 إلى T4 في جميع هذه النافذة .
والآن لنر أسماء لحقول مثل Number و Name فإننا عندما نضعها فأيهما نقصد ، هل تلك التي في جدول البضائع أم التي في جدول المصانع أم الأنواع ، لذا فإننا لا بد أن نذكر مكان الحقل قبل اسمه ، ومن أجل ذلك أيضاً فإننا نغير أسلوب العرض من T1!Name إلى



كود :
[align=right]T1.Fields("Tb_Product.name")[/align]
وكذا الأمر بالنسبة لحقل Number .

الهدف الأول من هذه العمليةهو عرض اسم المصنع والنوع بدلاً من رقمه ولذا سنحول أول كود ذكرناه في هذا الدرس إلى الشكل التالي :



كود :
[align=right]MSFlexGrid1.Col = 3
MSFlexGrid1.Text = T4.Fields("tb_category.name")
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = T4.Fields("tb_factory.name")[/align]
أيضاً لا تنس أن تغلق T4 بنهاية هذه الدالة .


يتبع ...
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس العاشر - تصميم شاشة عرض البضائع - العرض والتحديد - بواسطة Raggi Tech - 15-10-12, 07:54 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 13,819 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 4,308 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 4,341 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 5,308 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 4,192 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 3,883 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 5,769 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 6,607 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 4,735 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 4,040 15-10-12, 08:37 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم