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

الاخوة الخبراء .. مشكلة Master - Details الرجاء المساعدة

Featured Replies

بتاريخ:

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

 

الاخوة الخبراء لدي مشكلة مع تطبيق Master- Details باستخدام Oracle ADF ارفقت لكم الصور لكي تكون المشكلة لديكم واضحه المشكلة في الصورة رقم 01 وتتلخص بأني قمت بتكوين سكيما باسم ahmad وبداخلها جدولين احدهما اسمه invoice1 يحتوي على حقلين احدهما in1_id وهو PK والاخر in1_seq وكلاهما number والجدول الاخر اسمه Invoice1 وهو يعتبر Details يحتوي على الحقول التالية in2_id وهو PK والاخر in2_seq وهو FK مرتبط مع الجدول الاول مع الحقل in1_id قمت بعمل business component في الـ java الخاصة بالجدول الاول invoice1 في الكود create الكود التالي الخاص بأنشاء السيكوينس :

 

protected void create(AttributeList attributeList) {

super.create(attributeList);

SequenceImpl seq = new SequenceImpl("invseq",getDBTransaction());

setIn1Id(seq.getSequenceNumber());

 

وقمت بعمل سيكوينس على مستوى السكيما باسم INVSEQ

 

اما بالنسبة للـ java الخاصة بالجدول الثاني فقمت بأضافة الكود التالي في الـ (do DML)

 

 

protected void doDML(int operation, TransactionEvent e) {

if (operation == DML_INSERT){

SequenceImpl seq = new SequenceImpl("invseq",getDBTransaction());

setIn2Id(seq.getSequenceNumber());

}

super.doDML(operation, e);

}

 

بعدها قمت بانشاء jsf وسحبت الinvoice1 كـ ADF Form واضفت الازرار الخاصة بال createInsert وdelete من الـ operation الخاصة بهذا الجدول ومن ثم قمت بسحب الزر commit واضفته تحت الفورم ، اما بالنسبة للجدول Invoice2 فقد قمت بسحبه من تحت الجدول invoice1 وقمت باضافة الازرار الخاصة به بعملية createInsert و delete من ملف الـ operation الخاصة به وليست الخاصة بالجدول Invoice1 وقمت بازالة الخاصة Mandatory من الحقلين in1_id و in2_id وبعد التنفيذ عند عمل create على جدول الـ invoice1 يقوم السيكوينس باضافة رقم جديد في حقل in1_id وعند عمل createinsert على جدول invoice2 تظهر لي الرسالة التالية :

 

 

(لا يمكن للكيان التفصيلي Invoice2 ذي مفتاح الصف null العثور على كيانه المالك او إلغاء صلاحيته.)

ارجو المساعدة في حل المشكلة علماً باني استخدم jdeveloper R2 وقاعدة البيانات oracle Express .

 

وفقكم الله لكل خير

ADF Master Details Problem.zip

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

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

 

معقولة يا اخوان لا يوجد ولا رد الى حد الان 

 

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

الاخوة الاعضاء

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

 

تم ولله الحمد حل المشكلة وذلك بمساعدة الاخ DBProgrammer جزاه الله خيراً حيث كانت المشكلة تكمن في اني اسحب زر الـ createInsert  

 

من الجدول الثاني المنفصل عن الجدول الاول حيث انه لدي جدولين احدهما ماستر اسمه invoice1  والاخر ديتيل اسمه invoice2  بالنسبة

 

للinvoice2  عند عمل    business component  فانه الdata control  تقوم بتكويبن جدولين احدهما invoice1  وبداخله جدول اخر invoice2  

 

اي جدول الماستر وملحق به جدول الديتيل فكان الواجب علي ان اسحب زر الـ creatInsert  من ملف الـoperation الخاص بالجدول

 

invoice2 الموجود تحت الجدول invoice1  وليس كما فعلت في المره الاولى حينما اخطأت وقمت بسحب الزر من الجدول invoic2  المنفصل

 

لوحده ، احببت ان افيدكم بهذه المعلومة لكي لا يقع غيري فيها او عندما يقع غيري فيها يجد جواب على استفساره .

 

والله الموفق 

  • بعد 2 أسابيع...
بتاريخ:

وجزاك اخي الغالي .. هذا من بعض ما عندكم :)

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

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

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

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

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

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.