• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
黄洪波写点东西的地方
博客园    首页    新随笔    联系   管理    订阅  订阅
校验基于EO的VO中的字段是否发生变化

I have a table region and there are multiple records fetching from a Entity based VO. Now I have updated one row or any of row, I require to display once changed records on next page. How can I display? I want to capture row status type thing while pressing the save button.

 

if(row.getEntity(0).getPostState()==2){

  //your logic 

}

 

 

 xxPerPhonesVORowImpl updatedRow = (xxPerPhonesVORowImpl)EmpContactsVO.getCurrentRow();          

              System.out.println("Row Status : " + updatedRow.getxxPerPhonesEO().getEntityState());

              if(updatedRow.getxxPerPhonesEO().getEntityState() == EntityImpl.STATUS_NEW  ) {

                  System.out.println("Row Status : Row # " + i + " : Modified value : "  + updatedRow.getEntity(0).getEntityState());

              }

 

最佳答案:

ssue resolved by creating a new field (IS_SUBMITTED) in database table to Flag the record status with the default value as N (update all the existing records if there are any in the table);

 

Step 1 : Go to properties on your EO and navigate to Java and check Data Manipulation

Step 2 : Go to your EOImpl class and search for doDML method

Step 3 : Under doDML method add below code to set EO Attribute value;

 

            if (getIsSubmitted().equals("N")) {

            setIsSubmitted("M"); //where as M stands for Modified

            }

 

Step 4 : Under your Controller Class @ PFR, write code for loop and set the attribute status like below;

 

      OAApplicationModule am = pageContext.getApplicationModule(webBean);

      if (pageContext.getParameter("SubmitButton") != null ) {

         am.invokeMethod("apply");   //saving the records so the EOImpl will set the is_submitted to 'M' wherever the record modified state found

         OAViewObject EmpPhoneVO = (OAViewObject)am.findViewObject("xxPerPhonesVO1");

         int empPhoneRowCnt = EmpPhoneVO.getRowCount();

         EmpPhoneVO.first();

         for (int i=1; i<=empPhoneRowCnt; i++){

             OARow empPhoneRow = (OARow)EmpPhoneVO.getCurrentRow();

             String lPhoneValidated = "Y";

             // your validation if any

             if (lPhoneValidated.equals("Y")) {

 

                 System.out.println("IsSubimtted After Get : " + empPhoneRow.getAttribute("IsSubmitted"));

                 if (empPhoneRow.getAttribute("IsSubmitted").equals("M")){

                     empPhoneRow.setAttribute("IsSubmitted","S");

                 }

                 System.out.println("IsSubimtted After Set : " + empPhoneRow.getAttribute("IsSubmitted"));

                 OAException submitMessage = new OAException("Employee Contact Details : Row # " + i +  " : Submitted for Approval to Employee Relation Officer.",

                                                OAException.CONFIRMATION  );

                 pageContext.putDialogMessage(submitMessage);

             }

             EmpPhoneVO.next();

          }

     }

 

 

参考资料:

How to get Row Status of VO Rows

 

posted on 2015-10-23 10:29  红无酒伤  阅读(419)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3