السلام عليكم
لقائنا الثاني في تصميم برامج المبيعات والمخازن
في هذه الحلقة سنتعرف علي أحد الأدوات المخصصة للعمل مع النظام الجاري تصميمه وهي الأداة MajorIndex.ocx
قم بفك الضغط عن الملف الموجود في المرفقات ، وستجد بداخلة مجلد يدعي Major ، أنقل هذا المجلد إلي القرص C أو أي قرص به مساحة خالية وإن كان يفضل القرص C حتى نتأكد في البداية أن كل شئ يعمل كما يجب ، لا تقوم بتشغيل المشروع الآن فنحن نحتاج إلي تسجيل الأداة Majorindex.ocx أولا ، ولعمل ذلك أتبع ما يلي
قم بتشغيل Visual Basic علي مشروع جديد ، ومن القائمة Project اختر Components ثم أضغط علي زر Browse في القائمة التي تظهر أمامك ، سيظهر أمامك صندوق عرض الملفات ، أذهب إلي المجلد c:\major\tools ستجد بداخلة أداة OCX باسم Majorindex ، قم بالنقر علي هذه الأداة لتسجيلها
أغلق المشروع دون حفظه ، ويمكنك الآن تشغيل المشروع المرفق ومتابعة الحلقة
في داخل المجلد Major ستجد مجلد فرعي يسمي test1 داخل هذا المجلد ستجد مشروع قم بفتحه في فيجوال بيسك ، ثم قم بتشغيل المشروع
عند تشغيل المشروع ستظهر أمامك نافذة تعرض بعض الأصناف كما يوجد علي هذه النافذة زرين للتقليب بالضغط علي زر تالي يتم عرض 25 سجل التالية وبالضغط علي زر سابق تعرض النافذة 25 سجل السابقة ، كما يمكنك البحث في السجلات بكتابة أي عدد من الحروف في صندوق النصوص الموجود علي النافذة جرب ذلك بإدخال بعض الحروف المكونة للأصناف المعروضة . أنقر علي أحد الأصناف ستجد أن العنصر ظهر في أداة العرض Label في أعلي النافذة
والأداة المستخدمة في هذه النافذة تسمي Majorindex والتي قمنا بتسجيلها في بداية الحلقة ، وتقوم هذه الأداة بعرض بيانات جدول بطريقة يمكن استخدام عمليات التنقل والبحث فيها ، وهي أداة قوية بالنسبة للوظيفة المنوطه بها ، وسنقابل هذه الأداة في جميع نماذج المشروع ، لعرض البيانات التي يتعامل معها النموذج بصورة جدولية ، ففي نموذج العملاء سنقابل هذه الأداة وهي تعرض بيانات العملاء ، وفي نموذج الفواتير سنقابل هذه الأداة وهي تعرض أصناف المخزون مع أرصدتها ، وفي نموذج الموردين ستعرض الأداة بيانات الموردين وهكذا
ولا تحتاج الأداة إلي إجراءات كثيرة لبرمجتها فهي تحتاج إلي سطرين فقط ، في السطر الأول يتم تمرير مجموعة السجلات المطلوب عرضها ، السطر الثاني لعرض هذه السجلات . ودعنا الآن ننظر إلي الموضع بشئ من التفصيل ، لأن العمليات الموجودة في هذه النموذج ستتكرر معنا دائما في جميع نماذج المشروع ولذلك سيكون من الأفضل التعرض لهذه العمليات بصورة مستقلة ، وهذا المشروع فرصة لعرض هذه الإجراءات ، قم الآن بوقف تشغيل المشروع ، وافتح الإجراء Form_Load() ستجده بهذه الصورة
Private Sub Form_Load() Dim Dbname As String Dbname = App.Path & "\major.mdb" AdoOpenConnection Dbname, dbcon setColCaption View_index End Sub
وهو كود بسيط سنقابله في جميع نماذج المشروع بلا استثناء لذلك أري أن أتعرض إليه بشئ من التفصيل
في السطر الأول يتم الإعلان عن المتغير Dbname
في السطر الثاني يتم شحن هذا المتغير بالمسار الكامل لقاعدة البيانات
في السطر الثالث يتم استخدام الوظيفة AdoOpenConnection في إنشاء الاتصال بقاعدة البيانات وكما هو واضح تحتاج هذه الوظيفة لتمرير متغيرين الأول لقاعدة البيانات المطلوب إنشاء اتصال معها والثاني من النوع Connection ويعبر عن كائن الاتصال
في السطر الرابع يتم استدعاء الإجراء setColCaption ومن خلاله يتم تحديد اتساع أعمدة الأداة ووضع عناوين هذه الأعمدة بالضبط مثل ما يحدث مع الأداة Flexgrid لإن الأداة Majorindex تستخدم هذه الأداة
في السطر الخامس يتم استدعاء الإجراء View_index لعرض مجموع السجلات علي الفهرس
ما يعنينا في هذا الموضوع هو الإجراء View_index أما باقي العمليات فهي إجراءات تقليدية نستخدمها كثيرا ، لذلك سأتعرض بشئ من التفصيل لهذا الإجراء ،
إذا نظرنا إلي هذا الإجراء سنجده كما يلي
Sub View_index() Dim MySql As String Dim ds As ADODB.Recordset Set ds = New Recordset MySql = "SELECT Product.ProductID, Product.ProductName, Product.Price " MySql = MySql & " FROM Product " MySql = MySql & " WHERE INSTR(1,ProductName,'" & txtfind & "') > 0;" ds.Open MySql, dbcon index1.DataSource = ds index1.View_Irem End Sub
إذا نظرنا إلي السطور الأولي من هذا الإجراء سنجد أن السبعة سطور الأولي هي سطور تقليدية لإنشاء مجموع سجلات
في السطر الأول الإعلان عن المتغير Mysql
في السطر الثاني والثالث الإعلان عن المتغير Ds من النوع ADODB.Recordset وإنشاء نسخة من هذا المتغير
في السطور الرابع والخامس والسادس جملة Sql والتي تحدد مجموعة السجلات التي سيتم إنشاء مجموعة سجلات لها وتفسيرها
اختر الحقول ProductID و ProductName و Price من الجدول Product عندما تكون قيمة الحقل ProductName محتوية علي الحروف الموجودة في صندوق النصوص Txtfind
في السطر السابع يتم فتح مجموعة السجلات
حتى هذه النقطة لا يوجد شئ جديد فهي مجموعة سطور نستخدمها دائما والجديد هو السطرين التالين
في السطر الثامن يتم تمرير مجموع السجلات إلي الخاصية DataSource للأداة Majorindex كما في السطر
index1.DataSource = ds
ثم استخدام الأسلوب View_Irem للأداة لعرض هذه السجلات كما هو واضح في السطر
index1.View_Irem
هذا كل شئ بالنسبة لهذه الأداة ، فمثلا لو احتجنا إلي عرض سجلات العملاء مثلا عليك تعديل عبارة Sql فقط لتصبح مثلا
MySql = " SELECT CustomerID, CustomeName, Country " MySql = MySql & " FROM Customer " MySql = MySql & " WHERE INSTR(1,CustomeName,'" & txtfind & "') > 0;"
مع تغيير عناوين الأعمدة واتساعها من الإجراء setColCaption
بقيت نقطة واحدة حتي تكتمل الصورة في الإجراء Sub txtfind_Change لصندوق النصوص txtfind ضع السطر التالي
Private Sub txtfind_Change() View_index End Sub
وحتي تكتمل الصورة ضع السطر التالي في الحدث index1_Click ليصبح كما يلي
Label1 = index1.TextMatrix(index1.Row, 1)
بحيث يصبح كما يلي
Private Sub index1_Click() Label1 = index1.TextMatrix(index1.Row, 1) End Sub
فعند النقر علي أحد سطور الشبكة يتم عرض اسم الصنف علي الأداة Lable في أعلي النافذة وإذا أردت أن تعرض رقم الصنف استخدم السطر التالي بدلا من السطر السابق
Label1 = index1.TextMatrix(index1.Row, 0)
وإلي اللقاء في الحلقة القادمة وسنقوم فيها بإنشاء نموذج لتحديث جدول الموردين
Major


