15-10-12, 08:51 AM
[b]كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
[/b]
في هذا الدرس الأخير من هذا القسم سوف نتطرق لطباعة بعض التقارير ونتائج البحث .
تقرير البضائع .
سوف نصمم هذا التقرير ليعرض العمليات التي جرت على كل بضاعة ، وتنقسم إلى قسمين لا فرق بينهم سوى في خاصية Kind التي تحدد إما مبيعات أو مشتروات .
لذا سوف نضع الزرين في Frm_Report1 ، وسوف نرى الفرق الوحيد بينهم .
والآن لنر عناصر التصميم ، فهو مثل التقرير السابق تماماً ، ما عدا أن الحقول سوف تكون :
رقم - تاريخ - كمية - سعر .
وسوف تكون مصادرها من قاعدة البيانات :
لذا سوف نضع الزرين في Frm_Report1 ، وسوف نرى الفرق الوحيد بينهم .
والآن لنر عناصر التصميم ، فهو مثل التقرير السابق تماماً ، ما عدا أن الحقول سوف تكون :
رقم - تاريخ - كمية - سعر .
وسوف تكون مصادرها من قاعدة البيانات :
Number - Date - Count - Price
سوف نضيف مربعات عناوين RptLabel من l1 وحتى l5 لنعرض فيهم معلومات هذه البضاعة .
هكذا نكون قد انهينا التصميم ، وبعد رسم زري الطباعة للمبيعات والمشتريات تحت اسم Command3(0) للمبيعات و Command3(1) للمشتريات ، فسوف نبدا الكود بالطريقة المعتادة بالشكل التالي :
هكذا نكون قد انهينا التصميم ، وبعد رسم زري الطباعة للمبيعات والمشتريات تحت اسم Command3(0) للمبيعات و Command3(1) للمشتريات ، فسوف نبدا الكود بالطريقة المعتادة بالشكل التالي :
Dim cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Folder & "db1.mdb;" & "Jet OLEDB atabase Password=" & PassWord
Set Rs = New ADODB.Recordset
Dim Rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Folder & "db1.mdb;" & "Jet OLEDB atabase Password=" & PassWord
Set Rs = New ADODB.Recordset
نقطة الاختلاف هي تحديد مصدر البيانات ، وحيث أن Index يمثل لنا 0 أو 1 مثل تلك التي تمثلها الخاصية Kind في قاعدة البيانات للمبيعات والمشتريات ، فإننا نستطيع كتابة الكود التالي :
Set Rs = cn.Execute(sql_now & " and kind=" & Index
)
Set DataReport2.DataSource = Rs
ولكن من هي
sql_now ؟
لأننا لن نستطيع لاحقاً أن نعرف العملية الحالية لأن المستخدم قد يغير التاريخ دون ضغط زر ( تنفيذ ) مما يؤدي لحدوث خطأ ، من أجل ذلك سنعرف هذا المتغير في قسم التصاريخ Genral
Dim sql_now
وفي الجزء الأول من كود التنفيذ سنغير الشكل ليصبح كالتالي :
If Option1.Value = True Then
sql = "select * from tb_sel_bay where product=" & num & " and kind=" & i
sql_now = "select * from tb_sel_bay where product=" & num
Else
Else
sql = "select * from tb_sel_bay where product=" & num & " and kind=" & i & " and date between#" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "# and #" & Format(MaskEdBox2.Text, "MM/DD/YYYY") & "#"
sql_now = "select * from tb_sel_bay where product=" & num & " and date between#" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "# and #" & Format(MaskEdBox2.Text, "MM/DD/YYYY") & "#"
sql_now = "select * from tb_sel_bay where product=" & num & " and date between#" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "# and #" & Format(MaskEdBox2.Text, "MM/DD/YYYY") & "#"
End If
وهذا ما يجعل sql_now يحتوي على الوضع الحالي دون تفريق بين المبيعات والمشتريات ، وهذا ما سنقوم بعمله في كود الطباعة .
نعود لمواصلة الكود ، وسننقل البيانات نقلاً طبيعياً كالتالي ، ثم نقوم باظهار التقرير بصورة طبيعية ، وقد شرحت معظم هذه الطرق في التقرير السابق :
نعود لمواصلة الكود ، وسننقل البيانات نقلاً طبيعياً كالتالي ، ثم نقوم باظهار التقرير بصورة طبيعية ، وقد شرحت معظم هذه الطرق في التقرير السابق :
DataReport2.Sections("Section2").Controls("l1").Ca ption = Lbl_name
DataReport2.Sections("Section2").Controls("l2").Ca ption = lbl_cate
DataReport2.Sections("Section2").Controls("l3").Ca ption = lbl_fact
DataReport2.Sections("Section2").Controls("l4").Ca ption = lbl_prc
DataReport2.Sections("Section2").Controls("l5").Ca ption = lbl_cnt
Select Case Index
Case 0
DataReport2.Sections("Section2").Controls("l2").Ca ption = lbl_cate
DataReport2.Sections("Section2").Controls("l3").Ca ption = lbl_fact
DataReport2.Sections("Section2").Controls("l4").Ca ption = lbl_prc
DataReport2.Sections("Section2").Controls("l5").Ca ption = lbl_cnt
Select Case Index
Case 0
DataReport2.Sections("Section2").Controls("label1" ).Caption = "تقرير باجمالي مبيعات بضاعة"
Case 1
DataReport2.Sections("Section2").Controls("label1" ).Caption = "تقرير باجمالي مشتريات بضاعة"
End Select
DataReport2.Sections("Section2").Controls("label3" ).Caption = Info(2
DataReport2.Sections("Section2").Controls("label3" ).Caption = Info(2
)
DataReport2.Sections("Section2").Controls("label4" ).Caption
= "هاتف : " & Info(3)
DataReport2.Show
Set cn = Nothing
Set Rs = Nothing
Set Rs = Nothing