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

on-error trigger

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته
هناك مشكلة عامة فى أوراكل أريدكم أن تشاركونى فى التفكير فى حلها
عندما يكون موجود على الفورمة on-error trigger ومعه key-commit trigger وقام المستخدم بالضغط على زرار الحفظ ففى حالة عدم حدوث أى مشكلة فى الفورمة تظهر رسالة الحفظ الموجودة فى ال key-commit
ولكن ( وهذه هى المشكلة ) فى حالة وجود مشكلة فى الفورمة يقوم on-error بإظهار الخطأ ثم يعمل ال key-commit ويظهر رسالة الحفظ مع أنه ربما لم يتم الحفظ
وبالتالى يقع المستخدم فى حيرة هل هناك خطأ وتم الحفظ أم هناك خطأ وبالتالى لم يتم الحفظ وإذا كان كذالك فلماذا ظهرت رسالة الحفظ
ما أفكر فيه هو هل هناك طريقة يتم من خلالها التحكم فى on-error وال key-commit كل من خلال الأخر بحيث إذا عمل أحدهم يتم إيقاف الأخر

بتاريخ:

استبدل الخطاً الذي تعرف رقمة غير ذلك اعرض رسالة الخطاً
برسالة

message_text
أو
error_text

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

أخى الكريم .. شكراً على ردك
ولكن برجاء قرأة رسالتى جيداً فستعرف أن ردك ليس له علاقة بمشكلتى

بتاريخ:

عذراً اخي على تسرعي المتهور

ذكرت انت التالي

ولكن ( وهذه هى المشكلة ) فى حالة وجود مشكلة فى الفورمة يقوم on-error بإظهار الخطأ ثم يعمل ال key-commit ويظهر رسالة الحفظ مع أنه ربما لم يتم الحفظ

منطقياً اول من يعمل هو ال key-commit ثم ال on-error وليس العكس
وكيف تظهر رسالة الحفظ مع ان الحفظ لم يتم ؟

لم افهم ما هية مشكلتك

بإنتظارك

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

شكراً أخى على محاولتك مشاركتى المشكلة
ما يحدث بالضبط : فى حالة وجود مشكلة فى الفورمة ( أى لا يحدث حفظ للبيانات بسب عدم إدخال أحد الحقول المطلوبة مثلاً ) هو أن on-error يقوم بالعمل فتظهر رسالة أن هذا الحقل مطلوب (مثلاً) ثم بعد ذلك يقوم ال key-commit بالعمل أيضاً فتظهر رسالة تم الحفظ .
لذلك فما أطلبه هو كيفية إيقاف ال key-commit فى حالة عمل ال on-error
أرجو أن أكون قد أوضحت المشكلة

شكراً

بتاريخ:

يا سيدي العزيز

ان ال key-commit لا يعمل بعد ال on error

واعتقد ان الرسالة التي تظهر لديك هي حفظ وليس تم الحفظ

ما هو الكود المكتوب في كل من الترجرين حتى نرى ونحكم
بإنتظارك

بتاريخ:

على الأغلب يجب وضع
raise form_trigger_failure
في نهاية ال on-error trigger

بتاريخ:

يا اخي العزيز
نحن نحفظ ثم نحصل على الخطأ
وليس العكس
يعني لو كتب مليون
raise form_trigger_failure
داخل on-error
لن يتغير شيء

يحدث ما يتحدث عنه فقط في حالة واحدة اذا كتب commit داخل ال on-error وهذا ممنوع

بتاريخ:

السلام عليكم ورحمة الله وبركاته
أخى العزيز
عند الحفظ تأكد من ان الفورمه حدث فيها تغيير من ال system variable
كما يلى :
if :system.form_status =changed then
do_key('key_commit');
end if;
وبالتالى لن تظهر رسالة saved sucssefully عندما لا يكون هناك تغيير

أرجو من الله أن اكون اصبت .

أدرى بأن هناك فجرا .. وأن بعد العسر يسرا
لكنهم ساموا الفتى وبلاده عسفا وقهرا
والعالم الحيران يشهد ما يحل بأمتى
وأنا هنا .. فى غربتى .. فى لوعتى
أبكى وأمسح فى ذهول دمعتى
وأظل أنظر للسماء .. والقلب يخفق بالدعاء
يارب .. أوقظ أمتى

تم تعديل بواسطة h_elshawaf

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

إخوتى شكرا على ردودكم ولكن يبدو أننى لم استطع أن أشرح مشكلتى جيدا لذلك أرجو أن تجربو هذا المثال
لو قمت بعمل فورمة على dept table الموجود فى scott مثلا
ثم بعمل trigger key-commit مكتوب فيه
system.message_level:=10
commit
message('save')
message('save')
system.message_level:=0

وقمت بتشغيل الفورمة ثم إظهار البيانات الموجودة بها وحاولت تعديل أحد الأرقام الموجودة فى خانة ال deptno وتغييرها بكتابة أحرف بدلا من أرقام ثم قمت بالضغط على زرار الحفظ تظهر رسالة error بأن هذا الحقل رقمى وليس أحرف وبعد ذلك تظهر رسالة save المكتوبة فى key-commit
بالطبع هذا منطقى ولكن المستخدم لن يفهم ذلك فسوف يقع فى حيرة هل تم الحفظ أم أن هناك مشكلة
فما أريده هو هل يمكن فى حالة وجود error فى الفورمة تظهر رسالة ال error ولا تظهر رسالة الحفظ
أرجو أن يكون كلامى مفهوما

بتاريخ:

السلام عليكم ورحمة الله وبركاته
أخى العزيز
آسف لفهمى الخاطىء لك
** عليك ان تكتب فى when validate item لل deptno text item مايلى :
- عليك ان تعمل check على نوع ما تم ادخاله فإذا ما كان بها حروف عليك ان تقوم بإظهار الرساله التى تريد مثلا message('error deptno');
ثم بعدها
raise form_trigger_failure;
كما قال الأخ louy-s

عندها لن يتجه الى باقى الكود المكتوب فى ال button save

أرجو من الله ان اكون اصبت هذه المره

أدرى بأن هناك فجرا .. وأن بعد العسر يسرا
لكنهم ساموا الفتى وبلاده عسفا وقهرا
والعالم الحيران يشهد ما يحل بأمتى
وأنا هنا .. فى غربتى .. فى لوعتى
أبكى وأمسح فى ذهول دمعتى
وأظل أنظر للسماء .. والقلب يخفق بالدعاء
يارب .. أوقظ أمتى

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

السلام عليكم ورحمة الله وبركاته
أخى الكريم شكراً على ردك
ولكن رجائى فقط أن تقوم بتجربة ما أقوله عمليا لآن اقتراحك هذا أنا نفذته قبل أن أعرض مشكلتى ولم يثمر عن شئ
لذلك أرجو مرة ثانية منك ومن كل الإخوة الذين يريدون مشاركتى فى حل هذه المشكلة هو أن يقوموا بتجربة ما أقوله عملياً قبل اقتراح الحل
شكراً

بتاريخ:

السلام عليكم جميعاً ورحمة الله وبركاته
اخواني الأعزاء
عندي حل - بس هوا مش حل المشكلة
هوا حل هيساعدنا علي حل المشكلة
------------------------------------------
ما رأيك يا اخي hany_marawan أن تقوم بارفاق فورمة فيها المشكلة اللي قلت عليها
والاعضاء الكرام يعملون علي حلها
وأعادتها اليك سليمة
لاني بصراحة مش فاهم ايه المشكلة بالظبط حتي الآن
------------------------------------------
اني أحبكم في الله

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

السلام عليكم ورحمة الله وبركاته
هذه فورمة مصممة على جدول ال dept الموجود فى scott
أرجو محاولة تغيير الأرقام فى حقل رقم الإدارة deptno وإدخال حروف مكانه
وشكراً على مساعدتكم

error_test.fmb

بتاريخ:

السلام عليكم ورحمة الله

trigger key_commit

اكتب امر commit اولا ثم اسأل عن form success

جرب .. واخبرنا بالنتيجة

commit;
IF NOT Form_Success THEN
  message('error');
	message('error');
else
message('save');
message('save');
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.