15-10-12, 08:39 AM
كاتب المشاركة : أحمد جمال
التقارير بين تاريخين .
خلال هذا الدرس سوف نقوم بتطبيق التقرير بين تاريخين ، ولأنه لا يختلف كثيراً عن التقرير اليومي لذلك سنضعهم معاً في نفس الشاشة ، وسوف نسر التغييرات التي سنقوم بها من جراء هذه العملية .
أولاً : تغييرات في التصميم :
سنضيف اداة MaskEdBox2 لعرض التاريخ الثاني ، اضافة إلى Label2 يحتوي على كلمة ( إلى ) توضع بين التاريخين ، ونضبط Visible=False لهما ، فيما عدا ذلك لن نغير شيئاً حتى في أماكن الازار والخانات وغيرها .
ثانياً : تغييرات أوامر اظهار الشاشات :
سوف نخفي أولاً الشاشة Frm_Report4 لكي تعود إلى وضعها الطبيعي من حيث أماكن الأزرار وغيرها ( وضع التقرير اليومي ) .
بعد ذلك فيما لو كان النوع الثاني فإننا نظهر الاداتين السابقتين ، ونضبط احداثيات Command2 وهو زر التنفيذ من جديد ، وذلك بالشكل التالي :
خلال هذا الدرس سوف نقوم بتطبيق التقرير بين تاريخين ، ولأنه لا يختلف كثيراً عن التقرير اليومي لذلك سنضعهم معاً في نفس الشاشة ، وسوف نسر التغييرات التي سنقوم بها من جراء هذه العملية .
أولاً : تغييرات في التصميم :
سنضيف اداة MaskEdBox2 لعرض التاريخ الثاني ، اضافة إلى Label2 يحتوي على كلمة ( إلى ) توضع بين التاريخين ، ونضبط Visible=False لهما ، فيما عدا ذلك لن نغير شيئاً حتى في أماكن الازار والخانات وغيرها .
ثانياً : تغييرات أوامر اظهار الشاشات :
سوف نخفي أولاً الشاشة Frm_Report4 لكي تعود إلى وضعها الطبيعي من حيث أماكن الأزرار وغيرها ( وضع التقرير اليومي ) .
بعد ذلك فيما لو كان النوع الثاني فإننا نظهر الاداتين السابقتين ، ونضبط احداثيات Command2 وهو زر التنفيذ من جديد ، وذلك بالشكل التالي :
كود :
[align=right]Case 0
Unload Frm_Report4
Frm_Report4.Show
Case 1
Unload Frm_Report4
Frm_Report4.Show
Frm_Report4.MaskEdBox2.Visible = True
Frm_Report4.Label2.Visible = True
Frm_Report4.Command2.Left = 120
Frm_Report4.Command2.Value = True[/align]ثالثاً : تغييرات حدث
Form_Load :
لن نضيف سوى أمر وضع التاريخ الحالي حتى في الخانة الثانية :
كود :
[align=right]MaskEdBox2.Text = MaskEdBox1.Text[/align]رابعاً : التغييرات في زر ( نفذ ) :
* لن نضع اليوم من الأسبوع في حالة التاريخين ، بل سنضع : مدة مفتوحة ، فيصبح الكود كالتالي :
* لن نضع اليوم من الأسبوع في حالة التاريخين ، بل سنضع : مدة مفتوحة ، فيصبح الكود كالتالي :
كود :
[align=right]If Label2.Visible = False Then
x = dayname(MaskEdBox1.Text)
Lbl_day.Caption = "اليوم من الأسبوع : " & x
Else
Lbl_day.Caption = "اليوم من الأسبوع : " & " فترة مفتوحة"
End If[/align]* لن نستعلم مباشرة بواسطة علامة المساواة ، بل سنستخدم المعامل
Between إذا تحقق الشرط :
كود :
[align=right]If Label2.Visible = False Then
SQL = "select sum(price) as prc,count(*) as cnt from tb_sel_bay where kind=0 and date=#" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "#"
Else
SQL = "select sum(price) as prc,count(*) as cnt from tb_sel_bay where kind=0 and date between #" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "# and #" & Format(MaskEdBox2.Text, "MM/DD/YYYY") & "#"
End If[/align]وكذلك مع جمل استعلام الشراء .
* في جملة الاستعلام الخاصة بوضع البيانات أيضاً سنتأكد من استخدام عامل المساواة أو
* في جملة الاستعلام الخاصة بوضع البيانات أيضاً سنتأكد من استخدام عامل المساواة أو
Between :
كود :
[align=right]If Label2.Visible = False Then
SQL = "select * from tb_sel_bay where kind=0 and date=#" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "#"
Else
SQL = "select * from tb_sel_bay where kind=0 and date between #" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "# and #" & Format(MaskEdBox2.Text, "MM/DD/YYYY") & "#"
End If[/align]وكذلك مع الجملة الثانية .
خامساً : التغييرات على مستوى كود
خامساً : التغييرات على مستوى كود
Flex1 و Flex2 .
لن نغير شيئاً سوى أنه في حالة بين تاريخين سنضيف خانة لعرض التاريخ ، ولذلك نضيف الكود التالي قبل نهاية أمر Flex1 :
كود :
[align=right]If Label2.Visible = True Then
MSFlexGrid1.Cols = 6
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "التاريخ"
MSFlexGrid1.ColWidth(5) = 1200
MSFlexGrid1.ColAlignment(5) = 5
End If[/align]وكذلك مع Flex2 .
سادساً: التغيرات على مستوى كود
سادساً: التغيرات على مستوى كود
Put_Data1 و Put_Data2 :
كود :
[align=right]For i = 0 To T4.RecordCount - 1
n = n + 1
.Row = n
.Col = 0
.Text = n
.Col = 1
.Text = T4!Number
.Col = 2
SQL = "select name from tb_product where number=" & T4!product
Set T6 = D1.OpenRecordset(SQL, dbOpenDynaset)
.Text = T6!Name
T6.Close
.Col = 3
.Text = T4!Count
.Col = 4
.Text = T4!price
If Label2.Visible = True Then
.Col = 5
.Text = T4!Date
End If
T4.MoveNext
Next i[/align]وأيضاً مع Put_Data2 .
لن ننسى ايضاً الأوامر الموجودة في القائمة في الشاشة الرئيسية ، والتي ستصبح بالشكل التالي :
لن ننسى ايضاً الأوامر الموجودة في القائمة في الشاشة الرئيسية ، والتي ستصبح بالشكل التالي :
كود :
[align=right]If T1.RecordCount = 0 Then
MsgBox " لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة ", vbExclamation + arabic, "عرض البضائع"??"
Exit Sub
End If
Select Case Index
Case 0
Unload Frm_Report4
Frm_Report4.Show
Case 1
Unload Frm_Report4
Frm_Report4.Show
Frm_Report4.MaskEdBox2.Visible = True
Frm_Report4.Label2.Visible = True
Frm_Report4.Command2.Left = 120
Frm_Report4.Command2.Value = True
Case 3
End Select[/align]هكذا فقط ، والملف مرفق مع التغييرات ...
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
