我们要校验A的填报是否有重复
第一步:在D2输入公式:
if( isnull(A2), "", let( arr, [A2[!0]], v, A2, inarray(v, greparray(arr, let(vv, item, count(greparray(arr, item = vv))) > 1)) ) = 0 )
基本思路就是先获取A2中所有重复的数据,然后判断当前行中的A2值是否在重复数据中。
第二部:在 报表填报属性 -> 数据校验中 添加一个 内置校验,校验公式输入if(isnull(A2), true, D2 = 'true')
,提示输入“数据重复”。
例子中是校验一个单元格,如果想要校验多个单元格,可以加一个新单元格,内容用公式把多个单元格内容相加,再用上面的方法校验新单元格。
此方法只能校验当前页面中是否有重复数据,如果想要校验填报内容是否在数据库中有重复,可以事先在一个单元格内保存一个获取数据库中相同数据的公式:比如在E2中加入公式,ds1.find(产品ID, 产品ID, A2),然后在内置校验中做判断E2的值。
另,如果想要让校验提示信息出现的某个单元格上,可以把单元格加入到校验公式的前面。比如:if(isnull(A2), E2="false", E2="false")
,这样提示就出现在A2上。