找回密码
 立即注册

QQ登录

只需一步,快速开始

Freya.Li
中级会员   /  发表于:2022-1-6 16:54  /   查看:2026  /  回复:0
本帖最后由 Freya.Li 于 2022-1-6 17:12 编辑

有同学在做需求的时候遇到了如下的情况,如果数据表中存在了身份证号,再次新增时,如果是同样的身份证号,能够直接在页面提示该身份证号已存在,而不是保存到数据库时再做提示。

思路一:直接给文本框勾选值唯一
image.png811081847.png

效果如下:
image.png388561400.png

思路一的提示语句不能做更改,如需修改提示语句,可用思路二

思路二:通过Odata+数据验证实现
odata还不清楚的同学,可以先看看这里:https://help.grapecity.com.cn/pa ... ion?pageId=56528383

1.利用Odata的查询行数,去数据库中查找身份证号为当前文本框的记录数,如果查出来的值大于0就表示该记录已存在
image.png388923949.png

image.png411039428.png

复制生成的Odata公式,在数据校验中使用
image.png952596740.png
2.数据验证文档:https://help.grapecity.com.cn/pa ... ion?pageId=56527600

image.png47825926.png

在数据校验中使用自定义,
公式:IF(ODATA("表1/$count?$filter=身份证号 eq "&IF(ISBLANK(O6),"null","'"&O6&"'"))>0,FALSE,TRUE)
如果大于0表示校验未通过
image.png766035156.png

提示信息:
image.png904498596.png

效果:
image.png655729674.png

思路二的问题是:数据校验只能用一种,如果既希望用身份证校验,又要唯一校验,又要改变唯一的提示语句,就需要使用思路三


思路三:给文本框绑定命令实现


文本框在失去焦点的时候,会触发命令
1.通过设置变量命令,查询数据库中该身份证号的记录数
设置变量命令文档参见:https://help.grapecity.com.cn/pa ... ion?pageId=63112417
2.通过条件判断
如果大于0,使用设置单元格属性命令,设置页面上的某一单元格的值为提示语句
如果小于0,设置为空


设置单元格属性命令文档参见:https://help.grapecity.com.cn/pa ... ion?pageId=56527430
image.png154354857.png

实现效果
image.png725822448.png


工程见附件:
前端唯一校验.fgcc (89.97 KB, 下载次数: 83)

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部