反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

填报插入数据时自动生成流水号

  • 文档创建者:星踪
  • 历史版本:5
  • 最近更新:星踪 于 2021-08-13
  • 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

    支持 App 端和 HTML5 端预览。

    3. 模板下载

    已完成模板参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Form\填报插入数据时自动生成流水号.cpt

    点击下载模板:填报插入数据时自动生成流水号.cpt

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526