历史版本3 :填报插入数据时自动生成流水号 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

填报在插入数据的时候,希望能根据当前日期自动生成一个流水号,例如ABC202108050001,要如何实现呢?

1.2 解决方案

在填报属性处利用公式拼接即可,整个流水号分为三部分:

固定字符串:ABC,直接写即可。

当前日期:20210805,可以使用公式format(today(), "yyyyMMdd")获取。

自增序号:0001,可以利用sql函数,查询出数据库中当前日期下最大的流水号,并加1。

注:由于填报属性中的函数计算是统一在提交动作之前的,所以无法实现批量插入多行数据的功能,只能每次插入1条。


2. 示例编辑

2.1 设计模板

制作如图所示模板:

2.2 设置填报属性

如图所示设置填报属性:

id列绑定的公式为:CONCATENATE("ABC", format(today(), "yyyyMMdd"), format(sql("sqlserver", "SELECT max(right(id,4)*1) maxid FROM [dbo].[流水号] where SUBSTRING(id,4,8)=CONVERT(varchar(100), GETDATE(), 112)", 1, 1) * 1 + 1, "0000"))

该公式中的sql函数作用为取出数据表中id列中的日期等于当前日期的数据,并截取出最后四位转为数字。具体sql写法需要根据实际数据库类型和需求进行修改。

2.3 效果预览

1.gif



3. 模板下载编辑