بتاريخ: 2 ديسمبر 200817 سنة comment_144218 السلام عليكم انا كنت اتعلمت الموضوع ده من شركة سابقة وحابب اقلكم عليه وهو انك ما تكررش الكود المستخدم لفك الاسماء او اى كود ثابت هتستخدمه كتير عندك فى البرنامج عن طريق عمل هذه الفنكشن FUNCTION lookup ( code_type IN VARCHAR2, v_par IN VARCHAR2 DEFAULT NULL, v_par1 IN VARCHAR2 DEFAULT NULL ) RETURN VARCHAR2 IS wdesc VARCHAR2 (200) := ' '; BEGIN --------------------------------------- ----- ACC CODES --------------------------------------- CASE code_type WHEN 'CURRENCY' THEN SELECT (CASE :GLOBAL.lang WHEN 'A' THEN currency_desc ELSE currency_desc_e END ) INTO wdesc FROM ac_currency WHERE currency_code = v_par; ------------------- WHEN 'ACCOUNT' THEN SELECT (CASE :GLOBAL.lang WHEN 'A' THEN account_name ELSE account_name_e END) INTO wdesc FROM ac_master WHERE account_number = v_par; ELSE NULL; END CASE; ------------------------------ RETURN wdesc; EXCEPTION --------------------------------------- WHEN NO_DATA_FOUND THEN CASE WHEN :SYSTEM.record_status IN ('INSERT', 'CHANGED', 'NEW') THEN --------------------------------------- CASE code_type WHEN 'CURRENCY' THEN display_message ('15', 1, 1); -------------------------------------- WHEN 'ACCOUNT' THEN display_message ('15', 2, 1); ELSE msg ('NO_DATA_FOUND..LOOKUP', 'NO_DATA_FOUND..LOOKUP', 1 ); END CASE; ELSE RETURN NULL; END CASE; WHEN TOO_MANY_ROWS THEN msg ('TOO_MANY_ROWS..LOOKUP', 'TOO_MANY_ROWS..LOOKUP', 1); ------------------ WHEN OTHERS THEN ------------------ msg ( ERROR_TYPE || '_' || TO_CHAR (ERROR_CODE) || ': ' || ERROR_TEXT || 'OTHERS..LOOKUP', ERROR_TYPE || '_' || TO_CHAR (ERROR_CODE) || ': ' || ERROR_TEXT || 'OTHERS..LOOKUP', 1 ); ------------------ END lookup; ديه الاجراء المستخدم لاظهار الرسالة PROCEDURE MSG (MESSAGE_DESC_A VARCHAR2, -- MESSAGE IN ARABIC MESSAGE_DESC_E VARCHAR2, -- MESSAGE IN ENGLISH FINISH NUMBER DEFAULT 0 -- IF 1 THEN RAISE FORM_TRIGGER_FAILURE )IS alert_dummy number; vLang VARCHAR2(10); BEGIN vLang := :Global.Lang; IF vLang = 'A' THEN set_alert_property('MSG_ALERT',TITLE,'تحذير'); set_alert_property('MSG_ALERT',alert_message_text, MESSAGE_DESC_A); SET_ALERT_button_PROPERTY('MSG_ALERT',alert_button1,label,'موافق;'); ELSE set_alert_property('MSG_ALERT',TITLE, 'Alert'); set_alert_property('MSG_ALERT',alert_message_text, MESSAGE_DESC_E); SET_ALERT_button_PROPERTY('MSG_ALERT',alert_button1,label,'OK'); END IF; alert_dummy := show_alert('MSG_ALERT'); IF FINISH = 1 THEN RAISE FORM_TRIGGER_FAILURE; END IF; END; وبعد كده تستخد هذه الفنكشن فى التريجرز when-validate-itempost-queryوتكتب فيهم هذا الكود if currency_code is not null then :curr_name:=lookup('CURRENCY',:currency_code); else :curr_name:=null; end if; ارجو انها تفيدكم وتوفر عليكم وقت فى تكرار الاستعلام تم تعديل 2 ديسمبر 200817 سنة بواسطة msayed.evara تقديم بلاغ
بتاريخ: 2 ديسمبر 200817 سنة comment_144231 thanks alot i hope u can pass more trick of code like this it will help alotsorry something wrong in arabic language so i cant type into arabicsalam 3alikom تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.