模板条件匹配接口文档
## 1 简介
在打印需求中,二开由于某些具体需求,标准操作按钮不满足用户业务场景时,希望通过接口获取到单据匹配的打印模板,进行打印。
## 2 适用版本
金蝶云苍穹 6.0.1及以上
## 3 接口工具类
kd.bos.print.matchtpl.TplMatcherUtil
## 4 接口列表
| 方法 | 说明 |
| ------------------------------------- | ------------------------------------------------------------ |
| runMatcher | 执行模板匹配流程,一个流程匹配到即返回结果
1、模板条件设置匹配模板流程
2、打印个人设置匹配模板流程
3、打印方案匹配模板流程
4、默认模板匹配模板流程 | | buildMatcherResultByNewPrintCondition | 执行模板配置条件设置匹配流程 | | buildMatcherResultByPrintSetting | 执行打印个人设置匹配流程
模板匹配优先级:打印个人设置打印条件>打印个人设置默认模板 | | buildMatcherResultByScheme | 执行打印方案匹配流程
匹配模板优先级:打印方案设置的打印条件>打印方案设置的默认模板 | | buildMatcherResultByDefault | 执行默认模板匹配流程
匹配模板优先级:打印个人设置按钮配置的默认模板>打印方案配置的默认模板>维护打印模板列表设置的默认模板 | ## 5 入参 kd.bos.print.matchtpl.TplMatcherParam | 参数名称 | 类型 | 必填 | 说明 | | -------- | ------------ | ---- | -------------------------------------------- | | entityId | String | 是 | 实体id(页面的标识,扩展页面需要传原单的标识) | | pkIds | List<Object> | 必填 | 单据id集合 | | appId | String | 否 | 应用id | | viewType | ViewType | 是 | 视图类型 | ## 6 结果集 kd.bos.print.matchtpl.MatcherResult | 参数名称 | 类型 | 说明 | | ------------- | ------------------------- | ------------------------------------------------------------ | | endMatchLevel | int | 模板在哪个节点匹配到。1模板匹配条件 2个人设置 3打印方案 4默认模板 0时4种设置均为空,未匹配到 | | pkTplMap | Map<Object,Set<MatchTpl>> | pk-模板集合映射map,数据主键对应模板集合 | | tplPkMap | Map<MatchTpl,Set<Object>> | 模板-pk集合映射map,模板对应数据主键集合 | | unMatchPkSet | Set<Object> | 未匹配到的数据主键集合 | ## 7 案例-单据打印时如何插件获取到匹配的模板 ```java /** * 模板接口使用案例 * */ public class TplMatchTestPlugin extends AbstractListPlugin { @Override public void registerListener(EventObject e) { addItemClickListeners("_toolbar_"); } @Override public void itemClick(ItemClickEvent evt) { String itemKey = evt.getItemKey(); if(!"matchtpl".equals(itemKey)){ return; } //构造入参 TplMatcherParam param = new TplMatcherParam(); param.setEntityId("testbill");//表单id List<Object> pkIds = new ArrayList<>(1); pkIds.add(0L); param.setPkIds(pkIds);//单据内码集合 param.setViewType(ViewType.LIST); param.setAppId("csapp");//应用id TplMatcherUtil matcherUtil = new TplMatcherUtil(param); //1、模板条件配置匹配结果 MatcherResult result = matcherUtil.buildMatcherResultByNewPrintCondition(); //生成结果集后想重新使用工具类需要重置结果集和上下文 matcherUtil.reset(); //2、打印个人设置匹配结果 result = matcherUtil.buildMatcherResultByPrintSetting(); matcherUtil.reset(); //3、打印方案匹配结果 result = matcherUtil.buildMatcherResultByScheme(); matcherUtil.reset(); //4、默认模板匹配结果 result =matcherUtil.buildMatcherResultByDefault(); matcherUtil.reset(); //5、模板匹配结果,依次执行,1,2,3,4其中一个匹配上即结束 result = matcherUtil.runMatcher(); //模板在哪个节点匹配到。1模板匹配条件 2个人设置 3打印方案 4默认模板 0时4种设置均为空,未匹配到 int endMatchLevel = result.getEndMatchLevel(); //未匹配到的数据主健集合 Set<Object> unMatchPkIdSet = result.getUnMatchPkIdSet(); //pk-模板集合映射map,数据主键对应模板集合 Map<Object, Set<MatcherTpl>> pkTplMap = result.getPkTplMap(); //模板-pk集合映射map,模板对应数据主键集合 Map<MatcherTpl, Set<Object>> tplPkMap = result.getTplPkMap(); } } ```
1、模板条件设置匹配模板流程
2、打印个人设置匹配模板流程
3、打印方案匹配模板流程
4、默认模板匹配模板流程 | | buildMatcherResultByNewPrintCondition | 执行模板配置条件设置匹配流程 | | buildMatcherResultByPrintSetting | 执行打印个人设置匹配流程
模板匹配优先级:打印个人设置打印条件>打印个人设置默认模板 | | buildMatcherResultByScheme | 执行打印方案匹配流程
匹配模板优先级:打印方案设置的打印条件>打印方案设置的默认模板 | | buildMatcherResultByDefault | 执行默认模板匹配流程
匹配模板优先级:打印个人设置按钮配置的默认模板>打印方案配置的默认模板>维护打印模板列表设置的默认模板 | ## 5 入参 kd.bos.print.matchtpl.TplMatcherParam | 参数名称 | 类型 | 必填 | 说明 | | -------- | ------------ | ---- | -------------------------------------------- | | entityId | String | 是 | 实体id(页面的标识,扩展页面需要传原单的标识) | | pkIds | List<Object> | 必填 | 单据id集合 | | appId | String | 否 | 应用id | | viewType | ViewType | 是 | 视图类型 | ## 6 结果集 kd.bos.print.matchtpl.MatcherResult | 参数名称 | 类型 | 说明 | | ------------- | ------------------------- | ------------------------------------------------------------ | | endMatchLevel | int | 模板在哪个节点匹配到。1模板匹配条件 2个人设置 3打印方案 4默认模板 0时4种设置均为空,未匹配到 | | pkTplMap | Map<Object,Set<MatchTpl>> | pk-模板集合映射map,数据主键对应模板集合 | | tplPkMap | Map<MatchTpl,Set<Object>> | 模板-pk集合映射map,模板对应数据主键集合 | | unMatchPkSet | Set<Object> | 未匹配到的数据主键集合 | ## 7 案例-单据打印时如何插件获取到匹配的模板 ```java /** * 模板接口使用案例 * */ public class TplMatchTestPlugin extends AbstractListPlugin { @Override public void registerListener(EventObject e) { addItemClickListeners("_toolbar_"); } @Override public void itemClick(ItemClickEvent evt) { String itemKey = evt.getItemKey(); if(!"matchtpl".equals(itemKey)){ return; } //构造入参 TplMatcherParam param = new TplMatcherParam(); param.setEntityId("testbill");//表单id List<Object> pkIds = new ArrayList<>(1); pkIds.add(0L); param.setPkIds(pkIds);//单据内码集合 param.setViewType(ViewType.LIST); param.setAppId("csapp");//应用id TplMatcherUtil matcherUtil = new TplMatcherUtil(param); //1、模板条件配置匹配结果 MatcherResult result = matcherUtil.buildMatcherResultByNewPrintCondition(); //生成结果集后想重新使用工具类需要重置结果集和上下文 matcherUtil.reset(); //2、打印个人设置匹配结果 result = matcherUtil.buildMatcherResultByPrintSetting(); matcherUtil.reset(); //3、打印方案匹配结果 result = matcherUtil.buildMatcherResultByScheme(); matcherUtil.reset(); //4、默认模板匹配结果 result =matcherUtil.buildMatcherResultByDefault(); matcherUtil.reset(); //5、模板匹配结果,依次执行,1,2,3,4其中一个匹配上即结束 result = matcherUtil.runMatcher(); //模板在哪个节点匹配到。1模板匹配条件 2个人设置 3打印方案 4默认模板 0时4种设置均为空,未匹配到 int endMatchLevel = result.getEndMatchLevel(); //未匹配到的数据主健集合 Set<Object> unMatchPkIdSet = result.getUnMatchPkIdSet(); //pk-模板集合映射map,数据主键对应模板集合 Map<Object, Set<MatcherTpl>> pkTplMap = result.getPkTplMap(); //模板-pk集合映射map,模板对应数据主键集合 Map<MatcherTpl, Set<Object>> tplPkMap = result.getTplPkMap(); } } ```
模板条件匹配接口文档
## 1 简介在打印需求中,二开由于某些具体需求,标准操作按钮不满足用户业务场景时,希望通过接口获取到单据匹配的打印模板,进行打印。#...
点击下载文档
上一篇:分录表格如何加标题?下一篇:编码规则简介
本文2024-09-23 00:38:17发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140755.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章