بتاريخ: 12 فبراير 20179 سنة comment_282936 السلام عليكم ورحمة الله وبركاته عندى عمود فى الشاشة qty عامل عليه validation باستخدام validator من الصفحة كما يلى <af:inputText value="#{row.bindings.Qty.inputValue}" label="#{bindings.ProdOutPyView3.hints.Qty.label}" required="#{bindings.ProdOutPyView3.hints.Qty.mandatory}" columns="#{bindings.ProdOutPyView3.hints.Qty.displayWidth}" maximumLength="#{bindings.ProdOutPyView3.hints.Qty.precision}" shortDesc="#{bindings.ProdOutPyView3.hints.Qty.tooltip}" id="it28" autoSubmit="true" validator="#{backingBeanScope.backing_GOOD_OUT_PY.getTotall}"> <f:validator binding="#{row.bindings.Qty.validator}"/> <af:convertNumber groupingUsed="false" pattern="#{bindings.ProdOutPyView3.hints.Qty.format}"/> </af:inputText> من شاشة ال log قيمة ال qty باستمرار null بالرغم من انى بعطى قيمة لها xxxxx_addid1 xxxxx_addid2 Disc= Test1 qty= null وده الكود public void getTotall(FacesContext facesContext, UIComponent uIComponent, Object object) { // Add event code here... DCBindingContainer dcbc1 = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); Row[] rows =dcbc1.findIteratorBinding("ProdOutPyView3Iterator").getAllRowsInRange(); System.out.println("xxxxx_addid1 "); if (rows!=null){ System.out.println("xxxxx_addid2 "); DCBindingContainer dcbc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); Row row =dcbc.findIteratorBinding("ProdOutPyHView5Iterator").getCurrentRow(); int sum=0; for (int i=0 ;i<rows.length;i++){ Row row2=rows; String aa=(String) row2.getAttribute("Disc"); System.out.println("Disc= "+aa); Number nn=(Number) row2.getAttribute("Qty"); System.out.println("qty= "+nn); BigDecimal n1=nn.bigDecimalValue(); BigDecimal n2=(BigDecimal)row2.getAttribute("MPrice"); if (n1!=null || n2!=null){ row2.setAttribute("SumPrice", n1.multiply(n2)); BigDecimal n=(BigDecimal)row2.getAttribute("SumPrice"); System.out.println("n1= "+n1); System.out.println("n2= "+n2); System.out.println("sumprice= "+n); if(n!=null){ sum+=n.intValue(); BigDecimal bb=new BigDecimal(sum); System.out.println("sum= "+sum); System.out.println("sum= "+bb); row.setAttribute("PTotal",bb); } } } } } تقديم بلاغ
بتاريخ: 12 فبراير 20179 سنة comment_282937 هذا أكيد يجب استخدام المتغير object لإيجاد القيمة تقديم بلاغ
بتاريخ: 12 فبراير 20179 سنة كاتب الموضوع comment_282938 شكرا يا باشمهندس طيب انا عايز اتحرك على كل ال سجلات فى نفس الوقت علشان اعمل sum لان object حتجيب السجل الحالى تقديم بلاغ
بتاريخ: 12 فبراير 20179 سنة كاتب الموضوع comment_282951 يعنى يا باشمهندس استخدم ال java empl واقدر استخدم getallrowsInRange تقديم بلاغ
بتاريخ: 13 فبراير 20179 سنة comment_282969 لا ليس ذلك استخدم entity validator هذا يتم تنفيذه على كل صف تقديم بلاغ
بتاريخ: 13 فبراير 20179 سنة كاتب الموضوع comment_282987 طيب يا باشمهندس انا عايز ال validation تحصل لما ادخل الكمية والسعر (ودول فى ال detail) علشان يضربهم فى بعض ويعمل sum على ال total والقيمة دى فى (ال master) بحيث ينفذ الsum بعد ادخال الكمية والسعر ولا يرتبط بعملية ال commit تقديم بلاغ
بتاريخ: 13 فبراير 20179 سنة كاتب الموضوع comment_282992 شكرا يا باشمهندس وربنا يجعله فى ميزان حسناتك تقديم بلاغ
بتاريخ: 14 فبراير 20179 سنة comment_283046 طيب يا باشمهندس انا عايز ال validation تحصل لما ادخل الكمية والسعر (ودول فى ال detail) علشان يضربهم فى بعض ويعمل sum على ال total والقيمة دى فى (ال master) بحيث ينفذ الsum بعد ادخال الكمية والسعر ولا يرتبط بعملية ال commit هنا أنت لا تقوم بعمل تحقق في هذه الحالية نستخدم ViewRowImpl تقديم بلاغ
بتاريخ: 14 فبراير 20179 سنة comment_283047 شكرا يا باشمهندس وربنا يجعله فى ميزان حسناتك العفو وإياكم إن شاء الله تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.