عرض مشاركة واحدة
قديم 18-Nov-2011, 06:59 PM   #22
humam
مشرف منتدى المطورين
افتراضي

اضافة الى ذلك تم تعريف ثلاث متغيرات هي :

local CmdSequence Seq
local integer Status
local boolean AddMenuItems

الاول سوف يستخدم لخزن الموقع للامر الجديد الذي سوف يضاف اما الثاني يستخدم لخزن القيمة التي تعود بها الدالة AddCommandToMenu اما الثالث وهو الاهم وهو متغير منطقي نستخدمه للتحقق من الفقرات التالية:
اولا نعطي قيمة اولية له هي True .

ثانيا.نستخدم برامتر الادخال Load Mode للتحقق من الطريقة التي يستخدمها الجريت بيلنز للقيام بعملية بناء القوائم وهذا ما تفعله عبارة IF THEN الاولى فأذا كان الجريت بلينز يكون هذه القوائم من الجدول فأذا كان كذلك علينا التأكد من ان قوائم المنتج الجديد قد اضيفت الى الجدول او لا وهنا نستخدم الدالة MenusExistForProduct(3333) of form syMenuObj للقيام بذلك فأذا كانت القوائم مضافة الى الجدول سوف نغير قيمة المتغير AddMenuItems الى false وبتالي لا يوجد داع لاضافة هذه القوائم الى الجدول مرة اخرى لان هذه العملية سوف تأخذ وقت طويل وهنا كما ذكرت سابقا (حدثت عندنا حالة في مشروع سابق قامت الشركة بتطويره وهي ان المستخدمين يعانون من البطىء الشديد اثناء محاولة الدخول الى الجريت بلينز وطلبوا مني ايجاد السبب وبعد البحث في الوثائق وجدت السبب الذي ذكرته في اعلاه حيث اغفل المطور السابق وضع عبارة if then للتاكد من الطريقة التي يستخدمها الجريت بلينز لتكوين القوائم فأدى هذا الى البطئ في محاولة الولوج الى الجريت بلينز وسوف اوضح موقع هذه العبارة في الجزء التالي من الشفرة البرمجية) هنا المطور السابق اغفل وضع عبارة If then السابقة للتحقق من ان القوائم موجودة في الجدول او لا وبتالي في كل مرة يحاول فيها المستخدم الولوج الى الجريت بلينز تتم عملية اضافة هذه القوائم للجدول وكان هذا السبب ببطىء عملية الولوج الى الجريت بلينز لذا عبارة الشرط السابقة في غاية الاهمية.
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس