美文网首页
金蝶云苍穹单据列表插件billClosedCallBack事件案

金蝶云苍穹单据列表插件billClosedCallBack事件案

作者: 涎涎 | 来源:发表于2020-08-27 06:59 被阅读0次
    1. 新建带组织模板的单据

    2. 添一个文本字段在基本信息里,将其名称更改为文本1将其标识更改为textfield1

    3. 管理员账户登录授权后切换普通用户登录预览后添加数据,最好添加多条数据。

    4. 进入列表视图,将文本1添加进表格视图,并开启显示为超链

    1. 编码
    package kd.bos.bill.plugin;
    
    import kd.bos.bill.BillShowParameter;
    import kd.bos.bill.OperationStatus;
    import kd.bos.dataentity.utils.StringUtils;
    import kd.bos.form.CloseCallBack;
    import kd.bos.form.ShowType;
    import kd.bos.form.events.ClosedCallBackEvent;
    import kd.bos.form.events.HyperLinkClickArgs;
    import kd.bos.list.events.BillClosedCallBackEvent;
    import kd.bos.list.plugin.AbstractListPlugin;
    
    /**
     * <p>Title: </p>
     * <p>
     *    Description:
     * </p>
     * <p>Copyright: Copyright (c) 2020</p>
     * @author xx
     * @date 2020年3月10日
     * @version 1.0
     */
    public class BillClosedCallBackSample extends AbstractListPlugin {
        private final static String KEY_TEXTFIELD1 = "textfield1";
    
        /**
         * <p>Title: </p>
         * <p>
         *    Description:
         * 用户点击超链接单元格时,触发此事件
         * </p>
         * <p>Copyright: Copyright (c) 2020</p>
         * @author xx
         * @date 2020年3月10日
         * @param param the bare_field_name
         * @param args
         * @see kd.bos.list.plugin.IListPlugin#billListHyperLinkClick(kd.bos.form.events.HyperLinkClickArgs)
         * @version 1.0
         */
        @Override
        public void billListHyperLinkClick(HyperLinkClickArgs args) {
            if (StringUtils.equals(KEY_TEXTFIELD1,  args.getHyperLinkClickEvent().getFieldName())){
                // 当前点击的是文本1
                
                // 取消系统自动打开本单的处理
                args.setCancel(true);
                
                // 打开物料新增界面
                BillShowParameter showParameter = new BillShowParameter();
                showParameter.setFormId("bd_material");
                showParameter.getOpenStyle().setShowType(ShowType.Modal);
                showParameter.setStatus(OperationStatus.ADDNEW);
                
                CloseCallBack closeCallBack = new CloseCallBack(this, KEY_TEXTFIELD1);
                showParameter.setCloseCallBack(closeCallBack);
                
                this.getView().showForm(showParameter);
            }
        }
    
        /**
         * <p>Title: </p>
         * <p>
         *    Description:
         * 单据界面关闭时,触发本事件,传入单据内码
         * </p>
         * <p>Copyright: Copyright (c) 2020</p>
         * @author xx
         * @date 2020年3月10日
         * @param param the bare_field_name
         * @param e
         * @see kd.bos.list.plugin.IListPlugin#billClosedCallBack(kd.bos.list.events.BillClosedCallBackEvent)
         * @version 1.0
         */
        @Override
        public void billClosedCallBack(BillClosedCallBackEvent e) {
            
            if (StringUtils.equals(KEY_TEXTFIELD1, e.getCloseCallBack().getActionId())){
                // 自定义的物料新增界面返回
                long materialId = (long)e.getPkId();
                this.getView().showMessage(String.format("事件 billClosedCallBack,可以收到系统自动打包的子界面内码%d", materialId));
            }
        }
    
        /**
         * <p>Title: </p>
         * <p>
         *    Description:
         * 单据界面关闭时,也会触发本事件;但是默认不带数据返回
         * </p>
         * <p>Copyright: Copyright (c) 2020</p>
         * @author xx
         * @date 2020年3月10日
         * @param param the bare_field_name
         * @param closedCallBackEvent
         * @see kd.bos.form.plugin.AbstractFormPlugin#closedCallBack(kd.bos.form.events.ClosedCallBackEvent)
         * @version 1.0
         */
        @Override
        public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
            if (StringUtils.equals(KEY_TEXTFIELD1, closedCallBackEvent.getActionId())){
                // 自定义的物料新增界面返回
                Object returnData = closedCallBackEvent.getReturnData();
    //          this.getView().showMessage(String.format("事件 closedCallBack,只能收到子界面主动返回给列表界面的数据%s", returnData));
            }
        }
    }
    
    1. 重启服务后注册插件
    1. 保存之后预览测试

    方法体内弹窗代码如下时运行效果

    this.getView().showMessage(String.format("事件 billClosedCallBack,可以收到系统自动打包的子界面内码%d", materialId));
    //          this.getView().showMessage(String.format("事件 closedCallBack,只能收到子界面主动返回给列表界面的数据%s", returnData));
    

    方法体内弹窗代码如下时运行效果

    //          this.getView().showMessage(String.format("事件 billClosedCallBack,可以收到系统自动打包的子界面内码%d", materialId));
    this.getView().showMessage(String.format("事件 closedCallBack,只能收到子界面主动返回给列表界面的数据%s", returnData));
    

    以上就是我关于 金蝶云苍穹单据列表插件billClosedCallBack事件案例 知识点整理与总结的全部内容,希望对你有帮助。。。。。。。


    分割线

    相关文章

      网友评论

          本文标题:金蝶云苍穹单据列表插件billClosedCallBack事件案

          本文链接:https://www.haomeiwen.com/subject/qwbqsktx.html