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

مساعدة في حل مشكلة الـtriggers

Featured Replies

بتاريخ:

ارجو من اخواني المساعدة . عندي مشكلتين؟في فورم الموظفين .

اولا : اريد trigger يعمل على ادخال اسم الادارة في display item اتوماتيكيا عند ادخالي رقم ادارة في text item والذي سيأخذها من جدول " اسماء الادارات" .

ثانيا : اريد trigger يعمل على نقل المؤشر الى عنوان الموظف"وهو اخر فيلد في الترتيب" مباشرة اذا كان text item للـ"هل ايملك عناون" قيمتها نعم .
"اقصد ان ينتقل الى text item معين اذا كانت قيمة text item اخر بنعم والا يستمر بالتنقل بالترتيب"

ارجو ان يكون الشرح واضح .

عندي جدولين : الجدول الاول يحتوي على اسماء الادارات . والجدول الثاني يحتوي على معلومات للموظفين .

شكرا

بتاريخ:

بعد السلام عليكم
بالنسبه للخطوه الاولى او الطلب الاول يوجد الكثير من الحلول ومنها .
ممكن انشاء lov تعطيها رقم الأداره تعطيك اسم الادارة
عن طرق هذا الكود

SELECT DEPARTMENT.DEPARTMENT_ID, DEPARTMENT.DEPARTMENT_NAME
INTO
:DEPARTMENT.DEPARTMENT_ID, :DEPARTMENT.DEPARTMENT_NAME
FROM DEPARTMENT ORDER BY DEPARTMENT_ID

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

شكرا اخي لكن دون استخدام lov . اعني بمجرد ما اكتب الرقم الادارة في text item يظهر اسم الادارة في text item الخاص فيه .

بتاريخ:

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

اخي الكريم

استخدم WHEN-VALIDATE-ITEM علي مستوي رقم الادارة

حيث الكود التالي علي سبيل المثال يقوم بإدراج بيانات الصنف في الفاتورة حسب رقم الصنف المدخل

DECLARE
aa number;
begin
select count(invt_no) into aa  
from   inventory  
where  inventory.invt_no = :inv_sal.invt_no;
IF	aa = 0  THEN
MESSAGE('يوجد خطأ في إدخال رقم الصنف');
MESSAGE('يوجد خطأ في إدخال رقم الصنف');
RAISE Form_Trigger_Failure;
ELSIF aa = 1 THEN
select inventory.qty ,inventory.invt_nam ,inventory.pric_sal ,inventory.tax_rat
into :inv_sal.qty , :inv_sal.invt_nam , :inv_sal.pric_sal,:inv_sal.tax_rat
from inventory 
where inventory.invt_no = :inv_sal.invt_no;
IF  :inv_sal.qty > 0  THEN
execute_query;
ELSE
MESSAGE('لا يوجد كمية متوفرة من هذا الصنف');	
MESSAGE('لا يوجد كمية متوفرة من هذا الصنف');
RAISE  FORM_TRIGGER_FAILURE;
END IF;
END IF;
END;



كما يمكن استخدام POST-CHANGE للسؤال الاول الثاني

حيث الكود التالي علي سبيل المثال يقوم بإدراج اسم البنك ونوع العملية شيك اذا كان رقم الحساب يحقق الشرط

حيث تم وضع القيمة الافتراضية للحقل نقدي

IF :c_ent.cc_num between 1020001 and 1040000  THEN
select ac_nam , 'شيك'
into :ch_bk ,:sh_ch
from  act
where act.ac_num = :c_ent.cc_num;
END IF;



جزاك الله كل خير

بتاريخ:

استخدام POST-CHANGE للسؤال الثاني

if text item := 'نعم' then

Go_Block('Block name');
Go_Item('Block name.Item name');

بتاريخ:

ممكن أيضا على السؤال ألاول
وضع trigger على مستوى البلوك وهو post query وكتابة هذا الكود
select dname
into :dept.dname
from dept
where deptno=:dept.dname;

والله اعلم
miash80
:( :angry: :angry: :lol: :angry:

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

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

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

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

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

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.