s-HR产品多选F7的相关问题答疑原创
金蝶云社区-杨天罡
杨天罡
3人赞赏了该文章 323次浏览 未经作者许可,禁止转载编辑于2023年07月24日 17:05:41

s-HR产品对F7有设置多选的配置

这个配置主要是解决2个问题:

1、列表过滤数据,进行多选作为过滤条件过滤数据

2、带分录的表单,增加分录数据时候,可以进行多选,重写F7的afterOK方法,每条生成一个分录


其他场景均不支持,如果有其他场景需要,需要进行自行二开代码处理

常见的处理方式:

1、实体模型上建立比较长的字符串,这个存基础资料ID,多个用逗号隔开,有一定限制,前后端都需要自行代码进行处理。(这种是id个数在10以内比较建议,缺点是解析麻烦,特别是参与报表计算时候,sql是没法搞定的,特别麻烦)

视图界面展示时候,视图配置上,需要将多个F7主键值进行隐藏配置

如:<field name="xxxxF7Ids" type="hidden"/> id隐藏栏位值如:xxx01,xxx02,xxx03

将F7的显示值进行展示

如:<field name="xxxxF7Names" /> 显示栏位值:显示值1,显示值3,显示值3

编辑时候,需要对xxxxF7Names进行F7控件初始化,并通过xxxxF7Ids和xxxxF7Names出来的初始值,组装data赋值给F7

查看时候不做任何处理,直接展示显示值就好了,不需要去初始化F7控件


初始化数据:后端重写com.kingdee.shr.base.syssetting.web.handler.EditHandler#afterInitModel这个方法

前端F7的初始化方法:在js中搜索能够找到的,如下:

var data= {id:'xxxx',name:'xxx'};//单个
var data= [{id:'xxxx',name:'xxx'},{id:'xxxx',name:'xxx'},...];//多个
$('#xxxx').shrPromptBox('setValue',data);




2、实体模型上建立分录关联属性,做成一对多的关系表,将多条存到关系表里面,前后端都需要自行代码处理。(建议方案,各做解析都比较优秀)


赞 3