تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين
#2
كاتب المشاركة : أحمد جمال

التقارير بين تاريخين .


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


أولاً : تغييرات في التصميم :
سنضيف اداة 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]


هكذا فقط ، والملف مرفق مع التغييرات ...


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



الملفات المرفقة
.rar   prog22.rar (الحجم : 189.29 ك ب / التحميلات : 217)
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين - بواسطة Raggi Tech - 15-10-12, 08:39 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 13,810 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 4,304 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 4,338 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 5,302 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 4,185 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 3,880 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 5,767 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 6,598 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 4,037 15-10-12, 08:37 AM
آخر رد: RaggiTech
  الدرس الرابع والعشرون - تقارير المصانع والأنواع RaggiTech 0 3,740 15-10-12, 08:36 AM
آخر رد: RaggiTech

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


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