الانتقال إلى المحتوى
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.

ما الخطاء في التريقر POST-FORMS-COMMIT

Featured Replies

بتاريخ:

السلام عليكم ورحمه الله ، ارجو ان تتحملو البوست التالي :P

عندي فورم مشتروات -يتكون من بلوكين (1 ماستر والثاني ديتيل) - لوكلاء محددين يخصم مشتروات هؤلاء الوكلاء من ارصدتهم عن طريق Procedure مستخدم في POST-FORMS-COMMIT trigger علي مستوي الفورم
وتتم عمليه الحفظ لكن هناك مشكلتين :

الأولي : لحذف سجل من الماستر يجب حذف السجلات من الديتيل اولا ، وهنا تكمن المشكلة حيث انه عند حذف كل السجلات الديتيل تمهيدا لحذف الماستر ، تظهر رساله خطاء
 ORA-01407 : cannot update mandatory (NOT NULL) column to NULL
وانا لا اريد وضع قيم فارغة في الديتيل ، فقط اريد حذف السجلات ككل
الثانيه : عند تعبئه الفورم والحفظ فإنه يقوم بخصم القيمه من رصيد الوكيل ، لكن عند الضغط علي حفظ مره اخري دون تغيير القيم فإنه يقوم بالخصم مجددا وهذا غير جيد ، اريد ان يتم الحفظ فقط اذا تم تغيير القيم ، اي اذا عملت بحث لقيم قديمه ولم اغير هذه القيم وقمت بالحفظ ، فانه لا يتم الخصم من رصيد الوكيل


الفورم مرفق مع الجدول في الرابط التالي
http://www.megaupload.com/?d=RE8KL1M2

بتاريخ:

اختى بالنسبة للمشكلة التالية فهى سهلة للغاية قومى بعمل Disable للبتون الى بيعمل الحفظ بعد كل كلك و تنشيط لية ببتون New
اختى .. بالنسبة للمشكلة الأول لا استطيع تحديدها .. من افضلك قومى بأرفاق ملف تكست يحتوى على الكودز لأن للأسف معنديش اوراكل على المكنة دى .. و الى مزيد من التفوق

Oracle ITself

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

التريقر الزي يقوم بعمليه الخصم :


POST-FORMS-COMMIT Trigger




DECLARE
RcrdFetch NUMBER;
BEGIN RcrdFetch := 0;
SELECT COUNT(*) INTO RcrdFetch FROM AGMSTR WHERE AGMSTR.AGID = :BLKDPMSTR.C_ID;
if RcrdFetch <> 0 then
Agacount_decr (:BLKDPDTLS.T_PRICE,:BLKDPMSTR.C_ID);

	END IF;
END;



والـ procedure المستدعي بواسطه التريقر اعلاه Agacount_decr يحتوي علي الكود التالي


PROCEDURE Agacount_decr (decr_credit IN NUMBER,
AG_ID IN NUMBER) IS credit	NUMBER;
BEGIN SELECT AGCREDIT INTO credit FROM AGMSTR WHERE AGID = AG_ID;
UPDATE AGMSTR
SET AGCREDIT = credit - decr_credit WHERE AGID = AG_ID;
--Raise Form_Trigger_Failure;
END;

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

وللتذكير فهذا هو اللنك اللي رفعت فيه الفورم والجداول ، لاني عندي مشكله في ارفاق الملفات
http://www.megaupload.com/?d=RE8KL1M2

بتاريخ:

اختي الكريمة
في النقطة الاولى عند عمل relation بين الماستر والديتيل اختاري ان يكون عملية الحذف cascaded وهذه تساعدك بحذف جميع البيانات الفرعية الخاصة بالبيان الرئيسي المراد حذفه
وممكن عمل كودد لذلك ايضا بحيث تتمك العملية باخذ رقم الماستر واللي هو موجود في الديتيل فيقوم بحذف الديتيل ثم التخزين ثم يقوم بحذف السجل الرئيسي

بالنسبة للنقطة الثانية فحلها يكون بفحص حالة الفورم قبل التعديل هل هي اضافة ام حذف ام ماذا باستخدام هذا الكود

IF :System.Form_Status = 'CHANGED' 
  THEN Commit_Form; 
END IF; 
; 

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

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

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

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

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

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.