الصفحة الرئيسية > صحيفة الحياة > تطوير تطبيقات في ابروش دون كتابة سطر برمجي واحد
تطوير تطبيقات في ابروش دون كتابة سطر برمجي واحد
السبت ١٢ آب (أغسطس) ١٩٩٥, بقلم
طرحت شركة لوتس النسخة النهائية من الاصدار الثالث لبرنامج ابروش المعرب لادارة قواعد البيانات. وكنا قد استعرضنا سابقاً نسخة بيتا من هذا البرنامج، الا اننا وجدنا انه من المفيد القاء نظرة ثانية على النسخة النهائية لا سيما وان نسخة بيتا التي كانت في حوزتنا كانت مشبعة بالاخطاء (الطبيعية في هذه المرحلة من التطوير).
وكما كان متوقعاً، قامت لوتس بتصحيح اخطاء نسخة بيتا، او على الاقل الاخطاء التي وجدناها في نسخة بيتا لا سيما ما يتعلق منها بالكتابة العربية واتجاهها، وجاءت النسخة النهائية سليمة الا من مشكلة صغيرة في العرض خاصة في ما يتعلق بإعادة رسم الشاشة. ولكن يبدو ان هذا الخطأ حدث عندي فقط اذ لم اقع عليه في اجهزة اخرى.

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

ادارة طلبيات السيارات
مع ان ابروش يعتبر برنامج قواعد بيانات خفيف، الا ان التمرس في استخدامه يتيح للمستخدم انشاء تطبيقات فعّالة دون الحاجة الى كتابة امر برمجي واحد.
والتطبيق الذي نعرضه في المثال الحالي ينفذ عملية بحث آلية في قاعدة عملاء شركة بيع سيارات حسب مقياس محدد مسبقاً وهو وضع سيارة (مباع او مطلوب او موجود في المخزون). بعد عملية البحث هذه يقوم التطبيق بعمليات طباعة وتصدير بيانات وتحديث سجلات.
ويمكن حفظ كل بيانات هذه القاعدة اي بيانات العملاء وفهرسها واوامر الماكرو في ملف واحد لأن ابروش يتيح انشاء عدة نماذج واوراق عمل ضمن هذا الملف. ويمكن حفظ بيانات العملاء وبيانات السيارات في ورقة عمل واحدة كما يمكن حفظها في وقتين مختلفتين وربطهما بواسطة حقل رقم الحساب، ولكني وضعت البيانات كلها في ورقة واحدة تبسيطاً للمثال (انظر الشكل ١).
وبعد تشغيل ابروش، يمكن البدء بتحديد حقول القاعدة ثم المباشرة بإدخال بيانات العملاء وانواع السيارات التي يطلبوها في ورقة عمل. وتتألف هذه القاعدة من قسمين. ويتعلق القسم الاول بمعلومات العميل ويحتوي اسمه وكنيته ورقم حسابه والشركة التي يعمل فيها اضافة الى ارقام الهاتف والفاكس. اما القسم الثاني فيتعلق بالسيارات ويحتوي لكل عميل ماركة السيارة وطرازها ونوعها (اذا وجد) وسعرها وسنة انتاجها اضافة الى حقل وضعها الذي يحتوي ثلاث حالات هي مخزون ومطلوب ومباع. وكل سجل من هذه القاعدة يعرض وضع سيارة معينة بالنسبة الى عميل معين.
وبعد ادخال البيانات تبدأ عملية تطوير التطبيق الذي سوف يبحث آلياً عن السيارات المباعة ويطبع لائحة بها ويقوم بتحديث سجلاتها.

التطوير
اول ما يجب انشاؤه هو الشاشة الرئيسية للتطبيق (انظر الشكل ٢). وهذه الشاشة بسيطة جداً وتقتصر وظيفتها على استقبال المستخدم وعرض بإيجاز ما يقوم به التطبيق وتوفير زر يمكن للمستخدم الانتقال بواسطته الى شاشة الادخال التي سيجري فيها التعامل الاساسي مع التطبيق. ويتم ذلك باختيار امر نموذج من قائمة تكوين ثم اضافة كتل نصوص وزر واخيراً ادخال اوامر الماكرو لينقل هذا الزر المستخدم الى شاشة الادخال (نعرض في الجدول كل اسماء الازرار واوامر الماكرو الضرورية لهذا المثال). يجدر الذكر انه قبل تحديد اوامر الماكرو للزر يجب تكوين نموذج ثان يطلق عليه اسم شاشة الادخال للتمكن من تحديده في اوامر الماكرو المتعلقة بالزر.
اما شاشة الادخال (الشكل ٣) فتحتوي مربعات حقول لكل حقول قاعدة البيانات كما تحتوي ازراراً للتعامل مع هذه القاعدة. ويتم انشاء مربعات الحقول بسهولة بواسطة الاداة المناسبة ثم اعطائها المواصفات اللازمة من خلال مربع حوار التهيئة. الا ان حقل وضع يختلف عن الحقول الاخرى بكونه قائمة مسدلة. ويتم اختيار «صندوق حقل وقائمة» من الاساسيات في مربع حوار التهيئة مما يفتح مربعاً آخر يتيح ادخال القيم التي ستظهر في هذه القائمة وهي مخزون ومطلوب ومباع (انظر الشكل ٤).

بعد رسم مربعات الحقول، ننتقل الى رسم الازرار. وعند رسم كل زر يجب تحديد تفضيلاته في مربع حوار تهيئة وتشمل هذه التفضيلات النص الذي سيظهر على الزر وشكل هذا الزر والاهم من ذلك ما يجب ان يفعله الزر لدى نقره. وهنا تدخل اوامر الماكرو التي يمكن تحديدها من فقرة العمليات المبرمجة في مربع حوار تهيئة (لا اوافق على تسمية عمليات مبرمجة هذه لأن ابروش لا يوفر لغة برمجة وافضل تسميتها باوامر الماكرو). ففي هذه الفقرة يتم النقر على زر تعريف عملية مبرمجة لتظهر لائحة بالعمليات المبرمجة المتوافرة. فيتم النقر على زر جديد مما يفتح مربع حوار اوامر الماكرو. في هذا المربع، يتم اعطاء اسم للماكرو ثم اختيار احد الاوامر المتاحة في القائمة المنسدلة تحت عنوان امر (انظر الشكل ٥). ويعرض دليل استخدام ابروش تفسيراً لكل هذه الاوامر ويمكن الرجوع اليه لمعرفة ما تنفذه. وكل امر في هذه اللائحة يملك خيارات تظهر في الجزء السفلي من مربع الحوار لدى اختيار هذا الامر. كما يمكن تحديد اكثر من امر واحد لكل ماكرو. فيكفي لذلك كتابة امر وتحديد خياراته ثم الانتقال الى السطر التالي واختيار امر آخر.
بعد انشاء الماكرو الذي سيظهر اسمه في لائحة عمليات الماكرو يجب اختيار اسم هذا الماكرو في القائمة المسدلة التابعة لخيار «عند الانتقال بالفأرة» في مربع حوار تهيئة. ويتيح هذا الخيار تنفيذ الماكرو لدى النقر على الزر المناسب.
اما الازرار التي تم انشاؤها على شاشة الادخال، فهي زرا التنقل بين السجلات (< و>) وزر يتيح انشاء سجل جديد وزر يسمح بإيجاد كل السجلات وزر يعيد المستخدم الى الشاشة الرئيسية. اما زر طباعة انتقائية فهو اساس التطبيق ويقوم لدى نقره بتنفيذ ماكرو يبحث آلياً عن السجلات التي تحتوي في حقل «وضع» قيمة «مباع» لطباعة لائحة بالسيارات المباعة. وبعد طباعة هذه اللائحة يتم تنفيذ ماكرو آخر يبدّل قيمة «مباع» في كل السجلات السابقة بقيمة «مطلوب». وينتهي التطبيق بطباعة لائحة بكل السيارات المطلوبة.
تجدر الاشارة هنا ان احد اوامر الماكرو التابع لهذا الزر تقضي بتحديد شرط هو «اذا كان وضع = مباع» يحب تنفيذ ماكرو «عملية انتقائية». الا ان هذا الشرط لم يعمل معي وحصلت على رسالة خطأ من البرنامج. وامضيت ساعات كاملة احاول التغلب على الخطأ فلم افلح الى ان فكرت بتغيير اسم الحقل من «وضع» الى «situation». ويبدو ان البرنامج فهم هذه العبارة الانكليزية لأن الماكرو عمل بسلام. فليس لدي اي فكرة عن سبب ذلك.
اما في ماكرو «ابدال»، فلم يقبل البرنامج معادلة «situation = مطلوب» في امر «تحديد»، فاضطررت الى انشاء حقل جديد اسمه «situation2» ولا يحتوي الى على قيمة «مطلوب» لأتمكن من انشاء معادلة بالانكليزية هي «situation = situation2».

اخيراً يجب الانتباه الى وضع الشاشة الرئيسية في بداية التطبيق بسحب لسانها الى اول سطر الالسنة. وليكن التطبيق حسن الواجهة يجب الغاء عرض السنة النماذج واوراق العمل لألا ينتقل المستخدم اليها دون اللجوء الى الازرار. ويتم ذلك بإلغاء اظهار علامات الجدولة في قائمة عرض.
اسماء الازرار والماكرو المناسبة لها
| اسم الزر | اسم الماكرو |
|---|---|
| < > طباعة انتقائية انشاء سجل ايجاد الكل عودة |
< > طباعة انتقائية انشاء اظهار عودة |
| اسم الماكرو | الاوامر | الخيارات |
|---|---|---|
| سجلات | سابق | |
| > | سجلات | تالي |
| ابدال | تحديد | situation = situation2 |
| سجلات | تالي | |
| تشغيل | ابدال | |
| اظهار | ايجاد | كل |
| انشاء | سجلات | جديد |
| تنبيه | رسالة | يرجى الانتباه! تأكد من ادخالك. لقد تم تسجيل السيارات المباعة. |
| طباعة انتقائية | تشغيل | اذا situation = «مباع» تشغيل وعودة من عملية مبرمجة عملية انتقائية غير ذلك تشغيل وعودة من عملية مبرمجة تنبيه |
| عملية انتقائية | ايجاد | تنفيذ ايجاد مخزن (situation = مباع) |
| عرض | الانتقال: الى ورقة عمل ١ | |
| سجلات | الاول | |
| طباعة | ||
| ارسال | C\APPROACH\SOLD.TXT | |
| تشغيل | ابدال وارجع الى السطر التالي في العملية المبرمجة هذه | |
| عرض | الانتقال: الى شاشة ادخال | |
| ايجاد | كل | |
| ايجاد | تنفيذ ايجاد مخزن (situation = مطلوب) | |
| عرض | الانتقال الى: ورقة عمل ١ | |
| سجلات | الاول | |
| طباعة | ||
| عرض | الانتقال الى: شاشة ادخال | |
| ايجاد | كل | |
| عودة | عرض | الانتقال الى: شاشة رئيسية |
