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

涎涎原创约 833 字大约 3 分钟...KingdeeKingdee

81-金蝶云苍穹单据列表插件billClosedCallBack事件案例.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

  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事件案例 知识点整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4