15-10-12, 07:54 AM
ترتيب البضائع في الجدول .
بالتأكيد قد مر بك هذان الأمران خلال الدروس سابقاً :
بالتأكيد قد مر بك هذان الأمران خلال الدروس سابقاً :
كود :
[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 .
قم بذلك وشاهد النتيجة ، ستجد ظهور صف فارغ على اليمين من الجدول .
سنغير الآن من اسم عمود الرقم ليصبح ( الرقم ) فيما يصبح العمود الجديد ( ت ) .
لاحظ أننا لن نقوم خلال الدوران بعملية تعبئه هذا العمود بالأرقام ، بل إن ذلك سوف يتم بعد الانتهاء من ترتيبها ، وإلا فلن نستفيد شيئاً - جرب وضعهما سوية وراقب ما يحدث - .
ولذلك نضع الكود التالي بعد الترتيب :
ولكن ربما تكون قد لاحظت ان الأرقام لم تعد مرتبة ، هل هذا صحيح ؟
حل هذه المشكلة أن نضع عداداً جديداً كلياً وصفاً جديداً آخراً يحتوي على التسلسل غير الرقم ، فلنر كيف نقوم بذلك .
أولاً قم بزيادة عدد الأعمدة بمقدار عمود واحد ... أيضاً قم بتحويل رقم كل عمود إلى الرقم + 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 في البداية :
هل تتذكر كيف قمنا بفتح قاعدة 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 إلى
الآن لا تنس أن تقوم بتحويل كل 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 بنهاية هذه الدالة .
يتبع ...
يتبع ...
