使用UUID实现唯一编号

编辑
  • 文档创建者:文档助手1
  • 浏览次数:9180次
  • 编辑次数:13次
  • 最近更新:Kevin-s 于 2019-06-04
  • 1. 问题描述

    如下图 自由填报例子,每次新增加一个员工信息时,希望员工编号是唯一的,而在BS进行填报时,我们是不知道数据库中已经有哪些编号的,此时如何保证员工编号唯一,不会覆盖已有数据呢?

    FR 可以使用 UUID() 函数来产生唯一标识码,实现员工编号的唯一性。


    2. 实现步骤

    使用 UUID 来生成唯一编号有两种方法,填报属性中使用 UUID 公式和单元格中使用 UUID 公式。

    打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\FreeFrom\自由填报模板.cpt

    2.1 填报属性中使用 UUID

    在菜单中选择模板>报表填报属性,绑定数据库表后,添加我们需要的字段,雇员 ID 的值设为公式=UUID()

    此时模板中可以不需要员工编号相关单元格,即BS填报是不用输入员工编号。



    2.2 单元格中使用 UUID

    或者可以在员工编号单元格中输入公式=UUID(),在报表填报属性中将雇员 ID 的值绑定为该单元格:


    2.3 修改行时不新增数据

    上述方法,填报每提交成功一次 UUID 就会变化,保存多次的情况下,导致新增多条数据,为了避免这种情况,可以修改填报属性,具体如下:

    在菜单中选择模板>报表填报属性,将雇员 ID 的值设为公式=if(isnull(C4),UUID(),C4)

    注:if(isnull(C4),UUID(),C4)表示当 C4 单元格中有值时,就修改该条数据;没有值时,就生成唯一的编号新增一条数据。

    并将 C4 单元格控件改为:下拉框控件,并添加数据字典,如下所示:

    由此:当新增数据时,C4 单元格内容为空,点击提交就会新增一条新数据了;当修改数据时,C4 单元格中选择要修改的编号,输入相应的内容,即可修改该条数据。

    3. 多个内置 SQL 中使用 UUID

    如果该填报表是多源填报类型,比如员工基础信息存在表 1 中,员工部门信息存在表 2 中,表 1 与表  2 有相同的字段员工 ID,填报时这两张表都要保存员工 ID。

    此时必须在单元格中使用 UUID() 生成员工编号,报表填报属性表 1 和表 2 的员工 ID字段绑定同一个单元格。


    若使用上述方法1在报表填报属性中每张报表都使用 UUID() 函数,产生的序列号是不一样的,此时会导致员工 ID 不一致的情况。


    附件列表


    主题: 填报应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]