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

نسخ قيمة حقل Total من نوع Transient في الديتيل الى حقل في الماستر من النوع Persistent

Featured Replies

بتاريخ:

 

اود نسخ قيمة حقل total (بيتجمع فيه حاصل ضرب الكميا في الأسعار) من نوع Transient في الديتيل الى حقل في الماستر من النوع Persistent  عشان اخزن قيمة ال total في ال database

 

عمل accessor على الديتيل وحطيت الكود ده فيه بس مش شغال


public void setMatQtyPrice(Number value) {
setAttributeInternal(MATQTYPRICE, value);
OrdMstrImpl ordrmstrinfo = (OrdMstrImpl)getOrdMstr();
ordrmstrinfo.setOrdTotal(getMatQtyPrice());
}

ما الخطاء فى الكود

 

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

 

... اي افكار اخري ؟

 

بتاريخ:

لم تحدد الخطأ بالضبط. لا يعمل يعني هل يوجد exception أم النتيجة خاطئة أم ماذا بالضبط؟

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

اخي الباشمهندس مصطفى ماجد .. اشكرك على الرد

 

لا توجد اي استجابه او رسالة خطاء .. فقط حقل ال total في الماستر يظل كماهو دون اي تغيير

 

بحثت ووجدت هذه المشاركة .. 

https://forums.oracle.com/thread/2384372

 

وصاحب البوست يقول انه وجد الحل كالتالي

Finally I created a managed bean and right before the commit of the save button, I set the value of the Salary field with the new value. 
It works fine and it is very simple.

 

ارجوا بحكم خبرتك ان تنصحني بالحل الصحيح واذا كان الحل السابق مناسب فأرجوا توضيح كيف يمكن عمل ذلك بالخطوات ان امكن

 

واشكرك مره اخري

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

السلام عليكم شباب

 

بحمد الله حليت الموضوع بطريقتين .. راح اشرحهم عشان تستفيدو منهم

 

الطريقة الأولى : استفدت من حل الأخت هالة على اللنك التالي

http://www.araboug.org/ib/index.php?showtopic=47572&p=214316

و اضفت transient attribute لل entity واضفت عليها expression تبع عنصر الضرب الى (MatPrice == null ? 0 : MatPrice) * (MatQty == null ? 0 : MatQty) عشان اتجاوز مشكلة ال nullpointer

وضبطت خاصية partial trigger لكولوم التجميع بحقل الكمية وحقل السعر .. وفي الماستر رحت ظابتها على حقل الكمية والسعر وكل ازرار ال navigation

 

زر delete مش كان بيعمل تحديل للقيمة فوضعت reset action listener على كل زر delete في الفورم وظبط الموضوع

 

الطريقة الثانية 

اضفت view attribute على حقل الماستر .. وجعلت قيمتها (PurDtlsView.sum("MatQtyPrice")== null ? 0 :PurDtlsView.sum("MatQtyPrice"))

وضبطت خاصية partial trigger لكولوم التجميع total بحقل الكمية وحقل السعر .. وفي ال master رحت ظابتها على حقل الكمية والسعر في ال detail  وكل ازرار ال navigation في ال master .

 

زر delete مش كان بيعمل تحديل للقيمة فوضعت reset action listner على كل حقل delete

 

 

عندي سؤال للاخ مصطفى او الاخت هالة .. مين في الطريقتين احسن بالنسبة للأداء .. 

مثلا هل الطريقة الثانية عشان class بتيجي من السيرفر وبالتالي الطريقة الثانية احسن ام ماذا ؟

بتاريخ:

الاثنان نفس الشئ مع الفرق أن وضع القيمة في entity object يعني وجودها في أي view object يعتمد عليه ، أما عند وضع القيمة في view object فهذا يعني أنها متاحة لهذا الـ view object فقط

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

طيب ازاي حاخدها من ال VO

 

لما اعمل implementation على ال entity واحاول اعمل get لحقل التجميع في VO مش بيشوفو اصلا؟

 

فإزاي حاخد القيمة من الTransient VO attribute واخزنها في presist attribute

بتاريخ:

على حد علمى وفهمى للموضوع حضرتك لازم تعمل الحقل ده على ال entity object وتبقى transient وبعدين تضيفها لل VO وبالتالى هتقدر تعمل get وهتبقى متشافة

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

عملت الحقل على الـ EO وعدلت في الـ EO impl وحطيت القيمة واشتغل وكل حاجة

 

ضبطت ال partial Trigger بس واشتغل تمام التمام

 

المشكلة لما اعمل delete في حقل الديتيل قيمة المجموع في الماستر على الحقل الـ persist مش بتتغير

 

حطيت reset action listner وبرضو مانفعش

 

هل ممكن اعمل on delete event على ال ADF في ال EO impl وبعدين انادي على تجميع الحقل  ؟

  • بعد 5 شهور...
بتاريخ:

يوجد طريقتين الاول باستخدام الكويرى تزود فى الكويرى  Calculated Column "   nvl(Quantity,0) *nvl(UnitPrice,0) as total "

وتعمل dependence ل الاتنين كولمن  هتلاقى الكولمن ده ظهر ليك فى الفيو

الطريقه التانيه : انك تضيف newAttribute Transist من نوع     Number   فى خصائص ال

(UnitPrice ==null?0:UnitPrice )*( Attribute >> value >> mark Radio Expression >> input text below Write This (Quantity == null ?0:Quantity)

press edit inside Input text   : Select Quantity and UnitPrice and move it to dependence Attribute

لو عملت ال dependence هيظهرلك داتا فى ال Transist Attribute 

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

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

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

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

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

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.