套打.二开案例.利用干预查询接口指定排序
# 【应用场景】
套打时,部分场景利用数据表格指向单据体,但是绑定时绑定单据体和子单据体的数据;针对部分场景下可能子单据体分录顺序会错乱(如启用了查询并行度)
# 【案例演示】
利用套打干预查询接口,针对检验单增加子单据体序号字段、并增加按照子单据体序号排序,保证输出顺序
```python
import clr
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
from System import *
from Kingdee.BOS import *
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core import *
def OnPrepareNotePrintQueryParam(e):
if not e.NotePrintTplId.Equals("a225ce7c-4e9b-4d85-88e5-79e223e7ff62",StringComparison.OrdinalIgnoreCase):
return;
if e.DataSourceId.Equals("FEntity",StringComparison.OrdinalIgnoreCase):
subEntityKey = "FItemDetail";
entity = this.View.BillBusinessInfo.GetEntity(subEntityKey);
if entity is None:
return;
seqKey=entity.Key+"_"+entity.SeqFieldKey;
tempList=filter(lambda x:x.Key==seqKey,e.QueryParameter.SelectItems);
if(len(tempList)<=0):
e.QueryParameter.SelectItems.AddRange(SelectorItemInfo.CreateItems(seqKey));
entity = this.View.BillBusinessInfo.GetEntity(subEntityKey);
seqSort = entity.TableAlias +"."+ entity.SeqFieldKey+" ASC";
if(e.QueryParameter.OrderByClauseWihtKey == None or len(e.QueryParameter.OrderByClauseWihtKey) <= 0):
e.QueryParameter.OrderByClauseWihtKey = seqSort;
else:
e.QueryParameter.OrderByClauseWihtKey = e.QueryParameter.OrderByClauseWihtKey +","+seqSort;
```
参数说明:
NotePrintTplId——套打模板ID
DataSourceId——数据源ID
挂设表单插件和列表插件:
![image.webp](/download/0100e9c0d8e856d041b687eba9e69e36b8bf.webp)
套打.二开案例.利用干预查询接口指定排序
# 【应用场景】套打时,部分场景利用数据表格指向单据体,但是绑定时绑定单据体和子单据体的数据;针对部分场景下可能子单据体分录顺序会...
点击下载文档
本文2024-09-23 04:13:03发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163881.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章