اذهب الي المحتوي
Boody Comeback

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

Recommended Posts

Boody Comeback

كنت عاوز اعمل ماستر ديتيل بس فى نفس الجدول
وبالفعل حطيت جدول الماستر على الصفحه وحطيت الديتيل فى ال 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

شارك هذه المشاركه


رابط المشاركه
شارك
hesham hafez

أرى انه لا يوجد أى فائدة أو مبرر لعمل ماستر وديتيلز فى جدول واحد
الصح عمل الماستر فى جدول والديتيلز فى جدول اخر والربط بينهم عن طريق 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/

 

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

شارك هذه المشاركه


رابط المشاركه
شارك
Boody Comeback

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

شارك هذه المشاركه


رابط المشاركه
شارك
Boody Comeback

وجزاكم الله كل خير انكوا رديتوا عليه

شارك هذه المشاركه


رابط المشاركه
شارك
محمود ربيع

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

شارك هذه المشاركه


رابط المشاركه
شارك
hesham hafez

السلام عليكم 

اخى الفاضل 

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

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

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

 

زشكرا

شارك هذه المشاركه


رابط المشاركه
شارك

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان

×
×
  • اضف...