-
陪你共撑帆 初学数据Lv2
发表于2018-6-22 11:02
楼主
本帖最后由 陪你共撑帆 于 2018-6-22 18:02 编辑
需求说明需求的场景:用户在表元中填写“项目编码”,所填写“项目编码”不能与往期所有报表户填写过的相同,并且同一报表中也不能相同。
问题分析
1、用户填写的编码不能与往期历史数据相同,首先要获取到往期数据,通过取数管理写数据库查询语句获得全部历史数据(编码);
2、同报表填写的编码不能重复,通过设置关键字表元来实现。
解决方案
参考资料
需求说明需求的场景:用户在表元中填写“项目编码”,所填写“项目编码”不能与往期所有报表户填写过的相同,并且同一报表中也不能相同。
问题分析
1、用户填写的编码不能与往期历史数据相同,首先要获取到往期数据,通过取数管理写数据库查询语句获得全部历史数据(编码);
2、同报表填写的编码不能重复,通过设置关键字表元来实现。
解决方案
1.取数设置
在报表平台管理|取数管理添加分组并添加JDBC取数
如果想要相同报表户填写的“项目编码”不同即可,则再Sql中加上where条件:
select wm_concat(A2) a2 from IXJRW_B0 where userid_=<id>
2.设置审核公式审核,用于审核与往期项目编码不重复
3.设置相同报表填写的项目编码不相同
在变长表编辑区域空白区域右键打开属性,设置变长表关键字为“项目编码”表元,并勾选不允许代码表元/关键字重复。
参考资料
相关参考资料
1.Oracle中的wm_concat函数,它的作用是以','连接字符;
2.MySQL中group_concat函数,用于连接字符,具体语法如下:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])