الرسم البياني 

 

14

رقم الدرس

متقدم:

مستوى الدرس

حمد راشد الماجد:

الكاتب
           
يجب قراءتها

:المقدمة

الرسم البياني تطبيق مهم  جدا معرفة التعامل معه حيث يعطي تصورا و ملخصا عن الحقول في السجلات و بالنسبة لفيجوال بيسك فهو يتيح لك عمل  الرسوم البيانية التي تستمد مصدرها من قاعدة بيانات بكل سهولة وسيكون هذا الدرس الجزء الاول في الرسم البياني  

هناك عدة طرق لإظهار الرسم البياني ، فيمكنك ان تظهر رسم يبين القيم في سجل واحد مثلا درجات طالب في مادتين  و لكي ترى الرسم البياني الذي يمثل الطلاب الاخرين تنتقل بزر ينقلك للسجل التالي  وهذا ما سنتعلمه في هذا الدرس 

أو تقوم بعرض جميع سجلات الطلاب في رسم واحد مقسم على اساس كل سجل و سستعرف على هذا بالتفصيل في دروس قادمة 

الدرس

قبل ان تبدأ يجب ان تقوم بعمل قاعدة بيانات  اسمها db1  و تحتوي على جدول اسمه tb1 فيه الحقول التالية :

                        

نوع البيانات إسم الحقل
string name
integer mathmark
integer sincemark

 

قم بعد ذلك بإضافة سجلات لقاعدة البيانات بالقيم التي تريدها 

الان افتح مشروع فيجوال بيسك جديد ، بعد ذلك قم بتعريف او ربط قاعدة البيانات في البرنامج بالكود الذي تعلمناه في الدروس السابقة و سأذكره هنا ان كنت قد  نسيت 

أولا اذهب الى  Project >> refrences   ثم حدد المكتبة Microsoft DAO 3.51 Object library 

قم بتعريف المتغيرين في قسم الاجراءات العامة كما في الكود التالي :

Public d As Database
Public tb As Recordset

 

الان اكتب الكود التالي و الذي يقوم بربط قاعدة البيانات بالبرنامج
Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\db1.mdb", True)
Set tb = db.OpenRecordset("tb1", dbOpenTable)

 

الان تأتي الخطوة الاساسية الاولى وهي اضافة أداة الرسم البياني و للقيام بذلك اذهب قائمة Project  و اختر Components  سيظر لك مربع حوار حدد منه الاختيارMicrosoft Chart Control 6.0 (OLEDB)

ستظهر لك الايقونه الخاصة به في صندوق الادوات    بعد ذلك انقر على هذه الايقونة و ارسم شكل مربع على اغلب الفورم و سينتج لك صورة رسم بياني 

الان حدد الرسم البياني و اذهب الى نافذة الخائص و غير الخاصية AutoIncrement  إلى True و هذا ضروري لكي يقوم الرسم البياني بتغيير و تحديث نفسه تلقائيا ولن يعمل بدون ان تجعل  هذه الخاصية على True 

أيضا اضبط الخاصية  ColumnCount على  2 حيث ان هذه الخاصية تعني عدد الاعمدة في الرسم البياني و بما اننا نحتاج الى عمودين فقط هما درجة الرياضيات و العلوم وضعنا عدد الاعمدة 2 

و اضبط الخاصية RowCount على 1 وهذا الرقم يدل على عدد السجلات ا لتي تريد ان تعرضها في المرة الواحدة و ستتعرف على ذلك بالتفصيل في الدرس القادم

والان ماهو الكود الذي سيعرض البيانات على الرسم البياني ، اولا يجب ان تحدد متى يجب العرض هل عند تشغيل البرنامج ام عند النقر على زر معين ؟ و الطريقة الافضل ان تجعله يقوم يعرض حال تنفيذ او تحميل الفورم و بعد ذلك يمكنه ان ينتقل الى السجل التالي بواسطة زر تنقل ، هذا يقودنا الى انه يجب علينا وضع كود في حدث ا لتحميل للفورم لكي يعرض مباشرة و الكود سيكون الكود التالي الذي باللون الاحمر :

 لاحظ ان اسم ادة الرسم البياني هو MSChart1

 

 

Private Sub Form_Load()
Set db = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\db1.mdb", True)
Set tb = db.OpenRecordset("tb1", dbOpenTable)

MSChart1.Column = 1
MSChart1.Data = tb!mathmark
MSChart1.Column = 2
MSChart1.Data = tb!sincemark
MSChart1.RowLabel = tb!Name


End Sub

 

أعتقد ان الكود  السابق سهل وواضح للجميع و هو يذكرنا بالأداة FlexGrid  ، ففي الكود السابق حددنا اولا رقم العمود الذي ستنفذ عليه الاوامر القادمة و هو عمود رقم 1  ثم بعد ذلك و ضحنا الامر الذي نريده ان ينفذ على هذا العمود وهو وضع قيمة الحقل mathmark في هذا العمود ليعبر عنها بيانيا ونستخدم لهذا الامر Data  كما هو واضح  ،  و الان نريد وضع قيم الحقل الثاني وهو sincemark  في  العمود الثاني و نتبع لذلك نفس الخطوات السابقة حيث نحدد رقم العمود وهو 2 ثم ما نريد منه و هو التعبير عن هذا الحقل في شكل بيانا 

بعد ذلك وفي السطر الاخير نريد ان يضع البرنامج اسم الشخص اسفل الرسم البياني و هو مايسمى بالصف Row  ونستخدم الخاصية RowLabel  و نخزن فيها قيمة حقل الاسم Name 

الان المرحلة  الثانية و هي ان يقوم المستخدم بالتنقل بين الحقول لإظهارها في شكل الرسم البياني و سنقوم بإنشاء زرّي أمر واحد للتقدم للأمام وواحد للرجوع للخلف ، في الزر المخصص للتنقل للإمام نستخدم الكود التالي :

Private Sub Command1_Click()
tb.MoveNext   ' للإنتقال للسجل التالي 
If tb.EOF Then tb.MoveLast  ' لتفادي المشاكل عند اخر سجل
MSChart1.Column = 1
MSChart1.Data = tb!mathmark
MSChart1.Column = 2
MSChart1.Data = tb!sincemark
MSChart1.RowLabel = tb!Name
End Sub

 

لاحظ أن الكود نفس الكود في حدث التحميل مع الاخذ في الاعتبار نقطتين أولا الانتقال للسجل التالي لكي يتم عرض البيانات في السجل التالي ، و وضع شرط ليتحقق هل عند الوصول للسجل الاخير ليقوم بالخروج من ا لاجراء لكي نتفادى المشاكل  ،، هذا كل شيء

أما الكود الذي يقوم بالرجوع الى الخلف فهو :

Private Sub Command2_Click()
tb.MovePrevious
If tb.BOF Then tb.MoveFirst
MSChart1.Column = 1
MSChart1.Data = tb!mathmark
MSChart1.Column = 2
MSChart1.Data = tb!sincemark
MSChart1.RowLabel = tb!Name
End Sub

 

الكود السابق نفس كود الانتقال للإمام مع تغيير امر التحرك للأمام بأمر التحرك للخلف MovePrevious  و تم تغيير شرط التأكد من وصولنا للسجل الاول بحيث يتوافق مع الحاله 

 

 

الشكل النهائي

لاحظ أن المحورين يتم تقسيمهما تلقائيا على حسب الارقام في السجلات 

يمكنك التحكم في بعض الخصائص مثل جعل الرسم البياني على شكل خطوط او مجسمات ثلاثية الابعاد و غير ذلك يمكنك اكتشاف ذلك بنفس بالضغط على الزر الايمن على الرسم البياني و اختيار Properties 

 

 

 

 

 

انقر هنا لسحب التطبيق

تطبيق

ربط الرسم البياني مع قاعدة بيانات و التنقل بين السجلات 

الحد الأدنى من  الأهداف التعليمية

 

 

 


Counter

الصفحة الرئيسية| الفهرس  | حيل و أفكار | كتب | مواقع | إتصل بنا

جميع الحقوق محفوظة © 2000