عرض مشاركة واحدة
قديم 04-Aug-2011, 04:44 PM   #27
humam
مشرف منتدى المطورين
افتراضي


ان العبارتين Copy from & save table كما وضحنا سوف تعمل على حفظ المعلومات من النافذة الى الجدول الان هناك احتمالين الاول هو نجاح عملية الحفظ لذا سوف تعيد الدالة err القيمة OKAY وبتالي سوف لايتم تنفيذ عبارة الشرط الاولى وينتقل التنفيذ مباشرة الى السطر الاخير من الشفرة وتحديدا الى العبارة restart window والتي تعمل على مسح محتويات النافذة بعد عملية الحفظ التي تمت بشكل سليم .

الان نأتي الى الاحتمال الثاني وهو ان المستخدم يحاول تعديل سجل موجود وعندما نحاول تنفيذ العبارة save سوف يحصل هناك خطأ وتعيد الدالة err قيمة الخطأ وهو DUPLICATE وبتالي سوف يتحقق شرط عبارة if then الاولى وننتقل الى مجموعة من العبارت تعمل على ما يلي:
اولا. نفرغ محتويات Table Buffer
ثانيا.تعمل عبارة range table على ملئ Table buffer بالسجل المحدد اعتمادا على قيمة حقل النافذة Customer ID .
ثالثا. تقوم العبارة change first بوظيفتين الاولى هي استرجاع السجل الاول من Table Buffer والثانية انها تهيئ الجدول ARB_Customer_MSTR للقيام بعملية تعديل محتوى احد السجلات الموجودة حاليا.

رابعا. تقوم عبارة copy from & save table بعملية حفظ التعديلات التي اجراها المستخدم على السجل وسوف تتم هذه العملية بنجاح ولكن للاحتياط وضعت بعدها عبارة if then لفحص العملية الاخيرة لانه قد يحصل هناك خلل اثناء عملية الحفظ مثلا تنقطع الشبكة وهنا ان العبارة change table خطرة نوعا ما لانها تسبب اقفال الجدول وهذا الاقفال لا يزال الا بتنفيذ عملية save ناجحة اما اذا لم تنجح عملية الحفظ لاي سبب من الاسباب سوف تعمل عبارة if then على تنفيذ العبارة release table وهي تعمل على ازلة القفل من الجدول لاننا اذا لم نفعل ذلك سوف لا يستطيع المستخدم ان يصل الى الجدول لانه سوف يكون مغلق.
الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر الاســـم:	Fig11.JPG‏ المشاهدات:	571 الحجـــم:	63.5 كيلوبايت الرقم:	113  
__________________
GP Techno-Functional Consultant
humam غير متواجد حالياً   رد مع اقتباس