校验公式里能用like()吗?

如果数据库中存在和填报的内容连续两个字或三个字或四个字相同的内容,则不能提交,怎么写校验公式?

我想做到的是:
数据库中有两百个房企名称,在我新增房企的时候要把新增的房企名称和数据库中的比对,如果有重复内容(比如:已经有苏宁环球,则不能录入苏宁置业,已经有恒大集团,则不能录入中国恒大)
数据库名为:ZNDC_DC,录入房企名称的单元格为C5,房企名称字段名为:etpname_str数据库表为:dc_etp_city_d
怎么写?

FineReport 孟祥运 发布于 2019-2-18 14:03 (编辑于 2019-2-18 14:36)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
6
星痕Lv6高级互助
发布于2019-2-18 14:06(编辑于 2019-2-18 14:08)

FR中有个函数叫做 find()

FIND(find_text,within_text,start_num):从指定的索引(start_num)处开始,返回第一次出现的指定子字符串(find_text)在此字符串(within_text)中的索引。
Find_text:需要查找的文本或包含文本的单元格引用。
Within_text:包含需要查找文本的文本或单元格引用。
Start_num:指定进行查找字符的索引位置。within_text里的索引从1开始。如果省略start_num,则假设值为1。
备注:
    如果find_text不在within_text中,FIND函数返回值为0。
    如果start_num不大于0,FIND函数返回错误信息*VALUE!。
    如果start_num大于within_text的长度,FIND函数返回值为0。
    如果find_text是空白文本,FIND函数将在搜索串中匹配第一个字符(即编号为start_num或1的字符)。
示例:
FIND("I","Information")等于1。
FIND("i","Information")等于9。
FIND("o","Information",2)等于4。
FIND("o","Information",12)等于0。
FIND("o","Information",-1)等于*VALUE!。


参考“

如果find_text不在within_text中,FIND函数返回值为0。


可判定,如果用find查询某几个字符在某个字符串中的索引位置,如果结果为0即为不存在,因为没找到。如果不为0就表示存在

  • flyingsnake flyingsnake 下手真快
    2019-02-18 14:06 
  • 星痕 星痕 回复 flyingsnake 一般一般
    2019-02-18 14:08 
  • 孟祥运 孟祥运(提问者) 我想做到的是: 数据库中有两百个房企名称,在我新增房企的时候要把新增的房企名称和数据库中的比对,如果有重复内容(比如:已经有苏宁环球,则不能录入苏宁置业,已经有恒大集团,则不能录入中国恒大) 数据库名为:ZNDC_DC,录入房企名称的单元格为C5,房企名称字段名为:etpname_str数据库表为:dc_etp_city_d 怎么写?
    2019-02-18 14:36 
  • 星痕 星痕 回复 孟祥运(提问者) 。。。你这个要求有些夸张了,那得独立分割每一个字了?来判定汉字是否已经存在了?要不然 系统咋知道你到底是要判断三个字相同 ?还是两个字?四个字?或者是前两位?中间两位?还是最后两位相同?逻辑不够清晰,没说清楚,系统就没办法做
    2019-02-18 14:57 
  • 孟祥运 孟祥运(提问者) 回复 星痕 len(sql(\"ZNDC_DC\",\"select etpname_str from dc_etp_city_d where etpname_str like \'%\'\" + C5 + \"\'%\'\",1,1))<=0 那你能看看这个哪错了吗? 有一个房企名叫和昌地产,这个公式只要实现输入和昌地产就不能提交,但现在这个函数=0时输入后可以提交,<>0时,输入任何东西都不能提交,帮忙改一下.
    2019-02-18 15:06 
最佳回答
0
ycming7474Lv2初级互助
发布于2019-2-18 14:06(编辑于 2019-2-18 14:11)

可以的。

B4 = sql("qyxxpt", "SELECT * FROM sys_dict where type like'%物流%' and VALUE = '" + B4 + "'", 2, 1)

image.png

  • 孟祥运 孟祥运(提问者) 我想做到的是: 数据库中有两百个房企名称,在我新增房企的时候要把新增的房企名称和数据库中的比对,如果有重复内容(比如:已经有苏宁环球,则不能录入苏宁置业,已经有恒大集团,则不能录入中国恒大) 数据库名为:ZNDC_DC,录入房企名称的单元格为C5,房企名称字段名为:etpname_str数据库表为:dc_etp_city_d 怎么写?
    2019-02-18 14:36 
  • ycming7474 ycming7474 回复 孟祥运(提问者) len(SQL(\"ZNDC_DC\", \"select etpname_str from dc_etp_city_d where etpname_str=\'\" + C5 + \"\' a, 1, 1)) <= 0
    2019-02-18 14:44 
  • 孟祥运 孟祥运(提问者) 回复 ycming7474 你这个是完全相同的名字不能提交,和我想要的不一样
    2019-02-18 14:54 
  • ycming7474 ycming7474 回复 孟祥运(提问者) 那就改成like啊 like‘%具体的文字%’跟sql写法一样。
    2019-02-18 15:03 
  • 孟祥运 孟祥运(提问者) 回复 ycming7474 len(sql(\"ZNDC_DC\",\"select etpname_str from dc_etp_city_d where etpname_str like \'% \'\" + C5 + \"\' %\' \",1,1))=0 我写的是这样的,不对
    2019-02-18 15:12 
  • 3关注人数
  • 860浏览人数
  • 最后回答于:2019-2-18 14:36
    请选择关闭问题的原因
    确定 取消
    返回顶部