مدونة منذر اسامة

العودة   منتديات جريت بلينز العربية Great Plains For Arab > منتدى مطوري جريت بلينز > مواضيع المطورين الأخرى

مواضيع المطورين الأخرى مواضيع المطورين التي لا تنتمي الى أي من التصنيفات السابقة
مثل لغة الديكستريتي (Dexterity) والأدوات التطويرية الأخرى (eConnect , Integration Maneger ,VS2005 for GP...etc.)

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 21-Jul-2011, 03:35 PM   #1
humam
مشرف منتدى المطورين
افتراضي تعلم كيفية كتابة الشفرة البرمجية بلغة الدكسترتي

في البداية اود ان اوضح بعض النقاط المهمة :
سوف استخدم نفس المثال السابق والذي قمنا يتصميم قاعدة البيانات الخاصة به في الموضوع تعلم الدكسترتي وقمنا بعملية تصميم الواجهة التفاعلية ضمن موضوع تصميم النماذج والنوافذ في الدكسترتي والان في هذا الموضوع سوف نتطرق الى وضع الشفرة البرمجية الخاصة بالمثال السابق وفي هذا الموضوع اود ان انوه ان طرق تعلم الشفرة البرمجة تعنى بالاساليب وليس بالعبارت البرمجة وذلك لان حتى المبرمجين المحترفين لا يحفظون كل العبارت البرمجة بل يجب عليك الاطلاع على هذه العبارت لمعرفة الامكانيات التي توفرها لذا وعند كتابة الشفرة سوف تحدد ما هي العبارت التي تحتاج اليها وهنا من الضروري عند كتابة الشفرة ان تفتح ملف المساعدة الخاص بالدكسترتي ومنه تستطيع اخذ العبارة وتصريفها النحوي الصحيح ولكن بالممارسة سوف تجد نفسك تحفظ العديد من العبارت.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 23-Jul-2011, 03:40 PM   #3
humam
مشرف منتدى المطورين
افتراضي Script Editor

قبل البدء بكتابة الشفرة البرمجية نحتاج الى التعرف على البيئة التي سوف نعمل عليها وهذا يسهل عملية كتابة الشفرة لبدء ذلك ننقر نقرا مزدوجا على الزر Save فتفح نافذة كتابة الشفرة Script Editor كما في الشكل 1 هنا نلاحظ الاسم التقني للشفرة وتقوم DEX باعطاء هذا الاسم لذا يفضل عدم تغييره هنا الاسم مثلا:
ARB_Customer_MSTR Save Button_CHG_DUP
الاسم مكون من مقاطع الاول يمثل اسم النافذة ثم بعد ذلك اسم المصدر Resource وهنا المصدر هو الزر Save واخيرا اسم الحدث وهنا الحدث Change وهو الذي ينفذ عند نقر المستخدم على الزر. طبعا اختيار الحدث مهم جدا ويؤثر على كيفية تنفيذ الشفرة البرمجية.

نلاحظ ايضا وجود عدة ازرار سوف نمر على المفيد منها:
Compile: وهذا الزر مهم جدا وهو يعمل على التدقيق النحوي للجملة البرمجية التي تقوم بكتابتها وبعد اكمالك كتابة عبارة او مجموعة من العبارات يمكنك الضغط على هذا الزر للتاكد من العبارة تمت كتابتها بالشكل الصحيح.
اذا كانت العبارة صحيحة لا تشاهد اي رسالة ولكن اذا كان هناك خطأ سوف تظهر نافذة جديدة وهنا يوجد نوعين من الاخطاء :
Warning
Error
النوع الاول هو في الحقيقة لايعتبر خطأ برمجي ولكن النوع الثاني Error وهو يعتبر خطأ في كتابة الشفرة البرمجية من الناحية النحوية وهنا يمكن النقر بشكل مزدوج على الخلل في النافذة Compile message لكي نتقل بشكل مباشر الى موقع الخلل وتحاول اصلاح الجملة البرمجية. ثم اغلق النافذة Compile Message واضغط مرة اخرى على الزر Compile لكي تشاهد النتيجة بعد التغيير وهكذا تستمر لحين حصولك على النتيجة الصحيحة وهنا يمكنك الاستعانة بملفات المساعدة لكي تجد الطريقة الصحيحة لكتابة العبارة البرمجية.

بقي هناك نوع من الاخطاء وهو الاصعب والذي لايستطيع محرر الاخطاء اكتشافه وهو الخلل المنطقي اي تكون الجمل مكتوبة بالشكل الصحيح ولكن منطقيا تم وضعها بشكل خاطىء يمكن اكتشاف هذه الاخطاء باستخدام Test Mode وهو متاح لهذا الغرض وتتم هذه العملية كلما اكملت جزء من الشفرة تشعر بانه سوف يكون معزول عن الاجزاء الاخرى لذا عليك فحصه بواسطة test mode لان عملية اكتشاف الخلل تكون اكثر تعقيدا كلما اصبحت الشفرة اطول.
Close: ويستخدم لاغلاق نافذة الشفرة البرمجية وسوف تسأل عن حفظ الشفرة بعد قيامك بأي عملية تغيير لذا عليك اختيار موافق اذا كنت متأكد بان ما اضفته من الشفرة هو سليم.
Print: وهو لطباعة الشفرة.
Delete: وهو لمحو او حذف الشفرة البرمجية.
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Fig1.JPG‏ المشاهدات:	765 الحجـــم:	78.9 كيلوبايت الرقم:	87   اضغط على الصورة لعرض أكبر الاســـم:	Fig2.JPG‏ المشاهدات:	795 الحجـــم:	117.5 كيلوبايت الرقم:	88  
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 23-Jul-2011, 04:03 PM   #4
أحمد الغامدي
عضو مميز
 
تاريخ التسجيل: Jun 2007
المشاركات: 162
من مواضيعي  
افتراضي

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

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

أشكرك استاذ همام
أحمد الغامدي غير متواجد حالياً   رد مع اقتباس
قديم 23-Jul-2011, 04:19 PM   #5
humam
مشرف منتدى المطورين
 
الصورة الرمزية humam
 
تاريخ التسجيل: Jul 2007
الدولة: UAE
المشاركات: 323
إرسال رسالة عبر مراسل Yahoo إلى humam
من مواضيعي  
افتراضي

Names: وهو يأتي في المرتبة الاولى من ناحية الاستخدام وانا افضل استخدامه وذلك لكي لاتقع اخطاء في كتابة اسماء الجداول والنوافذ او اسماء الحقول.هنا لكي يكون هذا الجزء مفهوم يجب ان ننوه بأن عبارت الدكسترتي تستخدم بشكل مكثف الاسماء التقنية Technical Name لكل من الجداول والنوافذ والتي كما ذكرنا في المواضيع السابقة يفضل عدم استخدام فراغات بين كلماتها بل نستخدم Underscore وهنا ان هذه الاسماء عادة تكون طويلة وقد يخطأ المبرمج في كتابتها وقد تضيع الوقت في البحث عن سبب الخلل في العبارة وقد تكون العبارة مكتوبة بشكل صحيح ولكن الخلل هو ان اسم الجدول او النافذة غير صحيح ولعدم الوقوع في هذه المشاكل يفضل على المبتدئين ببرمجة الدكسترتي استخدام هذا الزر للوصول الى الاسم الصحيح للعنصر الذي يجب ان يضاف اسمه الى الشفرة.
عند النقر على الزر Name سوف تفتح النافذة Names كما في الشكل 3 وهنا تنقسم العملية الى قسمين :
الاول :يتعلق بالحصول على اسماء النماذج او النوافذ او حقول النافذة Window Fields
وهنا تكون العملية متسلسلة اي تبدأ باختيار اسم النموذج اولا ثم بعد ذلك تختار النافذة ثم بعد ذلك تختار الحقل نأخذ مثال بسيط مثلا اذا اردت ادراج الحقل الذي يمثل Customer ID في الشفرة البرمجية هنا سوف ابداء اولا بالنموذج واطبع اول ثلاث احرف من اسم النموذج وهي ARB فتنتقل مباشرة الى النموذج الخاص بالمثال (وهنا نلاحظ مرة اخرى فائدة استخدام البادئة حيث يمكنك الانتقال بسهولة الى نماذجك الخاصة بدون داع لحفظ الاسم ) وبعد ذلك اضغط الزر Window لكي احدد النافذة لانه من المحتمل ان تكون هناك اكثر من نافذة متصلة بهذا النموذج هنا سوف تلاحظ نافذة واحدة اختر هذه النافذة من القائمة كما في الشكل 4 ثم اضغط على Window Field وهنا سوف تلاحظ قائمة بأسماء الحقول وهنا سوف تكون الاسماء الظاهرة هي Display Name ونحن في الشفرة نحتاج الى الى Technical Name (في حالتنا اي Display Name هو نفس Technical Name بالنسبة الى حقول الجدول والتي استخدمناها في النافذة والان اصبحت Window Field )بعد اختيار اسم الحقل وهو ARBCUSTID كما في الشكل 5 اضغط OK لتعود الى نافذة الشفرة وقد تم نسخ Technical Name الى حافظة الوندوز وباستخدام CTRL+V يمكنك لصق اسم الحقل في مكانه المخصص ضمن الشفرة وهكذا كلما احتجت الى اسم حقل من حقول النافذة عليك القيام بالخطوات السابقة.
نفس الشيء عليك فعله عندما تحتاج الى اسم النافذة يمكنك الوصول اليه كما يلي ابداء اولا بالنموذج واطبع اول ثلاث احرف من اسم النموذج وهي ARB فتنتقل مباشرة الى النموذج الخاص بالمثال (وهنا نلاحظ مرة اخرى فائدة استخدام البادئة حيث يمكنك الانتقال بسهولة الى نماذجك الخاصة بدون داع لحفظ الاسم ) وبعد ذلك اضغط الزر Window لكي احدد النافذة لانه من المحتمل ان تكون هناك اكثر من نافذة متصلة بهذا النموذج هنا سوف تلاحظ نافذة واحدة اختر هذه النافذة من القائمة كما في الشكل 4 ثم اضغط علىOK . نسخ Technical Name الى حافظة الوندوز وباستخدام CTRL+V يمكنك لصق اسم النافذة في مكانه المخصص ضمن الشفرة وهكذا .
ونفس الشيء يمكن فعله للحصول على اسم النموذج.

ثانيا :اسماء الجداول والحقول في بعض العبارت تحتاج الى اسم الجدول او اسم الحقل في الجدول (هنا يجب ان يتذكر الجميع عندما اقول اسم الجدول او الحقل او النافذة او النموذج فالمقصود هو Technical Name ما لم اذكر غير ذلك)وللحصول على اسم جدول مثلا انقر على Name ومنها انقر على Tables سوف تلاحظ قائمة بالجداول اطبع الاحرف ARB سوف تصل الى الجدول الخاص بمثالنا ثم انقر OK لتعود الى نافذة الشفرة وقد تم نسخ اسم الجدول الى حافظة الوندوز وباستخدام CTRL+V يمكنك لصق اسم الجدول في مكانه المخصص ضمن الشفرة.
اما اذا احتجت الى اسم حقل معين من الجدول بعد تحديد الجدول كما في الخطوة السابقة انقر على Table field سوف تلاحظ قائمة بحقول هذا الجدول اختر الحقل المطلوب(مثلا ARBADDRESS1 ) ثم اختر OK عند ذلك سوف يتم نسخ اسم الحقل مع اسم الجدول. وباستخدام CTRL+V يمكنك لصق اسم الحقل في الشفرة وسوف تكون النتيجة كما يلي: ARBADDRESS1 of table ARB_Customer_MSTR لاحظ الشكل 6 .

Debug:وهو من الخيارات المهة والتي تعطيك القابليلة على تتبع تنفيذ الشفرة في مرحلة Test Mode وسوف اعود لشرح كيفية استخدام هذه الخاصية بعد كتابة الكود.
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Fig3.JPG‏ المشاهدات:	712 الحجـــم:	38.6 كيلوبايت الرقم:	89   اضغط على الصورة لعرض أكبر الاســـم:	Fig4.JPG‏ المشاهدات:	697 الحجـــم:	29.1 كيلوبايت الرقم:	90   اضغط على الصورة لعرض أكبر الاســـم:	Fig5.JPG‏ المشاهدات:	663 الحجـــم:	38.1 كيلوبايت الرقم:	91   اضغط على الصورة لعرض أكبر الاســـم:	Fig6.JPG‏ المشاهدات:	671 الحجـــم:	35.6 كيلوبايت الرقم:	92  
__________________
GP Techno-Functional Consultant

آخر تعديل بواسطة humam ، 23-Jul-2007 الساعة 05:21 PM.
humam غير متواجد حالياً   رد مع اقتباس
قديم 23-Jul-2011, 04:42 PM   #6
humam
مشرف منتدى المطورين
افتراضي

اشكر كل الاخوان على مساهماتهم الطيبة وارجو ان تعود هذه المواضيع بالفائدة على كل الناطقين بلغة الضاد والله الموفق
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 25-Jul-2011, 11:32 AM   #7
humam
مشرف منتدى المطورين
افتراضي

عذرا عن التأخير في التواصل مع هذا الموضوع المهم وذلك بسبب ضغط العمل وانشاء الله سوف اتابع الموضوع باقرب فرصة ممكنه
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 25-Jul-2011, 11:42 AM   #8
حامد
عضو نشيط
 
تاريخ التسجيل: Jun 2007
المشاركات: 38
من مواضيعي  
افتراضي

ربنا يكون بعونك أخي الحبيب
__________________
قال رسول الله صلى الله عليه وسلم :
((إن الله وملائكته وأهل السماوات وأهل الأرض حتى النملة في جحرها والحيتان في البحر ليصلون على معلم الناس الخير))
حامد غير متواجد حالياً   رد مع اقتباس
قديم 26-Jul-2011, 09:38 AM   #9
humam
مشرف منتدى المطورين
افتراضي الشفرة البرمجية للزر Save:

الشفرة البرمجية للزر Save:
انقر نقرا مزدوجا على الزر Save لفتح Script Editor واكتب العبارت التالية :

;copy from window ARB_Customer_MSTR to table ARB_Customer_MSTR
;save table ARB_Customer_MSTR

اولا. كل العبارت يجب ان تنتهي بفارزة منقوطة (; ) وعند عدم اضافة هذه الفارزة سوف تحصل على رسالة خطأ عندما تضغط على الزر Compile .

ثانيا. العبارة الاولى وهي :
Copy from window window name to table table name
تعمل هذه العبارة على نسخ محتوى كل Window Field والتي تكون قيمة الخاصية Auto Copy لها True الى Table Buffer وهنا كما ذكرنا ان سم النافذة واسم الجدول هو Technical Name وقد وصحت سابقا كيف يمكن الحصول على الاسماء الصحيحية باستخدام الزر Name .

ثالثا. تعمل العبارة الثانية :
Save Table table name
على خزن المحتويات من Table Buffer الى SQL table وهي في الحقيقة سوف تترجم الى عبارة INSERT . وهنا ايضا سوف يكون اسم الجدول هو Technical Name .

رابعا. اضغط على الزر Compile للتأكد من ان العبارت مكتوبة بالشكل الصحيح ثم اغلق Script Editor واذا سألك عن حفظ المعلومات اختر Yes .
خامسا. الخطوة التالية هي التأكد من العمل المنطقي للشفرة وسوف نستخدم Query Analyzer لفعل ذلك وهنا علينا التأكد من ان الجدول الذي كوناه بواسطة الدكسترتي تم ادراجه ضمن قاعدة البيانات ولفعل ذلك اذهب الى القائمة Debug ومنها اختر الامر Test Mode او اضغط على CTRL + T لكي تنتقل الى Test Mode وسوف تكون العملية مشابهة الى عملية الدخول الى Great Plains بعد اختيار ODBC الصحيح اختر الشركة Fabrikam وهنا يجب ان تكون عملية Login باستخدام System Administrator اي الUser ID هو Sa وذلك لاننا سوف نحتاج الى ارفاق الجدول وهذا يحتاج الى صلاحيات.
بعد ذلك اذهب الى الامر:
File > Maintenance > SQL

ثم غير Database الى TWO ثم في القائمة المنسدلة اطبع الاحرف GP4Arab سوف نتقل مباشرة الى الجدول الذي صممناه في الموضوع الاول وهنا نلاحظ الاسم المستخدم للدلالة على الجدول هو Display Name وفي الشفرة البرمجية نستخدم Technical Name وفي استخدام SQL Server tools سوف نستخدم Physical Name للجدول وهذه القواعد يجب ان تكون ثابتة في اذهننا عند التعامل مع الجداول. الان اختر الجدول ثم انقر على الازرار الاربعة وهي وضيفتها تعمل على ازالة الجدول والاجراء المخزن الخاص به اذا كان موجود سابقا ثم تعيد عملية ارفاق الجدول والاجراء المخزن مرة اخرى الى SQL Server . سوف تظهر رسالة تحذير انقر على Yes .
الان سوف نحتاج الى اضافة النافذة الى Shortcut اختر الامر ADD ثم انتقي Sales وهنا ابحث عن النافذة والتي كان Display Name لها هو Customer Maintenance في الحقيقة سوف تجد نافذتين بدل واحدة الاولى هي نافذة GP الاصلية والثانية هي نافذتنا ان تشابه Display Name سوف لايسبب اي مشاكل وذلك لان Technical Name مختلف بين النافذتين ولكن يفضل عدم استخدام نفس الاسماء وذلك لمنع الالتباس مع نوافذ GP ولكن هنا جائز لاننا في مرحلة تدريب.المهم سوف تظهر النافذة في Shortcut وبالنقر عليها سوف تفتح النافذة الان سوف نقوم بأدخل اول Record وسوف نستخدم كلمة Test لتعبئة كل الحقول لان كل الحقول هنا نصية ثم نضغط على الزر Save. بعد الضغط على الزر حفظ نلاحظ ان المعلومات لا تزال معروضة على النافذة وفي الحقيقة يجب ازالتها بعد الحفظ وللقيام بذلك سوف نقوم لاحقا باضافة عبارة لفعل ذلك ولكن هنا نحن الان بصدد فحص عملية الحفظ الان افتح Query Analyzer واختر قاعدة البيانات TWO ونفذ العبارة التالية :

SELECT * FROM ARB00101
هنا سوف نلاحظ اول Record قمنا باضفته قدم تم حفظه في الجدول بشكل سليم والى هنا ينتهي هذا الجزء سوف نعود لاحقا لتطوير الشفرة البرمجية في هذا الزر لاحقا.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
قديم 26-Jul-2011, 10:16 AM   #10
humam
مشرف منتدى المطورين
افتراضي

لكي نزيل المعلومات المعروضة في النافذة بعد نجاح عملية الحفظ نحتاج الى اضافة العبارة التالية في نهاية الشفرة البرمجية للزر Save :
;restart window
وعمل هذه العبارة هو تفريغ كل الحقول الموجودة في النافذة
الان نعمل على ادخال Record جديد ونستخدم Test1 في كل حقول النافذة ثم نضغط على الزر حفظ نلاحظ الان بعد الحفظ يتم تفريغ كل حقول النافذة.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس
إضافة رد


يتصفح الموضوع حالياً : 1 (0 عضو و 1 ضيف)
 
أدوات الموضوع
انواع عرض الموضوع

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
تعلم لغة الدكسترتي humam مواضيع المطورين الأخرى 59 20-May-2013 11:00 AM
تعلم كيفية بناء وتطوير مشاريع تستخدم eConnect humam مواضيع المطورين الأخرى 39 30-Mar-2013 12:00 PM
كيفية تعلم جريت بلينز نادر احمد ماهر حزمة التشغيل (جزيئ المبيعات - المشتريات - المستودعات ) 1 23-Oct-2011 01:08 PM


جميع الأوقات بتوقيت GMT +3. الساعة الآن 02:33 PM.


Powered by vBulletin® Version 3.8.3

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

Copyright © 2000-2010 Jelsoft Enterprises Limited.
الموقع لا يمثل أي جهة رسمية بل هو جهد شخصي يرمي الى تجميع القدرات في برنامج جريت بلينز