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

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


الاحصائيات والرسوم البيانية .


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


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

وسنبدأ سوية في طريقة عامة لعمل المخططات البيانية .

قم بالنقر على
Ctrl+T لعرض الأدوات ، ومنها قم باختيار الأداة :

Microsoft Chart Control 6.0(OLEDB
)

والآن قم برسمها على الفورم كما يحلو لك ، وسنحتاج إلى ضبط بعض الخصائص .
خاصية Charttype : أحد أهم خصائص الأداة ، وذلك أنها تحدد شكل المخطط البياني ( ثلاثي أو ثنائي الأبعاد - دائري أو اعتيادي أو X,Y ... ) وهكذا .
وسنختار VtchChartType2dPie

وآخر ثلاثة أحرف من الأسم للنوع وقبلها حرفان لتحديد ( ثلاثي أم ثنائي الأبعاد ) .


خاصيتا Row و Column وكل ما يتعلق بهما .

تحدد خاصية Row عدد الصفوف ، أي عدد السجلات أو التقارير المطلوبة ، فمثلاً لو كنا نريد أن نعرض في نفس الوقت أكثر من بضاعة للمقارنة فإننا نضبط خاصية RowCount بعدد البضائع ، أم الآن فسنضبطها بحيث تساوي 1 .

أما Column فتحدد عدد النقاط أو البيانات ، وفي مثالنا هذا لدينا أربع بيانات ( اجمالي المبيعات - اجمالي المشتريات - اجمالي مبيعات البضاعة - اجمالي مشتريات البضاعة ) . لذا نضبط ColumnCount=4 .


وسنضبط باقي الخصائص وقت التصميم .


والآن نحتاج إلى أربع قيم نخزنها في مصفوفة Total(3) بالترتيب ، وسنضع هذه الأوامر في آخر زر التنفيذ .
فالأولى هو العدد الكلي للمبيعات ، لذا ننفذ جملة استعلام على المدة المحددة ونخزن البيانات في العنصر الأول للمصفوفة :
وسنستعلم عن مجموع العمود الذي يحقق الشرط ، وعدد السجلات فيه لمنع حدوث خطأ NULL .



كود :
If Option1.Value = True Then
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=0"
Else
SQL = "select sum(count) as sum1,count(product) 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
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
If T4!cnt <> 0 Then
Total(0) = T4!sum1
End If
T4.Close
لاحظ أننا تأكدنا من عدد السجلات مسبقاً لتلافي خطأ Null ، جرب ازالته ولاحظ الفرق .


والثاني العدد الكلي للمشتريات ، وهو مثل السابق مع اختلاف Kind في جملة الاستعلام :


كود :
If Option1.Value = True Then
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=1"
Else
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=1 " & " and date between#" & Format(MaskEdBox1.Text, "MM/DD/YYYY") & "# and #" & Format(MaskEdBox2.Text, "MM/DD/YYYY") & "#"
End If
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
If T4!cnt <> 0 Then
Total(1) = T4!sum1
End If
T4.Close

أما البيان الثالث فهو مجموع مبيعات البضاعة ، ونستطيع الحصول عليها من الجدول دون أن نضطر إلى جملة استعلام أخرى :


كود :
MSFlexGrid(0).Col = 3
For i = 1 To MSFlexGrid(0).Rows - 1
MSFlexGrid(0).Row = i
Total(2) = Total(2) + MSFlexGrid(0).Text
Next i
ونفس الأمر بالنسبة لمشتريات البضاعة :


كود :
MSFlexGrid(1).Col = 3
For i = 1 To MSFlexGrid(1).Rows - 1
MSFlexGrid(1).Row = i
Total(3) = Total(3) + MSFlexGrid(1).Text
Next i
والآن جاء دور وضع البيانات ، وبما أننا نريد الاستفادة من خاصية Index سنضيف النصوص التوضيحية في مصفوفة هي الأخرى :


كود :
Dim str(3) As String
str(0) = "اجمالي مبيعات"
str(1) = "اجمالي مشتريات"
str(2) = "اجمالي مبيعات بضاعة"
str(3) = "اجمالي مشتريات بضاعة"

ونضبط خصائص المخطط كما أسلفنا :


كود :
MSChart2.ColumnCount = 4
MSChart2.RowCount = 1
ونبدأ في وضع البيانات بحلقة تكرار ، مع مراعاة أننا نضع البيان بواسطة الخاصية Date وننتقل للعمود من خلال الخاصية Column ونضع النص التوضيحي من خلال الخاصية ColumnLabel :


كود :
For i = 1 To 4
MSChart2.Column = i
MSChart2.Data = Total(i - 1)
MSChart2.ColumnLabel = str(i - 1)
Next i

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



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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 11,181 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 3,980 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 4,071 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 4,957 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 3,826 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 3,604 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 5,297 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 6,114 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 4,348 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الرابع والعشرون - تقارير المصانع والأنواع RaggiTech 0 3,475 15-10-12, 08:36 AM
آخر رد: RaggiTech

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


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