بتاريخ: 11 يونيو 20196 سنة comment_298592 كنت عاوز اعمل ماستر ديتيل بس فى نفس الجدول وبالفعل حطيت جدول الماستر على الصفحه وحطيت الديتيل فى ال 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)); } تقديم بلاغ
بتاريخ: 11 يونيو 20196 سنة comment_298594 أرى انه لا يوجد أى فائدة أو مبرر لعمل ماستر وديتيلز فى جدول واحدالصح عمل الماستر فى جدول والديتيلز فى جدول اخر والربط بينهم عن طريق Key وستجد العمل سهل جدا وسلس جدا حتى فى التقارير ستكون سهلة ولا يوجد فيها اى شكلة تقديم بلاغ
بتاريخ: 12 يونيو 20196 سنة comment_298597 كنت عاوز اعمل ماستر ديتيل بس فى نفس الجدول وبالفعل حطيت جدول الماستر على الصفحه وحطيت الديتيل فى ال 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/ دمت بخير وعافية تقديم بلاغ
بتاريخ: 12 يونيو 20196 سنة كاتب الموضوع comment_298599 انا بعمل كشف حساب مفصل لعميل عباره عن بيانات جدول الحسابات "الماستر" وبيانات جدول تفاصيل اصناف الفاتوره"الديتيل"عشان كدا لازم اخليهم متداخلين فى نفس الجدول مينفعش اقسمهم على جدولين حتى الtree table مش هتكون عمليه زى ماانت عاوزالفكره أن الكود اللى انا كاتبه انا مش فاهمه وعشان كدا مش عارف اعدل فيه هو بيسمحلى افتح رو واحد ولما افتح رو الباقى يتقفل حتى لما شيلت السطر بتاع discloseRowKeySet.clear();لقيته بيغير كل ديتيل الروز كلها لآخر قيمه رو ضغط عليهاانا عاوز اعدل الكود ده لو حد فهمه تقديم بلاغ
بتاريخ: 12 يونيو 20196 سنة كاتب الموضوع comment_298600 وجزاكم الله كل خير انكوا رديتوا عليه تقديم بلاغ
بتاريخ: 12 يونيو 20196 سنة كاتب الموضوع comment_298601 دا اللينك اللى جبت منه الكودhttp://sameh-nassar.blogspot.com/2015/03/adf-table-detail-stamp-set-expanded-row.html?m=1 تقديم بلاغ
بتاريخ: 12 يونيو 20196 سنة comment_298602 اتبع الخطوات المذكورة في الرابط اللي زودتك بهوفقك الله تقديم بلاغ
بتاريخ: 12 يونيو 20196 سنة comment_298603 السلام عليكم اخى الفاضل ليس معنى فصل الماستر والديتيلز فى جدولين أننا فصلنا البيانات او اننا من الصعوببة ان نصل الى ربط بينهم فى التقارير فالموضوع سهل جدا وانا باستطاعتى التحكم فى شكل التقرير حتى لو من جدولين والربط بين جدوليين يعتبر كأنهم جدول واحد تماما واستطيع اظهار البيانات كلها من الجدولين بأى شكل احدده انا بنفسى وهذا عن مئات التجارب قمت بها انا بنفسى ولو تحب ارسل لك الطريقة زشكرا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.