بتاريخ: 20 أبريل 20187 سنة comment_294970 السلام عليكم ورحمة الله وبركاته عند عمود نوعه Transient وعامل له validation Rule فى ال Entity Empl وكذلك بجيب قيمته من ال ViewEmpl (postquery) علشان عند فتح الصفحة يجيب قيمته وتظهر على الشاشة (اسم الموظف مثلا) ولا بد من عمل Validation Rule داخل ال entityEmpl وكذلك بحتاج هذا العمود فى ENtityEmpl المشكلة هى :- عند عمل create insert بيروح فى الاول DML_UPDATE علشان يعمل تعديل للسجل السابق ثم يذهب للسجل الجديد وينفذ DML_INSERT المشكلة الاخرى لو ذهبت لصفحة اخرى واجريت اى تعديل او سجل جديد بيذهب للشاشة السابقة وينفذ DML_UPDATE فما الحل ؟ لانها عملية خطيرة جدا؟؟؟ تقديم بلاغ
بتاريخ: 21 أبريل 20187 سنة كاتب الموضوع comment_294976 عند عمل create insert ثم الضغط على زرار commit بيروح فى الاول DML_UPDATE علشان يعمل تعديل لسجل السابق ثم يذهب للسجل hgphgn الجديد وينفذ DML_INSERT تقديم بلاغ
بتاريخ: 21 أبريل 20187 سنة كاتب الموضوع comment_294985 نعم عندى عمود نوعه Transient وعامل له validation Rule فى ال Entity Empl وكذلك بجيب قيمته من ال ViewEmpl (postquery) علشان عند فتح الصفحة يجيب قيمته وتظهر على الشاشة (اسم الموظف مثلا) ولا بد من عمل Validation Rule داخل ال entityEmpl تقديم بلاغ
بتاريخ: 23 أبريل 20187 سنة كاتب الموضوع comment_295028 الصفحة Master Detais الصفحة تفتح على سجل وفى ال ViewRowImpl الخاص بال Details بجيب قيمة حقلين transient كمايلى @Override public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { System.out.println("proc_b_no_exp_date_NNNNNNNNNNNNN"); ViewRowImpl row = super.createInstanceFromResultSet(queryCollection, resultSet); if (row.getAttribute("AddId")!=null){ System.out.println("proc_b_no_exp_date"); boolean result4=true; String PlSQLCode4 ="BEGIN\n" + "SELECT B_NO,EXP_DATE \n" + "INTO ?,?\n" + "FROM PRODUCT\n" + "WHERE PROD_ID=?;\n" + "END ;"; CallableStatement stat4=null; try { stat4=getDBTransaction().createCallableStatement(PlSQLCode4,getDBTransaction().DEFAULT); System.out.println("row.getAttribute(ProdId)"+row.getAttribute("ProdId")); stat4.registerOutParameter(1, Types.VARCHAR); stat4.registerOutParameter(2, Types.DATE); stat4.setObject(3, row.getAttribute("ProdId")); result4=stat4.execute(); row.setAttribute("B_NO",(stat4.getString(1))) ; row.setAttribute("EXP_DATE",new Date (stat4.getDate(2))); stat4.clearParameters(); } catch (Exception e4) { // TODO: Add catch code System.out.println("proc_b_no_exp_date"+e4); System.out.println("proc_b_no_exp_date"+PlSQLCode4); e4.printStackTrace(); } finally { try { stat4.close(); } catch (Exception e4) { // TODO: Add catch code e4.printStackTrace(); } } } return super.createInstanceFromResultSet(queryCollection, resultSet); } بقوم بعمل سجل جديد عند الحفظ بيروح لل update لل Details بعدد سجلاته ثم يبدأ فى التعامل مع السجل الجديد ؟؟ بعدد سجلات ال Details تقديم بلاغ
بتاريخ: 23 أبريل 20187 سنة كاتب الموضوع comment_295032 المتغيرين row.setAttribute("B_NO",(stat4.getString(1))) ; row.setAttribute("EXP_DATE",new Date (stat4.getDate(2))); بيتعامل على انه قام بتعديل قيمهم بدليل لما اوقف السطرين السابقيين واعمل سجل جديد عند الحفظ لا يلتفت للسجلات السابقة ويقو فقط بحفظ السجل الجديد فقط تم تعديل 23 أبريل 20187 سنة بواسطة rabie123 تقديم بلاغ
بتاريخ: 24 أبريل 20187 سنة كاتب الموضوع comment_295056 طيب يا باشمهندس هناك لاحظة اخرى عند صفحة فى شاشة التصميم او فى ال source اقف على زرار ال create insert واذهب لل bindgs اجد ال cursore لا يقف على اى شيئ واقف على زرار ال commit واذهب لل bindgs اجد ايضا ال cursor لايقف على شيء ونفس الكلام مع زرار ال delete ما عدا زرارى ال Execute و ال Rollback اجد الcursore يقف عليهم فى ال bindgs فهل لهذه الملاحظ اية مدلول الزراير الاولى لها اكود تم تعديل 24 أبريل 20187 سنة بواسطة rabie123 تقديم بلاغ
بتاريخ: 25 أبريل 20187 سنة كاتب الموضوع comment_295061 زرار الاضافة CreateInsert ال bindgs تقديم بلاغ
بتاريخ: 25 أبريل 20187 سنة كاتب الموضوع comment_295064 ملاحظة لم استطع احضار الصور على مرة واحدة المشاركات الاربعة الاخيرة مرتبطة ببعض ملاحظة اخرى لغيت هذه السطور وعمل save بدون الذهاب الى dml_update ولم يلتفت لسجلات سابقة ملاحظة اخرى المتغير B_NO transient لها validation rule @Override public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { System.out.println("proc_b_no_exp_date_NNNNNNNNNNNNN"); ViewRowImpl row = super.createInstanceFromResultSet(queryCollection, resultSet); if (row.getAttribute("AddId")!=null){ System.out.println("proc_b_no_exp_date"); boolean result4=true; String PlSQLCode4 ="BEGIN\n" + "SELECT B_NO,EXP_DATE \n" + "INTO ?,?\n" + "FROM PRODUCT\n" + "WHERE PROD_ID=?;\n" + "END ;"; CallableStatement stat4=null; try { stat4=getDBTransaction().createCallableStatement(PlSQLCode4,getDBTransaction().DEFAULT); System.out.println("row.getAttribute(ProdId)"+row.getAttribute("ProdId")); stat4.registerOutParameter(1, Types.VARCHAR); stat4.registerOutParameter(2, Types.DATE); stat4.setObject(3, row.getAttribute("ProdId")); result4=stat4.execute(); row.setAttribute("B_NO",(stat4.getString(1))) ; row.setAttribute("EXP_DATE",new Date (stat4.getDate(2))); stat4.clearParameters(); } catch (Exception e4) { // TODO: Add catch code System.out.println("proc_b_no_exp_date"+e4); System.out.println("proc_b_no_exp_date"+PlSQLCode4); e4.printStackTrace(); } finally { try { stat4.close(); } catch (Exception e4) { // TODO: Add catch code e4.printStackTrace(); } } } return super.createInstanceFromResultSet(queryCollection, resultSet); } تم تعديل 25 أبريل 20187 سنة بواسطة rabie123 تقديم بلاغ
بتاريخ: 26 أبريل 20187 سنة كاتب الموضوع comment_295074 ارجو توضيح هذا الجملة هذا طبيعي لأن الزر به استدعاء لدالة مخصصة عند الغاء هذا الجزء زرار الحفظ بيشتغل صح ولو هذه هى المشكلة كيفية الحصول على قيمة عمود transient (حاجة بديلة post query) @Override public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { System.out.println("proc_b_no_exp_date_NNNNNNNNNNNNN"); ViewRowImpl row = super.createInstanceFromResultSet(queryCollection, resultSet); if (row.getAttribute("AddId")!=null){ System.out.println("proc_b_no_exp_date"); boolean result4=true; String PlSQLCode4 ="BEGIN\n" + "SELECT B_NO,EXP_DATE \n" + "INTO ?,?\n" + "FROM PRODUCT\n" + "WHERE PROD_ID=?;\n" + "END ;"; CallableStatement stat4=null; try { stat4=getDBTransaction().createCallableStatement(PlSQLCode4,getDBTransaction().DEFAULT); System.out.println("row.getAttribute(ProdId)"+row.getAttribute("ProdId")); stat4.registerOutParameter(1, Types.VARCHAR); stat4.registerOutParameter(2, Types.DATE); stat4.setObject(3, row.getAttribute("ProdId")); result4=stat4.execute(); row.setAttribute("B_NO",(stat4.getString(1))) ; row.setAttribute("EXP_DATE",new Date (stat4.getDate(2))); stat4.clearParameters(); } catch (Exception e4) { // TODO: Add catch code System.out.println("proc_b_no_exp_date"+e4); System.out.println("proc_b_no_exp_date"+PlSQLCode4); e4.printStackTrace(); } finally { try { stat4.close(); } catch (Exception e4) { // TODO: Add catch code e4.printStackTrace(); } } } return super.createInstanceFromResultSet(queryCollection, resultSet); @Override public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { System.out.println("proc_b_no_exp_date_NNNNNNNNNNNNN"); ViewRowImpl row = super.createInstanceFromResultSet(queryCollection, resultSet); if (row.getAttribute("AddId")!=null){ System.out.println("proc_b_no_exp_date"); boolean result4=true; String PlSQLCode4 ="BEGIN\n" + "SELECT B_NO,EXP_DATE \n" + "INTO ?,?\n" + "FROM PRODUCT\n" + "WHERE PROD_ID=?;\n" + "END ;"; CallableStatement stat4=null; try { stat4=getDBTransaction().createCallableStatement(PlSQLCode4,getDBTransaction().DEFAULT); System.out.println("row.getAttribute(ProdId)"+row.getAttribute("ProdId")); stat4.registerOutParameter(1, Types.VARCHAR); stat4.registerOutParameter(2, Types.DATE); stat4.setObject(3, row.getAttribute("ProdId")); result4=stat4.execute(); row.setAttribute("B_NO",(stat4.getString(1))) ; row.setAttribute("EXP_DATE",new Date (stat4.getDate(2))); stat4.clearParameters(); } catch (Exception e4) { // TODO: Add catch code System.out.println("proc_b_no_exp_date"+e4); System.out.println("proc_b_no_exp_date"+PlSQLCode4); e4.printStackTrace(); } finally { try { stat4.close(); } catch (Exception e4) { // TODO: Add catch code e4.printStackTrace(); } } } return super.createInstanceFromResultSet(queryCollection, resultSet); تقديم بلاغ
بتاريخ: 27 أبريل 20187 سنة كاتب الموضوع comment_295077 اجابة حضرتك السابقة هذا طبيعي لأن الزر به استدعاء لدالة مخصصة ارجو توضيحها تقديم بلاغ
بتاريخ: 1 مايو 20187 سنة comment_295129 لو وضعت في الزر دالة فهنا لن تجد في page definition ما يشير إلى operator المستخدم تقديم بلاغ
بتاريخ: 1 مايو 20187 سنة كاتب الموضوع comment_295132 اذا تم استخدام الدالة public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { عند الضغط على زرار الحفظ بيمر على جميع سجلات الملف (تحديدا 25 سجل حسب ال range size ) ويقوم بتنفيذ جملة dml_update على هذه السجلات ؟؟؟ فما الحل public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { تقديم بلاغ
بتاريخ: 1 مايو 20187 سنة comment_295133 هذا غير طبيعي طبعاً جرب عمل comment على أي سطر فيه setAttribute ولنر النتيجة تقديم بلاغ
بتاريخ: 1 مايو 20187 سنة كاتب الموضوع comment_295148 انا بلجأ لهذه الدالة public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) { لايجاد قيم لاعمدة فى الجدول وبالتالى بعمل setAttribute فهل هناك حل اخر لايجاد قيم هذه الاعمدة عند الوقوف على اى سجل خاصة ان هذه الحقول عليها validation rule ارجو يا باشمهندس ايجاد حل خاصة كنت بعمل كده قى اوراكل فورم فى postquery لل block تم تعديل 1 مايو 20187 سنة بواسطة rabie123 تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.