15-10-12, 08:30 AM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
تقارير البضائع .
سنبدأ بإذن الله في هذا الدرس في عمل قائمة التقارير ، وسنقوم تحديداً بعمل تقارير البضائع ، وسنحاول جاهدين من خلال هذا الدرس تطبيق مفهوم المصفوفات ( مصفوفات الأدوات ) والتي نتعامل معها من خلال خاصية Index وسننوه كلما سنحت الفرصة عن كمية الأكواد التي تم اختصارها اعتماداً على المصفوفات .
وسنبدأ في البداية بتصميم الفورم .
فعن محتويات الفورم فنحتاج إلى قائمة نعرض فيها البضائع ، وأداتي اختيار لتحديد نوع التقرير ( شامل أو بين تاريخين ) ، وبناء عليه سنضع اثنين من أداة MaskedEditBox .
سنضع أيضاً زر ( تنفيذ ) لتنفيذ التقرير ، وزر اغلاق للفورم ، كما سنضع أداتي MsFlexGeid ولكن لهما نفس الاسم ، ولها Index يساوي 0 أو 1 . وتختص بعرض عمليات البيع والشراء لهذه البضاعة .
ونضع أيضاً خمس مربعات عناوين Labels لنضع فيها معلومات حول البضاعة المختارة في التقرير ( الاسم - المصنع - النوع - الكمية - السعر ) .
فيما سؤجل عمليات الاحصائيات إلى درس لاحق إن شاء الله .
والآن انتهى التصميم ، ولنبدء في كتابة الكود .
في الفورم الرئيسي لن يكون هناك سوى أمر التاكد من وجود بضائع ، ومن ثم معرفة Index القائمة وبناء عليه نظهر الفورم وذلك بالشكل التالي :
السلام عليكم ورحمة الله وبركاته .
تقارير البضائع .
سنبدأ بإذن الله في هذا الدرس في عمل قائمة التقارير ، وسنقوم تحديداً بعمل تقارير البضائع ، وسنحاول جاهدين من خلال هذا الدرس تطبيق مفهوم المصفوفات ( مصفوفات الأدوات ) والتي نتعامل معها من خلال خاصية Index وسننوه كلما سنحت الفرصة عن كمية الأكواد التي تم اختصارها اعتماداً على المصفوفات .
وسنبدأ في البداية بتصميم الفورم .
فعن محتويات الفورم فنحتاج إلى قائمة نعرض فيها البضائع ، وأداتي اختيار لتحديد نوع التقرير ( شامل أو بين تاريخين ) ، وبناء عليه سنضع اثنين من أداة MaskedEditBox .
سنضع أيضاً زر ( تنفيذ ) لتنفيذ التقرير ، وزر اغلاق للفورم ، كما سنضع أداتي MsFlexGeid ولكن لهما نفس الاسم ، ولها Index يساوي 0 أو 1 . وتختص بعرض عمليات البيع والشراء لهذه البضاعة .
ونضع أيضاً خمس مربعات عناوين Labels لنضع فيها معلومات حول البضاعة المختارة في التقرير ( الاسم - المصنع - النوع - الكمية - السعر ) .
فيما سؤجل عمليات الاحصائيات إلى درس لاحق إن شاء الله .
والآن انتهى التصميم ، ولنبدء في كتابة الكود .
في الفورم الرئيسي لن يكون هناك سوى أمر التاكد من وجود بضائع ، ومن ثم معرفة Index القائمة وبناء عليه نظهر الفورم وذلك بالشكل التالي :
كود :
[align=right]If T1.RecordCount = 0 Then
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"
Exit Sub
End If
Select Case Index
Case 0
Frm_Report1.Show
End Select[/align]
أما في حدث
Form_Load للفورم الخاص بالتقرير فسنضبط أولاً خصائص الارتفاع :
كود :
[align=right]Me.Width = 4800
Me.Height = 6615
Me.Left = ((MDIForm1.Width - Me.Width) / 2)
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40
Me.Show[/align]
ثم نحدد تاريخ اليوم لنضعه في مربعي
MaskEditBox :
كود :
[align=right]Dim Myday, Mymonth, Myyear
Myday = Day(Now)
If Len(Myday) = 1 Then Myday = 0 & Myday
Mymonth = Month(Now)
If Len(Mymonth) = 1 Then Mymonth = 0 & Mymonth
Myyear = Year(Now)
MaskEdBox1.Text = Myday & "/" & Mymonth & "/" & Myyear
MaskEdBox2.Text = MaskEdBox1.Text[/align]
ومن ثم نملئ القائمة بالبضائع الحالية :
كود :
[align=right]Combo1.Clear
T1.MoveFirst
For i = 0 To T1.RecordCount - 1
Combo1.AddItem T1!Name
T1.MoveNext
Next i[/align]
وأخيراً نجعل
Option1 محدداً - لم نضبطه وقت التصميم لغرض ما سنشرحه لاحقاً - ، ومن ثم نحدد العنصر الأول في القائمة ، ونطلق زر التنفيذ ، حيث أن تقريراً عن البضاعة الأولى سيكون هو الموجود بصورة افتراضية :
كود :
[align=right]Option1.Value = True
Combo1.ListIndex = 0
Command2.Value = True[/align]
والآن لنر لماذا ضبطنا Option1 وقت التصميم ، ذلك أننا نريد في حالة اراد المستخدم تقريراً شاملاً أن لا نعطيه التحكم في مربعي التاريخ ، ونقوم بذلك عبر خاصية Click لأزرار الاختيار بالشكل التالي :
كود :
[align=right]Private Sub Option1_Click()
MaskEdBox1.Enabled = False
MaskEdBox2.Enabled = False
End Sub[/align]
و
كود :
[align=right]Private Sub Option2_Click()
MaskEdBox1.Enabled = True
MaskEdBox2.Enabled = True
End Sub[/align]
*** ويمكن ايضاً الاستعاضة عن OptionButton باستخدام CheckBox .
والآن سنضيف متغيران لمعرفة عدد سجلات البيع والشراء ، ولأننا نتعامل مع مصفوفة فسنكتب الأمر التالي في قسم التصاريح Genral :
Dim MyCnt(1
والآن سنضيف متغيران لمعرفة عدد سجلات البيع والشراء ، ولأننا نتعامل مع مصفوفة فسنكتب الأمر التالي في قسم التصاريح Genral :
Dim MyCnt(1
)
يتبع ...
مما يعني أن لدينا متغيرات MyCnt(0) و MyCnt(1)
والآن سنبرمج أوامر Command2 وهو زر تنفيذ التقرير .
في البداية سنقوم بعمل استعلام عن اسم هذه البضاعة لمعرفة المعلومات المطلوبة عنها ووضعها في أماكنها :
والآن سنبرمج أوامر Command2 وهو زر تنفيذ التقرير .
في البداية سنقوم بعمل استعلام عن اسم هذه البضاعة لمعرفة المعلومات المطلوبة عنها ووضعها في أماكنها :
كود :
[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.name='" & Combo1.Text & "'"
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
Lbl_name = "اسم البضاعة : " & T4.Fields("tb_product.name")
lbl_cate = "النوع : " & T4.Fields("tb_category.name")
lbl_fact = "المصنع : " & T4.Fields("tb_factory.name")
lbl_prc = "السعر : " & T4.Fields("price")
lbl_cnt = "الكمية الموجودة : " & T4.Fields("count")
Dim num, i
num = T4.Fields("tb_product.Number")
T4.Close[/align]
وقد سبق شرح جملة الاستعلام أكثر من مرة .
يتبع ...