扩展行校验及自动计算
扩展行校验及自动计算
报表设计界面:
报表展现界面:
校验规则:
列1=列2+列3+列4+列5 列1=列6+列11+列16 列2=列7+列12+列17 列3=列8+列13+列18 列4=列9+列14+列19 列5=列10+列15+列20 列6=列7+列8+列9+列10 列11=列12+列13+列14+列15 列16=列17+列18+列19+列20 行01=行02+行03+行04 行01=行06+行10+行11+行12+行13+行14+行15+行16 行06=行07+行08+行09 行02>=行07 行03>=行08 行04>=行09
需求描述:
在现有报表模板的基础上 希望按照提供的校验规则,实现数据的校验和自动计算功能,完成数据的填报录入工作。
痛点:
数据扩展行中 针对扩展出来的不同数据行 有不同的校验和计算规则 ,现状是扩展数据行只能设置一个统一的计算计算或者校验规则 ,不能根据 扩展出的特定行 设置校验或者自动计算规则。
解决方案:
使用系统中jlcase()函数获取特定标识的数据行,然后根据获取到的数据行列来设置 特定的校验和自动计算规则。 详细了解jlcase()函数使用说明方法可参考:jlcase() 函数使用说明。
实现效果设置方法
情景一
校验规则 : 列1=列2+列3+列4+列5 解 读:第1列=第2列+第3列+第4列+第5列
解决方法 :设置校验规则 ${D9}==${E9}+${F9}+${G9}+${H9}
情景二
校验规则:行01=行02+行03+行04
解读:第1行=第2行+第3行+第4行 解决方法 : 先设置自动计算然后设置校验 自动计算:jlcase(J9[C9==01][],J9[+1][]+J9[+2][]+J9[+3][]) 校验:jlcase(J9[C9==01][],if(J9[][]==J9[+1][]+J9[+2][]+J9[+3][],true,false))
情景三
校验规则:行06=行07+行08+行09 解读:第6行=第7行+第8行+第9行 解决方法 : 由于行为扩展行,扩展行中不同的行 有不同的计算规则,利用jlcase()函数支持多组运算的功能 ,实现方法如下: 自动计算:jlcase(J9[C9==01][],J9[+1][]+J9[+2][]+J9[+3][];J9[C9==06][],J9[+1][]+J9[+2][]+J9[+3][]) 校验:jlcase(J9[C9==06][],if(J9[][]==J9[+1][]+J9[+2][]+J9[+3][],true,false))
情景四
校验规则:行02>=07 解读:第2行>=第7行 解决方法 : 校验:jlcase(J9[C9==02][],if(J9[][]>=J9[+5][],true,false))
以上内容对您是否有帮助?