动态表单-弹出页面及页面回调原创
金蝶云社区-新用户123
新用户123
7人赞赏了该文章 5,413次浏览 未经作者许可,禁止转载编辑于2021年08月25日 14:50:42

标签:

动态表单、子页面回调、页面弹出

需求背景:

1.      问:在开发过程当中,时常出现需要对子页面获取数据功能开发,返回给父页面的回显的功能操作 ,通过单据获取动态表单的编写给大家清晰展示数据获取

 

实现方案:

1.新建一个单据

 image.png

配置操作插件kd.bos.form.pulgin.DynamicParentPlugin

 

2.通过选择项目号获取动态表单的页面的用户名和密码,回显到父页面的单据上

 image.png

2.      新建一个动态表单

 image.png

配置绑定插件kd.bos.form.pulgin.DynamicFormPlugin

 

 

 

 

 

 

 

 

 

 

 

3.  在单据上选择项目号

 image.png

4.  选择完成后会弹出动态表单子页面输入操作

 image.png

5.  通过输入用户名和密码回显到单据字段上

 image.png

 

 

 

实现效果:

  1. 页面显示效果:

    image.png

2.代码步骤

 image.png

3.通过确定按钮调用

 image.png

4. 代码步骤

 image.png

 

 

附件代码

1.单据插件代码:

public class DynamicParentPlugin extends AbstractFormPlugin  {

    @Override

    public void propertyChanged(PropertyChangedArgs e) {

        super.propertyChanged(e);

        String name = e.getProperty().getName();

 

        if ("kded_project".equals(name)) {

          String  project=(String)this.getModel().getValue("kded_project");

          if(!project.isEmpty()) {

              FormShowParameter ShowParameter = new FormShowParameter();

                 ShowParameter.setFormId("kded_son");

                 ShowParameter.setCaption("请输入项目负责人的用户名和密码");

                 ShowParameter.setCloseCallBack(new CloseCallBack(this, "kded_project"));

                 ShowParameter.getOpenStyle().setShowType(ShowType.Modal);

                 this.getView().showForm(ShowParameter);

          }

          

        }

    }

  

  

  public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {

      super.closedCallBack(closedCallBackEvent);

      if("kded_project".equals(closedCallBackEvent.getActionId())) {

             //子页面数据回调

             HashMap<String, String> returnData = (HashMap<String, String>) closedCallBackEvent.getReturnData();

             this.getModel().setValue("kded_username",returnData.get("kded_username"));

             this.getModel().setValue("kded_password",returnData.get("kded_password"));

      }

       

   }

}

 

2.动态表单单据代码

   public void registerListener(EventObject e) {

      super.registerListener(e);

        this.addClickListeners("btnok");

   }

  

   public void click(EventObject evt) {

      super.click(evt);

      Control source = (Control) evt.getSource();

      String sourceKey=source.getKey();

      HashMap<String, String> hashMap = new HashMap<>();

        hashMap.put("kded_username", String.valueOf(this.getModel().getValue("kded_username")));

        hashMap.put("kded_password", String.valueOf(this.getModel().getValue("kded_password")));

      //监听确定按钮

      if ("btnok".equals(sourceKey)) {

           this.getView().returnDataToParent(hashMap);

           this.getView().close();

      }

   }

 


赞 7