بتاريخ: 14 أغسطس 20169 سنة comment_277119 مشكلة تحدث بعد امر DO_KEY('COMMIT_FORM'); انه بيعمل update لكل سجلات الجدول وليس ال record اللى على البلوك تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة comment_277148 بالنسبة للأمر commit على مستوى البلوك فهو يقوم بحفظ جميع التغييرات على جميع الريكوردات في البلوك ولحفظ تعديلات ريكورد واحد قم بكتابة كود update على زر button معين ونفذ تريجر خاصة بالأمر والله أعلم تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة كاتب الموضوع comment_277150 شكرا على التعاون ولكن ده بلوك MASTER ولازم اسنتخدم الامر DO_KEY('COMMIT_FORM'); تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة كاتب الموضوع comment_277155 الكود المكتوب فى زرار الجفظ DECLARE COUNTER NUMBER:=0; AAA ITEM; BEGIN If :GLOBAL.ACT_TYPE= 1 or :GLOBAL.ACT_TYPE= 2 then :GOLD_OUT_H.user_ID:=:GLOBAL.USER_ID; MAIN_PROC.CHK_VALUES; CASH_BAL1; GO_BLOCK('GOLD_OUT'); PRO_SUM; GO_BLOCK('GOLD_OUT_H'); DO_KEY('COMMIT_FORM'); END; تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة comment_277156 في 3 Procedures في البلوك , في حاجة فيهم بتعمل Update ؟ تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة كاتب الموضوع comment_277157 ال 3 تريجير ليس فيهم UPDATE لكن بالنسبة للبلوك فى ال WHERE CLAUSE نوجد هذه العبارة RETURN_V=1 لان هذا الجدول يستعمل مع البضاعة السليمة لهذه الشاشة والبضاعة المرتدة فى شاشة اخرى تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة comment_277163 انا اقصد MAIN_PROC.CHK_VALUES; CASH_BAL1; PRO_SUM; تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة كاتب الموضوع comment_277166 بالنسبة لل تريجير الاول MAIN_PROC.CHK_VALUES; PROCEDURE CHK_VALUES IS X NUMBER; B BOOLEAN; BEGIN IF :GOLD_OUT_H.CCODE IS NULL THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ãä ÝÖáß ÇÏÎá ÇáßæÏ'); GO_ITEM('GOLD_OUT_H.CCODE'); X:=SHOW_ALERT('STOPSAVE'); B:=SHOW_LOV('L_GOLD'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.SAL_ID IS NULL THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ãä ÝÖáß ÇÏÎá ÇÇßæÏ'); GO_ITEM('GOLD_OUT_H.SAL_NAME_ID'); X:=SHOW_ALERT('STOPSAVE'); B:=SHOW_LOV('LOV_SALES'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.S_DATE IS NULL THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ãä ÝÖáß ÇÏÎá ÇáÊÇÑíÎ'); GO_ITEM('GOLD_OUT.S_DATE'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.S_DATE >:GLOBAL.SYS_DATE THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ÇáÊÇÑíÎ ÇßÈÑ ãä ÊÇÑíÎ ÇáäÙÇã'); GO_ITEM('GOLD_OUT_H.S_DATE'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF TO_NUMBER(:GLOBAL.T_MONTH)<>TO_NUMBER(TO_CHAR(:GOLD_OUT_H.S_DATE,'MM')) THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'åÐÇ ÇáÔåÑ ãÛáÞ'); GO_ITEM('GOLD_OUT_H.S_DATE'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT.GOLD_CODE IS NULL THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ãä ÝÖáß ÇÏÎá ÇáÕäÝ'); GO_ITEM('GOLD_OUT.GOLD_CODE'); X:=SHOW_ALERT('STOPSAVE'); B:=SHOW_LOV('L_GOLD'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.CARD_EX_D IS NULL AND :GOLD_OUT_H.CARD<>0 THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ãä ÝÖáß ÇÏÎá ÇáÊÇÑíÎ'); GO_ITEM('GOLD_OUT_H.CARD_EX_D'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.CARD_EX_D IS NULL AND :GOLD_OUT_H.CARD<>0 THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ãä ÝÖáß ÇÏÎá ÇáÊÇÑíÎ'); GO_ITEM('GOLD_OUT_H.CARD_EX_D'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.CARD_EX_D< :GOLD_OUT_H.S_DATE AND :GOLD_OUT_H.CARD<>0 THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ÊÇÑíÎ ÇáÕáÇÍíÉ ÇÕÛÑ ãä ÊÇÑíÎ ÇáÝÇÊæÑÉ'); GO_ITEM('GOLD_OUT_H.CARD_EX_D'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.CARD_EX_D< :GOLD_OUT_H.S_DATE AND :GOLD_OUT_H.CARD<>0 THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ÊÇÑíÎ ÇáÕáÇÍíÉ ÇÕÛÑ ãä ÊÇÑíÎ ÇáÝÇÊæÑÉ'); GO_ITEM('GOLD_OUT_H.CARD_EX_D'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.CHEQ_NO IS NULL AND :GOLD_OUT_H.CHEQ<>0 THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ÑÌÇÁ ÇÏÎÇá ÑÞã ÇáÔíß'); GO_ITEM('GOLD_OUT_H.CHEQ_NO'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSIF :GOLD_OUT_H.P_TOT+:GOLD_OUT_H.P_TOTD <> :GOLD_OUT_H.S_MONEY+:GOLD_OUT_H.S_MONEYD AND :GOLD_OUT_H.CCODE=:GLOBAL.CASH_CU THEN SET_ALERT_PROPERTY('STOPSAVE',ALERT_MESSAGE_TEXT,'ÇáãÈáÛ ÇáãÏÝæÚ áÇ íÓÇæì ÇáãØáæÈ'); GO_ITEM('GOLD_OUT_H.CHEQ_NO'); X:=SHOW_ALERT('STOPSAVE'); RAISE FORM_TRIGGER_FAILURE; ---------------------------------- ELSE NULL; END IF; END; بالنسبة للتريجير الثانى CASH_BAL1; PROCEDURE CASH_BAL1 IS BEGIN SELECT CASH_DATE,T_DISC,CASH_ID, B_VALUE+D_VALUE-C_VALUE, B_VALUE_W+D_VALUE_W-C_VALUE_W, B_VALUE_D+D_VALUE_D-C_VALUE_D, B_VALUE_CARD+D_VALUE_CARD-C_VALUE_CARD, B_VALUE_CHQ+D_VALUE_CHQ-C_VALUE_CHQ, B_VALUE_BANK+D_VALUE_BANK-C_VALUE_BANK INTO :VRAWGO.CASH_DATE,:VRAWGO.T_DISC,:VRAWGO.CASH_ID, :VRAWGO.CASH1,:VRAWGO.GOLD1,:VRAWGO.CASHD1, :VRAWGO.CARD1,:VRAWGO.CHQ1,:VRAWGO.BANK1 FROM CASH WHERE CASH_DATE=:GOLD_OUT_H.S_DATE; END; بالنسبة للتريجير الثالث PRO_SUM; PROCEDURE pro_sum IS X NUMBER; Y1 NUMBER:=0; Y2 NUMBER:=0; Y3 NUMBER:=0; V ITEM; z number; -- cur_itm VARCHAR2(80) := :System.Cursor_Item; -- cur_blk VARCHAR2(80) := :System.Cursor_Block; -- lst_itm VARCHAR2(80); begin :GOLD_OUT_H.S_W:=0; :GOLD_OUT_H.S_MONEY:=0; :GOLD_OUT_H.S_MONEYD:=0; LAST_RECORD; X:=:SYSTEM.CURSOR_RECORD; FIRST_RECORD; FOR I IN 1 .. X LOOP IF :GOLD_OUT.WEIGHT IS NULL THEN :GOLD_OUT.WEIGHT:=0; END IF; IF TRIM(:GOLD_OUT.EYAR)='21' THEN :GOLD_OUT_H.S_W:=:GOLD_OUT_H.S_W+( :GOLD_OUT.WEIGHT*7/6); ELSE :GOLD_OUT_H.S_W:=:GOLD_OUT_H.S_W+ :GOLD_OUT.WEIGHT; END IF; IF :GOLD_OUT_H.P_TYPE=1 THEN :GOLD_OUT_H.S_MONEY:=:GOLD_OUT_H.S_MONEY+ :GOLD_OUT.PRICE; ELSE :GOLD_OUT_H.S_MONEYD:=:GOLD_OUT_H.S_MONEYD+:GOLD_OUT.PRICE; END IF; --lst_itm := cur_blk||'.'||Get_Block_Property(cur_blk,LAST_ITEM); --IF cur_itm = lst_itm THEN Next_Record; --ELSE -- NEXT_ITEM; --END IF; -- DOWN; END LOOP; :GOLD_ADD_H.TOT_NOW:=:GOLD_OUT_H.S_MONEY; :GOLD_ADD_H.TOT_DOLAR_NOW:=:GOLD_OUT_H.S_MONEYD; END; تقديم بلاغ
بتاريخ: 15 أغسطس 20169 سنة comment_277167 - كاتب حاجة في الـ key-commit ; ؟ - ابحث في الفورمه عن اى جملة update على الجدول . - الواضح ان العملية ملهاش علاقة بالكود الى فوق . تقديم بلاغ
بتاريخ: 17 أغسطس 20169 سنة كاتب الموضوع comment_277217 اخيرا ظهرت سبب المشكلة وجود validate from list yes غيرتها ل no واصبح يحفظ ال record الموجود على ال block فقط وليس كل الجدول validate from list لما تكون yes وبيرجع id ل forign key ويوجد فى post_query لهذا البلوك لقيم على الجدول مثل اسم العميل اللى له هذا ال id تعمل هذه المشكلة لانه بيعمل update لل id للجدول كله نتيجة ال post_query هذا تفسيرى المتواضع ولو اى زميل له تفسير اخر ياريت يوضح ذلك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.