إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


5 رد (ردود) على هذا الموضوع

#1 محبه لله

محبه لله

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 25 May 2007 - 10:30 PM

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

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

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

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

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

شكرا

#2 ahmed el kilany

ahmed el kilany

    عضو

  • الأعضــاء
  • 27 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 27 May 2007 - 12:54 AM

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

SELECT DEPARTMENT.DEPARTMENT_ID, DEPARTMENT.DEPARTMENT_NAME
INTO
:DEPARTMENT.DEPARTMENT_ID, :DEPARTMENT.DEPARTMENT_NAME
FROM DEPARTMENT ORDER BY DEPARTMENT_ID
. ۩ اللهـــــــــــــم صلي وسلم على سيدنا محمد وعلى آله وصحبه أجميعن ۩
. سبحان الله وبحمده سبحان الله العظيم
. Oracle_developer19@hotmail.com

#3 محبه لله

محبه لله

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 28 May 2007 - 09:38 AM

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

#4 jamal_rrkk

jamal_rrkk

    عضو نشط

  • الأعضــاء
  • 452 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 May 2007 - 01:31 PM

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

اخي الكريم

استخدم 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;

جزاك الله كل خير
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/

#5 jamal_rrkk

jamal_rrkk

    عضو نشط

  • الأعضــاء
  • 452 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 May 2007 - 08:35 AM

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

if text item := 'نعم' then

Go_Block('Block name');
Go_Item('Block name.Item name');
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/

#6 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 798 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 30 May 2007 - 02:33 PM

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

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

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

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

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا