التعامل مع Flex Grid

 

13

رقم الدرس

متقدم:

مستوى الدرس

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

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

:المقدمة

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

الدرس

قبل كل شيء دعنا نقوم بإعطائك الصورة التي نريد ان نصل اليها في النهاية لكي تكون على علم بما سنعمل عليه انظر الصورة التالية :

                         

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

بعد ان تحدد المكون الذي في الصورة السابقة اضغط Ok  لتضيف المكون للمشروع وتعود للمشروع 

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

  

اضغط بالزر الايمن على الشبكة التي قمت برسمها و اختر Properties  ستفتح لك نافذة الخصائص وفي علامة التبويب General يمكنم اختيار عدد الصفوف من الخاصية Rows و عدد الاعمدة من الخاصية Cols ، كما يمكنك تحديد عدد الاعمد التي تكون بلون داكن كمفتاح للشبكة من الخاصيةFixed Cols  او الصفوف التي بلون داكن من الخاصية Fixed Rows 

------------------------------------------------------

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

 

MSFlexGrid1.Colwidth(0) = 2000

MSFlexGrid1.Colwidth(3) = 1000

 

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

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

 

MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0

MSFlexGrid1.Text = "الاسم "
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "العمل"

 

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

 

و الان كيف نقوم بتعبئة البيانات من جدول او استعلام ؟

كما تعلمنا في الدروس السابقة فإننا نقوم بإنشاء جدول وهمي لكي نخزن فيه البيانات مؤقتا كما هو حال الرام RAM  في الجهاز لتخزين البيانات لنتعامل معها و بعد اغلاق الجهاز تذهب المعلومات ، ان ديناميكية تعبئة البيانات بسيطة و سلسة ونحتاج اولا وضع عناوين الاعمدة كما تعلمنا في الفقرة السابقة ويكتب ذلك غالبا في حدث التحميل Load  بعد ذلك يأتي دور تعبئة السجلات ، وقبل كل شيء اضف سطر يتأكد من وجود بيانات في الجدول  لكي لاتواجه مشاكل ، بعد ذلك احسب عدد السجلات في الجدول و لفعل ذلك كما تعلمنا سابقا يجب اولا ان نمر على الجدول الى النهاية ثم نعود الى البداية لكي نستطيع ايجاد عدد السجلات بواسطة الخاصية Count  نقوم بعد ذلك بعمل تكرار على عدد السجلات و نضع داخله كود يقوم بتعبئة البيانات بنفس الطريقة التي قمنا فيها بوضع عناوين الاعمدة ولكن يكون المصدر هو الجدول ،لن تفهم ما ذكرته الا عندما تشاهد الكود المطلوب و الذي سأورده الان مع ملاحظة ان اسم الجدول الوهمي TB و يوجد  به الحقول Name و Job   ، مع ملاحظة ان اسم FlexGrid في الكود التالي هو flx1

 

If tb.RecordCount < 1 Then Exit Sub  ' لكي نتأكد من وجود سجلات في الجدول او نخرج في عدمها
    tb.MoveLast  ' نتحرك الى الحقل الاخير
    tb.MoveFirst  ' نتحرك الى الحقل الاول
    n = tb.RecordCount  ' نخزن عدد السجلات في المتغير n
   For i = 1 To n
        flx1.Row = i  ' رقم الصف حسب رقم التكرار
        flx1.Col = 0  ' رقم العمود ثابت لأننا سوف نضع جميع القيم في للحقل في عمود واحد
        flx1.Text = tb!Name  ' نضع قيمة الحقل في الخلية المحددة 
        flx1.Col = 1
        flx1.Text = tb!job
         tb1.MoveNext  ' نتحرك للسجل التالي 
  
Next i

End Sub

 

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

-------------------------------------------------------------------------

من المهارات الممتازة ان تعرف كيف تجعل عدد الصفوف يتغير حسب عدد السجلات ولعمل ذلك اجعل خاصية عدد الصفوف تساوي عدد السجلات في الجدول زائدا واحد ، و قمنا بهذه الزيادة لأنها تعبر عن صف عناوين الحقول و ضع هذه الجملة في المكان المناسب بعد حساب عدد الحقول في الجدول و يوضح الكود التالي موقع الجملة من الكود السابق :

 

  If tb.RecordCount < 1 Then Exit Sub
    tb.MoveLast
   tb.MoveFirst
   n = tb.RecordCount
   flx1.Rows = n + 1 
   For i = 1 To n
       flx1.Row = i
       flx1.Col = 0
       flx1.Text = tb!Name
       flx1.Col = 1
       flx1.Text = tb!job
       tb.MoveNext
   Next i

End Sub

 

 

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

تطبيق

اضافة العناوين للأعمدة و تعبئة البيانات

معرفة كيفية جعل عدد الصفوف يتحدد حسب عدد السجلات في الجدول

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

 

 

Counter

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

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