@wzh5788 您好 在学习finereport,看到您发的关于自动编号的帖子,我根据我的数据进行了修改。但是运行提示参数错误。我需要做的是查询数据连接名为“MySQL”中叫njglyy这个数据库中,全院设备库的这张表,在录入新设备时自动编号。编号前缀时ZL-ZCKP+yyyyMMdd+五位编号,这五位编号是自动生成的。
我在您发的编码基础上进行了修改,具体代码如下:
if(len(sql("mysql","select max(t.设备编码) 设备编码 from 全院设备库 t where t.设备编码 like 'ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"%'",1,1))==0,"ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"00001",CONCATENATE(left(sql("mysql","select max(t.设备编码) 设备编码 from 全院设备库 t where t.设备编码 like ' ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"%'",1,1),15),format(RIGHT(sql("mysql","select max(t.设备编码) 设备编码 from 全院设备库 t where t.设备编码 like 'ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"%'",1,1),5)+1),"00000"))
运行时提示错误的公示参数,我是一个初学者,对SQL不是太了解,看了半天没有发现问题出在哪,所以这里想请求您有空时帮我看看我的代码哪里出现了问题。谢谢您了
编辑于 2019-7-9 22:04
编辑于 2019-7-9 22:05
编辑于 2019-7-9 22:35
找到了问题 是括号的位置问题,最后应该是:
if(len(sql("mysql","select max(t.设备编码) 设备编码 from 全院设备库 t where t.设备编码 like 'ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"%'",1,1))==0,"ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"00001",CONCATENATE(left(sql("mysql","select max(t.设备编码) 设备编码 from 全院设备库 t where t.设备编码 like ' ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"%'",1,1),15),format(RIGHT(sql("mysql","select max(t.设备编码) 设备编码 from 全院设备库 t where t.设备编码 like 'ZL-ZCKP"+FORMAT(TODAY(),"yyyyMMdd")+"%'",1,1),5)+1,"00000")))
编辑于 2019-7-9 23:02
|