الدرس الثالث و العشرون ...قواعد البيانات / التعامل مع أداة عرض البيانات FlexGrid

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

الدرس الثالث و العشرون ...قواعد البيانات / التعامل مع أداة عرض البيانات FlexGrid

مُساهمة من طرف أحمد مناع في الإثنين يناير 16, 2012 1:25 pm

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



أهلا وسهلا أخوانى الكرام فى دورس دورة منتدى مصر التقنى لاحتراف لغة البرمجة بالفجوال بيسك 6 ...ومازلنا فى دروس قواعد البيانات فمن الجزء الاول حتى الجزء السابع تحدثنا عن كيفية أنشاء قاعدة بيانات و كيفية الاتصال بها من خلال عدة تقنيات ...فى هذا الدرس أن شاء الله تعالى سنتعلم ونتعرف على أدوات عرض البيانات ومنها اداة Microsoft FlexGrid


أولا : التعرف على الاداة Microsoft FlexGrid



هل سبق لك استخدام برنامج Excel ؟

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



الواقع أن أداة الشبكة Microsoft FlexGrid يمكن تشبيهها بجدول اكسل Excel ولكن بلا وظائف ، وتوفر فيجوال بيسك لها خواص و أساليب برمجية تمكنك من التحكم في خلايا والصفوف الشبكة .

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


كيفية أستدعاء الاداة الى المشروع :



اذهب الى قائمة project >> ثم combonent او اضغط على ctrl+T ستفتح لك قائمة المكونات اختر منها المكون التالي و ضع بجانبه علامة صح Microsoft FlexGrid Control 6.0 كما هو موضح في الصورة




فتظهر بهذا الشكل فى شريط الادوات القياسى ...







قم بوضعها الى النموذج كما فى الشكل السابق



أهم خواص الشبكة :



وظيفتها
قيمها
اسم الخاصية
تحدد عدد أعمدة الشبكة
عدد
Cols
تحدد عدد صفوف الشبكة
عدد
Rows
تظهر البيانات التي تحملها أداة قاعدة البيانات Data
اسم أداة البيانات المرتبطة بقاعدة البيانات مثل الأداةData
DataSource
0 عدم إتاحة

1 تغيير اتساع الصفوف أثناء التنفيذ.

2 تغيير اتساع الأعمدة أثناء التنفيذ

3 تغيير اتساع الصفوف والأعمدة أثناء التنفيذ
0 ، 1 ، 2 ، 3
AllowUserResizing
تحدد عدد الأعمدة الثابتة
عدد
FixedCols
تحدد عدد الصفوف الثابتة
عدد
FixedRows
0 بدون شريط تمرير

1 شريط تمرير أفقي

2 شريط تمرير رأسي

3 شريطي تمرير أفقي ورأسي
0 ، 2 ، 3
ScrollBars



كما تتمتع أداة الشبكة بنفس الخصائص السابقة مثل الظهور Visible و الخط ، و غيرها .



أهم الطرق Methods و الأوامر:





1- دخول الخلية EnterCell وهو حدث لدي نقر إحدى الخلايا و التعامل معها .

2- حدث ترك الخلية LeaveCell و يحدث لدي ترك المستخدم للخلية .

3- حدث تغير الصفوف أو الأعمدة RowColChange و يحدث لدي تغير عدد أعمدة الشبكة أو صفوفها من حيث الزيادة أو النقصان .

4- منظومة النصوص TextArray

5- و هي ترقم الخلايا من 0 إلي آخر الخلايا فمثلا العد يبدأ من 0 إلي آخر خلية في الشبكة .

6- مصفوفة أو جدول النصوص TextMatrix:

وهو يحدد الخلية برقمها في الصف والعمود فمثلاُ MsflexGrid1.TextMatrix(2,5) هي الخلية التي تقع في الصف الثاني ، والعمود الخامس منه ، حيث ان رقم أول صف وأول عمود هو 0 .

7- RemoveItem

وهو يحذف صف معين




ثانيا : التحكم بخصائص الاداة بأستخدام الشفرة أو الكود :



الان سنتعلم التحكم بخصائص FlexGrid بواسطة الكود ، يجب ان تعلم ان جميع الاوامر التي تكتب لهذه الاداة غالبا ما تكتب في حدث التحميل للفورم Load ، و من الخصائص التي يجب ان تتعلمها هي التحكم في عرض الصفوف مع العلم بأن الصفوف مرقمة من اليسار الى اليمين ابتداء من الصفر و اذا اردنا مثلا ان نغير عرض العمودين رقم 0 و 3 مثلا و نريد ان يكون عرضهما 2000 و 1000 على التوالي فإننا سنحتاج الى كتابة الكود التالي :





MSFlexGrid1.Colwidth(0) = 2000

MSFlexGrid1.Colwidth(3) = 1000





مع العلم بأن اسم الاداة في المكود السابق هو MSFlexGrid1، لاحظ أننا نقوم بحصر رقم الصف بين قوسين


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



MSFlexGrid1.Row = 0

MSFlexGrid1.Col = 1

MSFlexGrid1.Text = "الاسم "

MSFlexGrid1.Col = 2

MSFlexGrid1.Text = "العمل"





لاحظ أننا في اول سطرين من الكود السابق قد قمنا بتحديد اول خلية على اليسار في الزاوية العليا و ذلك بتحديد احداثياتها وهي الصف الاول و العمود الاول ، ثم قمنا بكتابة العنوان بالخاصية Text ، مع العلم بأن البرنامج يقوم بتخزين احداثيات اخر خلية تقوم بكتابتها ، لذلك و عندما نكتب احداثيات النقطة الثانية ستتفيد من هذه الميزة فسنكتب احداثي العمود و هو 1 لأن الاحداثي السابق للصف هو 0 و هو مخزن فماذا نكتبه مرة اخرى مادمنا لانحتاج لتغييره ، بعد ذلك نكتب العنوان باستخدام الخاصية Text كما فعلنا مع الاولى و نستمر بهذه العملية اذا احتجنا الى عناوين اخرى ، وستظهر العناوين التي عملناها بالكود السابق كما الشكل التالي :






ثالثا : تعبئة الاداة ببيانات جدول قاعدة البيانات بأستخدام الاداة Data Control



قم بوضع الاداة Data Control على الفورم ومن ثم بقم بربطها مع قاعدة البيانات المراد الاتصال بها _وطبعا تعلمنا فعل ذلك دورس سابقا _بعد ذلك حدد الخاصية DataSource لاداة عرض البيانات FlexGrid ثم أختر مصدر البيانات لها وهى طبعا Data1 ...كما فى الشكل التالى :







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








ثالثا : تعبئة الاداة ببيانات جدول قاعدة البيانات بأستخدام مكتبة dao



- يتم أولا أستدعاء المكتبة dao الى مشروعك

-بعد ذلك سنقوم بتعريف متغيرين ليقوم الأول بحمل قاعدة البيانات لكى نتصل بها من خلاله والاخر ليحمل الجدول لى نتصل به من خلاله ايضاً والمتغيرين على التوالى هما Db و Rs



الرمز:
Dim Db As Database
Dim Rs As Recordset



_ثم نقوم بالاتصال بقاعدة البيانات عن طريق الكود التالى :



الرمز:
Set Db = DBEngine.OpenDatabase(App.Path & "\db1.mdb")
Set Rs = Db.OpenRecordset("T1", 1)



والآن جاء دور العمل مع قاعدة البيانات ، لا تنس أننا سوف نتعامل الآن مع T1 لأننا سوف نتنقل بينها دون أن نؤثر على العرض الرئيسي للبرنامج .



الخطوة الأولى هي معرفة عدد السجلات ، وهو عدد الصفوف في الجدول + 1 ( من أجل صف العنوان ) .بأستخدام الكود التالى :



الرمز:
 If T1.RecordCount < 1 Then Exit Sub 


                          N = T1.RecordCount
                  MSFlexGrid1.Rows = N + 1




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


الرمز:
For i = 1 To n
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = Rs!id

MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Rs!Name

MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Rs!tel

MSFlexGrid1.Col = 3
MSFlexGrid1.Text = Rs!adrs
Rs.MoveNext
Next



وبهذا نكون قد ربطنا الاداة MSFlexGrid1 مع قاعدة بيانات أكسس عن طريق مكتبة dao

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى