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


بما أننا نريد أن نعرض بيانات أي حقل بمجرد النقر عليه ، فإننا نحتاج بمجرد النقر عليه للحصول على رقمه ، ولنر سوية هذا الامر .
عندما انقر على أي خلية فإن خاصيتي Col و Row يتم ضبطهما طبقاً للوضع الجديد ، وبهذه الطريقة تستطيع الحصول على رقم الصف والعمود بعد أي نقرة باضافة الأمر التالي في حدث Click للجدول :

MsgBox "Row : " & MSFlexGrid1.Row & " Col : " & MSFlexGrid1.Col

وبنفس الطريقة يمكننا الحصول على محتويات الخلية التي قمنا بالنقر عليها بواسطة أمر كهذا :



كود :
[align=right]MsgBox MSFlexGrid1.Text[/align]
ولكننا لا نريد محتويات هذه الخلية ، بل إننا نحتاج محتويات خلية الرقم في نفس الصف للبحث عنها وعرضها ... لذا فإننا نقوم بالتحول إلى خلية الرقم :



كود :
[align=right]MSFlexGrid1.Col = 1
MsgBox MSFlexGrid1.Text[/align]

ستجد أن الأمر السابق يعطيك رقم الصف بغض النظر عن مكان النقر .
وهذا الرقم هو ما سوف نستخدمه في البحث .


سنبدأ الآن بكتابة جملة استعلام نبحث من خلالها عن السجل الذي له هذا الرقم ، تذكر أننا سوف نقوم بذلك من خلال استعلام مزدوج لأننا نريد معرفة اسم المصنع والنوع وليس أرقامهما ، لذلك سوف يكون مثل الاستعلام في الدرس السابق لكن مع اضافة شرط آخر ل Where بحيث يصبح and Number = MSFlexGrid1.Text حيث أننا لا نريد سوى سجل واحد فقط .



كود :
[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_product.number =" & MSFlexGrid1.Text & ""[/align]

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



كود :
[align=right]If T4.RecordCount <> 0 Then
T4.MoveFirst

Text7.Text = T4.Fields("tb_product.Number")
Text1.Text = T4.Fields("tb_product.name")
Text2.Text = T4.Fields("tb_category.name")
Text3.Text = T4.Fields("tb_factory.name")
Text4.Text = T4!price
Text5.Text = T4.Fields("Count")
Text6.Text = T4!Box_Count[/align]


وماذا أيضاً ... نحتاج لأن تشير القائمة إلى البضاعة الحالية ، وبما أننا نتعامل في القائمة مع Tb_Product.name فسيصبح الأمر بالشكل التالي :



كود :
[align=right]Combo1.Text = T4!.Fields("tb_product.name")[/align]
ولكن بما أننا سنستخدم هذا الأمر لاحقاً فسوف نضعه في اجراء جديد ونسميه ShowData ... وبذلك يصبح الأمر بالشكل التالي :



كود :
[align=right]Private Sub ShowData()
Text7.Text = T4.Fields("tb_product.Number")
Text1.Text = T4.Fields("tb_product.name")
Text2.Text = T4.Fields("tb_category.name")
Text3.Text = T4.Fields("tb_factory.name")
Text4.Text = T4!price
Text5.Text = T4.Fields("Count")
Text6.Text = T4!Box_Count
End Sub[/align]
أخيراً لا تنس أن تغلق قاعدة البيانات T4 .


ثمة أمر آخر ، وهو أننا نريد أيضاً عند اختيار اسم من القائمة أن يظهر في مربعات النصوص ، لذلك بنفس الطريقة السابقة في الاستعلام سوى أننا لن نبحث بدلالة الرقم بل بدلالة الاسم ، ولذا سنضع الاسم بين علامتي تنصيص مفردة ' ' .



كود :
[align=right]Private Sub Combo1_Click()
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_product.name ='" & Combo1.Text & "'"
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)

If T4.RecordCount <> 0 Then
T4.MoveFirst
Call ShowData
End If

T4.Close
End Sub[/align]

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



كود :
[align=right]Combo1.ListIndex = 0[/align]
وبالتالي سوف ينفذ حدث Click للقائمة تلقائياً .


حل آخر لنقل المعلومات إلى مربعات النص عند النقر على الجدول .

بالتأكيد أنت لا زلت تتذكر الطريقة التي عرضنا فيها البيانات عند النقر على الجدول ، وكانت اجمالاً بالشكل التالي :

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



كود :
[align=right]MSFlexGrid1.Col = 1[/align]
لكننا في نفس الوقت نستطيع الانتقال إلى العمود الثاني والثالث والرابع وحتى الأخير ووضع المعلومات بهم في مربعات النصوص ... انظر الكود التالي :



كود :
[align=right]MSFlexGrid1.Col = 1
Text7.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 2
Text1.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 3
Text2.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 4
Text3.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 5
Text4.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 6
Text5.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 7
Text6.Text = MSFlexGrid1.Text[/align]
هل يبدو الأمر سهلاً ؟ عموماً لك مطلق الحرية في استخدام ما تراه مناسباً وقد أرفقت الكودين في البرنامج لاختيار ما تريد .

وماذا بعد ؟ تخيل أن مربعات النصوص لدينا بها خاصية

Index تبدأ من 0 وتنتهي بـ 6 ولهم جميعاً اسم Text1 .

هل تستطيع تخيل مدى بساطة الكود السابق في هذه الحالة :



كود :
[align=right]For i = 0 To 7
MSFlexGrid1.Col = i + 1
Text1.Text(i) = MSFlexGrid1.Text
Next i[/align]
لكن هذا الأمر لن يناسبنا في هذه الشاشة لأننا قمنا بعمل مربعات النصوص Text1,Text2,......,Text7 . ولكننا سوف نتذكر ذلك في تصميم الشاشات القادمة .


سيتم ارفاق الملف بعد الدرس المقبل ...

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

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


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

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 13,820 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

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


يقوم بقرائة الموضوع: