منتديات جريت بلينز العربية Great Plains For Arab

منتديات جريت بلينز العربية Great Plains For Arab (http://www.gp4arab.com/forum/index.php)
-   مواضيع المطورين الأخرى (http://www.gp4arab.com/forum/forumdisplay.php?f=8)
-   -   تصميم النماذج والنوافذ في الدكسترتي (http://www.gp4arab.com/forum/showthread.php?t=115)

humam 18-Jul-2011 08:54 AM

تصميم النماذج والنوافذ في الدكسترتي
 
2 مرفق
الحلقة السادسة تصميم النماذج والنوافذ

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

تصميم نموذج جديد

ان النموذج هنا في الدكسترتي من حيث المفهوم يختلف عن النموذج في لغة الفجوال بيسك حيث ان النموذج في الفجوال بيسك هو كائن مرئي ويحتوي على مجموعة اخرى من الكائنات التي تعمل مجتمعة على تأدية وظيفة معينة. اما في الدكسترتي فان النموذج هو كائن غير مرئي ويستعمل كحيز يعمل على تجميع المصادر Resources مثل النوافذ والجداول والقوائم و Script والتي تعمل مجتمعة على تأدية وظيفة محددة الا وهي توفير واجهة تفاعلية للتطبيق الذي انت بصدد تطويره.


العناصر الاساسية لتصميم النموذج

لكي تصمم نموذج جديد بعد فتح Dictionary اختر Forms ثم اضغط على الزر New في اعلى يسار الشاشة سوف يؤدي ذلك الى فتح نافذة تصميم النموذج Form Definition
كما في الشكل 1 . العناصر الاساسية لتصميم النموذج هي:
Name: يمكن اعطاء اي اسم معبر عن وظيفة النموذج وهنا سوف نسمي هذا النموذج ب ARB_Customer_MSTR.
Series: وتمثل الفئة التي سوف ينتمي اليها النموذج وهنا يمكن استخدام نفس القواعد التي ذكرتها في مرحلة تصميم الجداول.وهنا سوف نختار Sales لان النموذج متعلق بالزبائن.
Windows: وهي سوف تمثل الجزء المرئي من النموذج ويمكن للنموذج ان يحتوي على اكثر من نافذة واحدة وفق متطلبات التصميم.من الناحية العملية سوف نعود الى هذه الخطوة بعد اكمال عملية ارفاق الجداول الى النموذج.
Tables:وهنا سوف تقوم بعملية ارفاق كل الجداول التي سوف تقوم بالتعامل معها في هذا النموذج ولهذا يجب ان تجري تحليل كامل للجداول التي تريد استدعائها في نموذجك قبل البدء بتصميم النافذة ويفضل القيام بهذه الخطوة قبل تصميم النوافذ لان ذلك يمنع ظهور رسائل الخطأ عند البدء بكتابة الشفرة البرمجية لكن هذا لايمنع من اضافة جداول اخرى لاحقا في مرحلة التصميم حتى بعد تكوين النوافذ.وهنا سوف نعمل اولا على ارفاق جدولنا الاساسي الى النموذج ثم لاحقا بعد تطور هذا المثال قد نضيف جداول اخرى.الان اضغط على علامة الجدولة Tables ثم اضغط على الزر Attach لكي تفتح نافذة Table Lookup واطبع ARB سوف تنتقل مباشرة الى الجدول ARB_Customer_MSTR ثم اضغط OK لكي تضيف هذا الجدول الى النموذج لاحظ الشكل2.الان بعد اضافة الجدول يمكنك استخدام Open لفتح الجدول في نافذة تصميم الجدول وكذلك يمكن ازلة الجدول من النموذج بعد اختياره واضغط على الزر Detach ولكي تتحكم بخيارت الجدول اضغط الزر Option وهنا يمكنك التحكم في كيفية الوصول الى البيانات مثلا يمكن جعل الجدول للقراءة فقط يمكن فعل ذلك في بعض انواع النوافذ مثل نوافذ الاستعلام Inquiry . وهناك خيار اخر للتحكم بحجم Cursor ويفضل تركه على الخيار Default وخيار اخر يعمل على فتح الجدول بمجرد فتح النموذج وحتى لو لم يتم استدعاء الجدول من الكود ويفضل ايضا عدم استخدام هذا الخيار.

Script: وهنا يمكن اضافة كود عامة يتم الوصول اليها من قبل كل نوافذ النموذج وهنا يمكن وضع اجراءات عامة وكذلك دوال عامة.
Constant: ويستخدم ايضا لتعرف ثوابت على مستوى النموذج اي يمكن الوصول اليها من كل نوافذ النموذج.
Menu: وهذا يستخدم في حالة كونك تصمم مشروع من نوع Stand Alone Application. وهذا الخيار ليس له علاقة بMenu التي يمكن اضافتها الى GP
Command: ويستخدم في انواع معينة من النماذج مثل تلك النماذج التي تستخدم لاضافة Menu الخاص بتطبيقك الى قوائم GP.

Monzer Osama 18-Jul-2011 09:17 AM

جهود جبارة أخي همام ...أسأل الله أن يبارك في جهودك ولا يحرمك الأجر
نشكرك على هذه الدروس الفريدة من نوعها....

أحمد الغامدي 18-Jul-2011 02:29 PM

الله يجزاك خير أخي همام وجعل هذا العمل في موازين أعمالك

والشكر للإدارة على التحسينات على المنتدى

humam 18-Jul-2011 07:02 PM

الشكر لله اخواني الاعزاء اتمنى ان تكون هذه المواضيع نافعة لاخواني اعضاء وزوار هذا المنتدى

humam 18-Jul-2011 07:06 PM

تصميم نافذة جديدة
 
2 مرفق
تصميم نافذة جديدة:

بعد اكمال عملية ارفاق الجداول الى النموذج سوف نعود الى الخطوة الثانية وهي عملية اضافة نافذة جديدة عن طريق الضغط على علامة التبويب Windows ثم بعد ذلك اضغط على الزر New كما في الشكل1 .وبمجرد الضغط على هذا الزر سوف تفتح نافذة جديدة كما في الشكل رقم 2 ويظهر على يسار الشاشة مربع الادوات Toolbox (في حالة عدم ظهور هذا المربع اضغط Ctrl+B ) وعلى يمين الشاشة مربع الخصائص Proprieties (في حالة عدم ظهور هذا المربع اضغط Ctrl +M ) .
الخطوة التالية هي اعطاء تسمية للنافذة الجديدة وهنا ان النافذة الجديدة سوف تاخذ اسمين الاول هو Technical Name وهنا يفضل عدم استخدام فراغات بين الكلمات ونستخدم underscore للفصل بين الكلمات والذي يستخدم داخل الكود والاخرى هو Title والذي يشاهده المستخدم.
لاعطاء Technical Name استخدم مربع الخصائص واختر علامة التبويب Objects ثم اختر الخاصية Name واكتب الاسم التالي ARB_Customer_MSTR ثم اختر الخاصية Title واكتب الاسم Customer Maintenance والذي يمثل الاسم الذي سوف يشاهده المستخدم.
هناك خاصية مهمة هي Auto link table والتي الضغط عليها سوف تلاحظ قائمة منسدلة تحتوي على اسماء كل الجداول التي تم ارفاقها بالنموذج ويمكن منها ان تختار الجدول الاساسي الذي سوف تستخدمه النافذة في حالتنا هنا يوجد جدول واحد هو ARB_Customer_MSTR عليك اختياره.

الان انتقل الى علامة التوبيب Visual وانتقي الخاصية Control Area ثم غير قيمتها من False الى True سوف تلاحظ ظهور شريط العمل ذو لون ازرق باهت في اعلى الشاشة وسوف نستخدم هذا الشريط لاضافة الازرار التي سوف نستخدمها في النافذة.
بقي هناك علامة التبويب Scripts وهنا يمكن ان تضع الكود التي تلائم الحدث وهنا نلاحظ وجود عدد من الاحداث التي تتأثر بها النافذة مثل الحدث Activate والذي يتم تنفيذه في كل مرة تفعل مثل فتح النافذة او استدعاء النافذة من خلف نافذة اخرى وهناك تحديدات على الكود التي يمكن استخدامها مع هذا الحدث مثل عبارة warring والتي سوف تؤدي الى تنفيذ حلقة غير منتهية وعموما يفضل عدم كتابة كود في هذا الحدث. الحدث الاخر وهو Pre والذي ينفذ مباشرة بعد فتح النافذة ويمكن استخدام هذا الحدث لوضع قيم اولية وكذلك ينفذ الحدث عند تنفيذ العبارتين :
Restart Form
Restart Window
والتي تستعمل على الاغلب لمسح محتويات النافذة بعد عملية Save او عندما تحتاج الى العودة الى القيم الاولية بعد تنفيذ حلقة معينة.
الحدث الاخر وهو Post وينفذ عندما يحاول المستخدم ان يقوم باغلاق النافذة وهنا يمكن وضع كود لكي نتاكد من ان التغيرات الاخيرة التي قام بها المستخدم قد تم حفظها او لا وفي حالة عدم الحفظ سوف نوقف عملية الاغلاق ونسأل المستخدم ان يحفظ السجل قبل اغلاق النافذة.

humam 18-Jul-2011 07:29 PM

أضافة Window Field
 
2 مرفق
أضافة Window Field :

الخطوة التالية وبعد اكمال الاعدادت الخاصة بالنافذة سوف نبداء باضافة الحقول الى النافذة وهنا ان Window Field كما قلنا سابقا سوف تكون نوعان هما :
Global Field: وهو في الاساس قد يكون Table Field ويمكن استدائعه للظهور على النافذة وهو سوف يمثل همزة الوصل بين النافذة والجدول او الجداول التي نتعامل معها.
Local Field: وهو حقل يتم تكوينه للاستخدام في النافذة ولا يتم تخزين قيمته في الجداول ونقوم بتصميم هذا النوع من الحقول فقط عندما لانجد الحقل المطلوب في Global Field اما في حالة توفر الحقول في Global Fields لا يوجد داع لتكوين مثل هذا الحقل.
اولا سوف نبداء باضافة الازرار الى منطقة العمل وهذه الازرار هي
Save
Clear
Delete
Print
وللحصول على هذه الازرار انتقل الى مربع الادوات واختر Globals Fields وضع المؤشر في القائمة واطبع كلمة Save سوف تظهر لك عدة خيارات اختر منها Save Button ثم اسحبه الى منطقة العمل لكي يكون شكل النافذة كما في الصورة رقم 3. وقم بنفس العملية مرة اخرى ولكن اطبع هذه المرةClear واسحب Clear Button وضعه بجانب Saveوهكذا مع Delete Button وضعه بجانب Clear واخيرا اطبع Print ثم اسحب هذا الزر وضعه هذه المرة في النهاية اليمنى من شريط العمل واعمل على زيادة عرض النافذة الى 560 والارتفاع الى 400 قد نحتاج فيما بعد الى تغييرهذه الابعاد ولكن يجب ان يبدو شكل النافذة كما في الصورة الثانية

humam 19-Jul-2011 06:03 PM

تعديل خصائص الازرار
 
1 مرفق
تعديل خصائص الازرار

عند تصميم اي نافذة جديدة دائما نحاول ان نجعل النافذة تبدو مثل نوافذ الجريت بلينز الاخرى لكي لايشعر المستخدم انه يتعامل مع نافذة غريبة عن بيئة الجريت بلينز لذا سوف نحاول تغيير خصائص الازرار التي قمنا باضافتها الى النافذة وكما يلي:
اولا.اختر كل الازرار عن طريق الضغط على الازار مع ضغط زر CTRL وبذلك سوف نستطيع تعديل خصائص الازرار مجتمعة بدل من عمل ذلك بشكل مفرد.
ثانيا. انتقل الى مربع الخصائص (اذا لم يكن ظاهر استخدم CTRL + M ) واختر علامة التبويب Visual ومنها انتقي الخاصية Appearance وهنا غير قيمة الخاصية الى 3DHighlight ويمكن القيام بذلك عن طريق النقر المزدوج على الحقل الذي يحتوي على قيمة الخاصية وسوف تلاحظ ان قيمة الخاصية سوف تتغير في كل مرة نتقر فيها نقرا مزدوجا على قيمة الخاصية او اختر من القائمة المنسدلة التي تظهر اعلى مربع الخواص القيمة المطلوبة وهي 3DHighlight .
ثالثا.انتقل الى الخاصية BackColor لتغيير لون الخلفية وبالنقر المزدوج على قيمة الخاصية سوف تفتح نافذة BackColor ومنها اختر علامة التبويب System واختر System-Toolbar وبعد سوف تلاحظ ان الخلفية اصبحت شفافة.
رابعا.الان اختر فقط زر الطباعة Print واختر الخاصية Style والتي تتحكم بكيفية عرض الازرار واختر القيمة Graphic Only والتي تؤدي الى اظهار فقط الصورة المرفقة مع الزر لان هذا هو الحال مع ازرار الطباعة في GP وهناك قيم اخرى يمكنك التعرف على تاثيرها من اسم القيمة مثلا Text Only لاختيار فقط النص وقيم اخرى لمحاذاة النص.
خامسا. نحتاج الى رسم خطوط فاصلة بين زر Save و Clear واخر بين زر Clear و Delete ولفعل ذلك استخدم اداة الخط من مربع الادوات وسوف تكون هي الاداة الاخيرة في مربع الادوات ويجب ان يكون طول الخط هو 17.
وهكذا بعد الانتهاء من هذه التغييرات يجب ان تبدو النافذة كما في الشكل 5

humam 19-Jul-2011 06:43 PM

أضافة الحقول من الجدول ARB_Customer_MSTR
 
3 مرفق
أضافة الحقول من الجدول ARB_Customer_MSTR

الان وقبل اضافة الحقول من الجدول المذكور نحتاج الى اضافة التسميات Labels وللقيام بذلك سوف نستخدم اداة التسمية وهنا اسمها Static Text وهي على شكل حرف A بعد النقر على هذه الاداة انقر اي مكان داخل الشاشة واكتب النص التالي :
Customer ID ثم انقر مرة اخرى خارج هذا النص واضف النص التالي Customer Name وهكذا اضف Short Name ثم بعد ذلك انتقي التسمية الاولى Customer ID غير اعداد الخواص التالية كما يلي:
Position Left=8 وهو يحدد البعد عن الحافية اليسرى.
Position Top =34 وهو يحدد البعد عن الحافة العليا.
Size Height=20 ويمثال طول التسمية.
Size Width =96 ويمثل غرض التسمية.
ثم اذهب الى مربع الادوات وغير القائمة المنسدلة من Global Fields الى الجدول ARB_Customer_MSTR كما في الشكل6وبذلك سوف تلاحظ ان القائمة سوف تحتوي فقط على الحقول الموجودة في جدولك من هذه الحقول اسحب الحقل ARBCUSTID وضعه بجانب التسمية Customer ID ثم بعد ذلك غير خواص هذا الحقل وكما يلي:
Position Left=104 وهو يحدد البعد عن الحافية اليسرى.
Position Top =34 وهو يحدد البعد عن الحافة العليا.
Size Height=20 ويمثال طول التسمية.
Size Width =120 ويمثل غرض التسمية.
الان وقبل الاستمرار في اضافة الحقول نحتاج الى محاذاة باقي التسميات ولفعل ذلك نستخدم ادوات المحاذاة الان في مربع الادوات انقر على علامة التبويب Arrange كما في الشكل 7 سوف تلاحظ مجموعة الاوامر التي يمكن استخدامها الان انتقي التسميات الثلاثة ثم اضغط على زر المحاذاة الى اليسار كما في الشكل 7 وبعد ذلك
انقر على زر مساواة العرض كما في الشكل 7 ايضا .
بعد ذلك ابقي على انتقاء التسميات الثلاث وغير الخصائص التالية من نافذة الخصائص:
Appearance=3DHighlight
Border=True
وذلك لجعل التسميات تبدو كما التسميات الموجودة في GP.

بعد ذلك سوف نعود الى قائمة الحقول ونختار الحقول ARBCUSTNAME و ARBSHORTNAME ونضعها بجانب التسميات الخاصة بها وتكون الخواص كما يلي:

ARBCUSTNAME
Position Left=104 وهو يحدد البعد عن الحافية اليسرى.
Position Top =53 وهو يحدد البعد عن الحافة العليا.
Size Height=20 ويمثال طول التسمية.
Size Width =260 ويمثل غرض التسمية.

ARBSHORTNAME
Position Left=104 وهو يحدد البعد عن الحافية اليسرى.
Position Top =72 وهو يحدد البعد عن الحافة العليا.
Size Height=20 ويمثال طول التسمية.
Size Width =120 ويمثل غرض التسمية.
ويكون الشكل النهائي بعد هذه التعديلات كما في الشكل 8 .

حامد 21-Jul-2011 08:10 AM

أشكرك أستاذ همام من كل قلبي على هذه الدروس
وأحي فيك هذا النشاط والعمل الدؤوب..

جزاك الله خير

humam 21-Jul-2011 11:35 AM

الشكر لله اخي العزيز


جميع الأوقات بتوقيت GMT +3. الساعة الآن 11:18 AM.

Powered by vBulletin® Version 3.8.3

الموقع والمنتدى من تطوير » شركة المنذر للاستضافة والتصميم


الموقع لا يمثل أي جهة رسمية بل هو جهد شخصي يرمي الى تجميع القدرات في برنامج جريت بلينز