使用设计报表总有个开始的步骤,编号。帆软有个唯一 uuid 函数 出现的编码:d03df4c0-c238-4ebe-8bea-043f99781f4d 是这样的机器编码。但我一直使用OA设计报表出现单号一般为 字母 日期 编号 这样的组合。我查了一天没有我要的。看到 http://bbs.fanruan.com/thread-94635-1-1.html 这个帖子使用数据库做编号。引发我的一个思路。
用函数CONCATENATE(字母,日期,编号)。
字母:作为一种单据开头,我使用FHD(发货单)为开头。
日期:转位字符串使用FORMAT(now(), "yyMMddHHmmss")。
编号:这种编号为几位数字。增加使用如 001至999。或者为每日初始数据如 8月18日使用到003编号 8月19日初始为001 不增加编号为004,我个人习惯使用循环编号,计算表单使用频率。填满1千个表单需要的时间 除以1000得出使用率。至于一日出现了多少表单一般习惯统计数据库中的日期得出数据。如喜欢每日初始的同学可以再IF判断日期实现。
现在我使用sql("JDBC2", "select MAX(right(SQL列名,3)) from SQL表名",1,1)取得编号最后三位的最大值,然后加1。为防止出现空值(无数据的SQL)使用了限位函数Format,为防止999+1出现的溢出使用right截取3位字符。
最终得出语句
CONCATENATE("FHD","BJDMK", FORMAT(now(), "yyMMddHHmmss"), right(Format(sql("数据库链接名", "select MAX(right(数据库列名,3)) from 数据库表名",1,1)+1,"000"),4))
得出数据样式为:FHD170818152555001
望各位指正交流!!!
|