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

عاوز اعمل ماستر ديتيل بس فى نفس الجدول


Boody Comeback

Recommended Posts

كنت عاوز اعمل ماستر ديتيل بس فى نفس الجدول
وبالفعل حطيت جدول الماستر على الصفحه وحطيت الديتيل فى ال detailstamp
وكتبت الكود التالى عشان لما اضغط على رو يظهرلى الديتيل الخاصه بيه
المشكله ان الكود ده بيسمحلى افتح رو واحده بس فى نفس الوقت وأنا عاوز اقتحهم كلهم وانا مش عارف اعمل الكود ده
انا حطيت صوره الإيضاح
الكود
public void rowDisclosureListener (RowDisclosureEvent rowDisclosureEvent) { RichTable table = (RichTable) rowDisclosureEvent.getSource(); RowKeySet discloseRowKeySet = table.getDisclosedRowKeys(); RowKeySet lastAddedRowKeySet = rowDisclosureEvent.getAddedSet(); Iterator lastAddedRowKeySetIter = lastAddedRowKeySet.iterator(); if (lastAddedRowKeySetIter.hasNext()) { discloseRowKeySet.clear(); Object lastRowKey = lastAddedRowKeySetIter.next(); discloseRowKeySet.add(lastRowKey); makeDisclosedRowCurrent(table, lastAddedRowKeySet); AdfFacesContext adfFacesContext = null; adfFacesContext = AdfFacesContext.getCurrentInstance(); adfFacesContext.addPartialTarget(table.getParent()); } }

private void makeDisclosedRowCurrent(RichTable table, RowKeySet keySet) { table.setSelectedRowKeys(keySet); CollectionModel tableModel = (CollectionModel) table.getValue(); JUCtrlHierBinding tableHierBinding = null; tableHierBinding = (JUCtrlHierBinding) (tableModel).getWrappedData(); DCIteratorBinding dCIteratorBindin = null; dCIteratorBindin = tableHierBinding.getDCIteratorBinding(); Iterator keySetIter = keySet.iterator(); List firstKey = (List) keySetIter.next(); oracle.jbo.Key key = (oracle.jbo.Key) firstKey.get(0); dCIteratorBindin.setCurrentRowWithKey(key.toStringFormat(true)); }

post-178577-0-44220700-1560234060_thumb.png

رابط هذا التعليق
شارك

أرى انه لا يوجد أى فائدة أو مبرر لعمل ماستر وديتيلز فى جدول واحد
الصح عمل الماستر فى جدول والديتيلز فى جدول اخر والربط بينهم عن طريق Key وستجد العمل سهل جدا وسلس جدا 
حتى فى التقارير ستكون سهلة ولا يوجد فيها اى شكلة 

رابط هذا التعليق
شارك

كنت عاوز اعمل ماستر ديتيل بس فى نفس الجدول

وبالفعل حطيت جدول الماستر على الصفحه وحطيت الديتيل فى ال detailstamp

وكتبت الكود التالى عشان لما اضغط على رو يظهرلى الديتيل الخاصه بيه

المشكله ان الكود ده بيسمحلى افتح رو واحده بس فى نفس الوقت وأنا عاوز اقتحهم كلهم وانا مش عارف اعمل الكود ده

انا حطيت صوره الإيضاح

الكود

public void rowDisclosureListener (RowDisclosureEvent rowDisclosureEvent) { RichTable table = (RichTable) rowDisclosureEvent.getSource(); RowKeySet discloseRowKeySet = table.getDisclosedRowKeys(); RowKeySet lastAddedRowKeySet = rowDisclosureEvent.getAddedSet(); Iterator lastAddedRowKeySetIter = lastAddedRowKeySet.iterator(); if (lastAddedRowKeySetIter.hasNext()) { discloseRowKeySet.clear(); Object lastRowKey = lastAddedRowKeySetIter.next(); discloseRowKeySet.add(lastRowKey); makeDisclosedRowCurrent(table, lastAddedRowKeySet); AdfFacesContext adfFacesContext = null; adfFacesContext = AdfFacesContext.getCurrentInstance(); adfFacesContext.addPartialTarget(table.getParent()); } }

 

private void makeDisclosedRowCurrent(RichTable table, RowKeySet keySet) { table.setSelectedRowKeys(keySet); CollectionModel tableModel = (CollectionModel) table.getValue(); JUCtrlHierBinding tableHierBinding = null; tableHierBinding = (JUCtrlHierBinding) (tableModel).getWrappedData(); DCIteratorBinding dCIteratorBindin = null; dCIteratorBindin = tableHierBinding.getDCIteratorBinding(); Iterator keySetIter = keySet.iterator(); List firstKey = (List) keySetIter.next(); oracle.jbo.Key key = (oracle.jbo.Key) firstKey.get(0); dCIteratorBindin.setCurrentRowWithKey(key.toStringFormat(true)); }

 

لعل هذا المقال يفيدك بخطوات تفصيلية

https://tompeez.wordpress.com/2018/08/23/adf-treetable-advanced-sample/

 

دمت بخير وعافية

رابط هذا التعليق
شارك

انا بعمل كشف حساب مفصل لعميل عباره عن بيانات جدول الحسابات "الماستر" وبيانات جدول تفاصيل اصناف الفاتوره"الديتيل"
عشان كدا لازم اخليهم متداخلين فى نفس الجدول مينفعش اقسمهم على جدولين حتى الtree table مش هتكون عمليه زى ماانت عاوز
الفكره أن الكود اللى انا كاتبه انا مش فاهمه وعشان كدا مش عارف اعدل فيه هو بيسمحلى افتح رو واحد ولما افتح رو الباقى يتقفل حتى لما شيلت السطر بتاع
discloseRowKeySet.clear();
لقيته بيغير كل ديتيل الروز كلها لآخر قيمه رو ضغط عليها
انا عاوز اعدل الكود ده لو حد فهمه

رابط هذا التعليق
شارك

اتبع الخطوات المذكورة في الرابط اللي زودتك به
وفقك الله

رابط هذا التعليق
شارك

السلام عليكم 

اخى الفاضل 

ليس معنى فصل الماستر والديتيلز فى جدولين أننا فصلنا البيانات او اننا من الصعوببة ان نصل الى ربط بينهم فى التقارير 

فالموضوع سهل جدا وانا باستطاعتى التحكم فى شكل التقرير حتى لو من جدولين 
والربط بين جدوليين يعتبر كأنهم جدول واحد تماما واستطيع اظهار البيانات كلها من الجدولين بأى شكل احدده انا بنفسى

وهذا عن مئات التجارب قمت بها انا بنفسى ولو تحب ارسل لك الطريقة 

 

زشكرا

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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