الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مشكلة فى امر Do_key('commit_form');

Featured Replies

بتاريخ:

مشكلة تحدث بعد امر   DO_KEY('COMMIT_FORM');

 

انه بيعمل update  لكل سجلات  الجدول  وليس ال record  اللى على البلوك

 

 

بتاريخ:

بالنسبة للأمر commit على مستوى البلوك فهو يقوم بحفظ جميع التغييرات على جميع الريكوردات في البلوك 

ولحفظ تعديلات ريكورد واحد قم بكتابة كود update على زر button معين ونفذ تريجر خاصة بالأمر

 

والله أعلم 

بتاريخ:
  • كاتب الموضوع

شكرا على التعاون

 

ولكن ده بلوك MASTER  ولازم    اسنتخدم الامر       DO_KEY('COMMIT_FORM');

بتاريخ:

انت كاتب ايه في key-commit ; ؟

بتاريخ:
  • كاتب الموضوع

الكود المكتوب فى زرار  الجفظ

 

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;
بتاريخ:

في 3 Procedures في البلوك , في حاجة فيهم بتعمل Update  ؟

بتاريخ:
  • كاتب الموضوع

ال 3 تريجير ليس فيهم  UPDATE

 

لكن بالنسبة للبلوك فى  ال WHERE CLAUSE   

 

نوجد هذه العبارة  RETURN_V=1    

لان هذا الجدول يستعمل مع البضاعة السليمة لهذه الشاشة

والبضاعة المرتدة فى شاشة اخرى

بتاريخ:

انا اقصد

MAIN_PROC.CHK_VALUES;
CASH_BAL1;
PRO_SUM;           
بتاريخ:
  • كاتب الموضوع

 

بالنسبة لل تريجير الاول



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;

 

بتاريخ:

- كاتب حاجة في الـ key-commit ; ؟

- ابحث في الفورمه عن اى جملة update على الجدول .

- الواضح ان العملية ملهاش علاقة بالكود الى فوق .

بتاريخ:
  • كاتب الموضوع

اخيرا  ظهرت سبب المشكلة وجود validate from list yes 

غيرتها ل no

واصبح يحفظ ال record الموجود على ال block فقط وليس كل الجدول

validate from list  لما تكون yes  وبيرجع id  ل forign key

ويوجد فى post_query  لهذا البلوك لقيم على الجدول مثل اسم العميل اللى له هذا ال id

تعمل هذه المشكلة    لانه بيعمل update لل id للجدول كله نتيجة ال post_query

 

هذا تفسيرى المتواضع ولو اى زميل له تفسير اخر ياريت يوضح ذلك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.