电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

closedCallBack事件

来源:金蝶云社区作者:金蝶2024-09-237

closedCallBack事件

1 事件介绍

父界面的插件,可以在此事件,接收子界面返回的数据。

 

说明:

需要在显示子界面时,调用FormShowParameter参数的setCloseCallBack方法,设置回调属性,才会在子界面关闭时触发此事件:


FormShowParameter  showParameter = new FormShowParameter();
showParameter.setFormId(GetValByConditionEdit.FormId_ValByCondition);
showParameter.setCloseCallBack(new CloseCallBack(plugin, CALLBACKID_MYCALLBACK));
showParameter.getOpenStyle().setShowType(ShowType.Modal);
this.getView().showForm(showParameter);

 

2 事件触发时机

子界面关闭时,触发父界面的closedCallBack事件。

 

3 代码模板

package   kd.bos.plugin.sample.dynamicform.pcform.form.template;
 
import   kd.bos.dataentity.utils.StringUtils;
import   kd.bos.form.events.ClosedCallBackEvent;
import   kd.bos.form.plugin.AbstractFormPlugin;
 
public class ClosedCallBack extends AbstractFormPlugin {
   
    private final static String CALLBACKID_MYCALLBACK = "mycallback";
   
    @Override
    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
         super.closedCallBack(closedCallBackEvent);
        
         if (StringUtils.equals(closedCallBackEvent.getActionId(), CALLBACKID_MYCALLBACK)
                  && closedCallBackEvent.getReturnData() != null){
             // TODO 在此添加业务逻辑
         }
    }
}


说明:
常量CALLBACKID_MYCALLBACK 替代回调标识。

 

4 参数说明

ClosedCallBackEvent closedCallBackEvent:

  • public Object getSource():实现了ICloseCallBack接口的插件,后续将由此插件响应回调事件;

  • public String getActionId():多处代码显示子界面时,通过此标识区分来源;

  • public Object getReturnData():子界面返回数据。

 

5 应用示例

5.1 案例说明

1. 创建一个父界面,表单上有个文本字段 textfield,编辑风格(按钮+文本);

2. 创建一个子界面,表单上有一个多行文本以及确定和取消按钮;

3. 用户点击父界面的文本字段按钮,会打开子界面,用户在子界面编辑文本;

4. 用户在子界面编辑完成后,点击确定,可以将子界面中输入的文本传给父界面并显示在父界面的文本字段上。

  

5.2 实现方案

1. 捕获文本按钮click事件,打开子界面;

2. 捕获closedCallBack事件,接受子界面上的文本内容,填写在文本字段中。

 

5.3 实例代码

父界面插件:

package   kd.bos.plugin.sample.dynamicform.pcform.form.bizcase;

import   java.util.EventObject;

import   kd.bos.dataentity.utils.StringUtils;
import   kd.bos.form.CloseCallBack;
import   kd.bos.form.FormShowParameter;
import   kd.bos.form.ShowType;
import   kd.bos.form.control.Control;
import   kd.bos.form.control.events.ClickListener;
import   kd.bos.form.events.ClosedCallBackEvent;
import   kd.bos.form.field.TextEdit;
import   kd.bos.form.plugin.AbstractFormPlugin;

// 父页面插件
public class ClosedCallBackParent extends AbstractFormPlugin implements ClickListener {

    // 控件标识
    private final static String KEY_TEXT = "textfield";

    // 打开的子页面编码
    private final static String SUB_NUMBER = "test_largertextedit";

    // 设置子页面回调表示
    private final static String CLOSED_CALL_BACK = "closedCallBackTextField";

    /**
     * 注册控件事件
     */
    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        // 侦听文本字段的按钮点击事件
        TextEdit textEdit = this.getView().getControl(KEY_TEXT);
        textEdit.addClickListener(this);
    }

    /**
     * 控件点击事件
     */
    @Override
    public void click(EventObject evt) {
        super.click(evt);
        Control source = (Control)evt.getSource();
        if (StringUtils.equals(KEY_TEXT, source.getKey())){
            // 打开子页面
            this.showForm();
        }
    }


    /**
     * 显示子界面
     */
    private void showForm(){
        FormShowParameter showParameter = new FormShowParameter();
        // 设置子页面编码
        showParameter.setFormId(SUB_NUMBER);
        // 设置传递给子页面的参数
        showParameter.setCustomParam("parentText",this.getModel().getValue(KEY_TEXT));
        // 子页面打开方式
        showParameter.getOpenStyle().setShowType(ShowType.Modal);
        // 设置子页面回调标识
        CloseCallBack callBack = new CloseCallBack(this, CLOSED_CALL_BACK);   // 由本插件处理子界面的回调
        showParameter.setCloseCallBack(

closedCallBack事件

1 事件介绍父界面的插件,可以在此事件,接收子界面返回的数据。 说明:需要在显示子界面时,调用FormShowParameter参数的setCloseCallBac...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信