问题

在用finereport做企业web报表时遇到了一个问题,数据填报后无法修改,finereport只提供了填报功能而没有提供修改功能,难道填报数据出错每次都从数据库中删除出错数据吗?这显然不符合规矩

实现数据替换

可不可以在填报是实现对原有数据的更改呢?这样业务人员可以在出错后通过二次填报来替换出错数据。
本来想设置触发器来实现数据的替换,然而在软件上我发现了更为简单的方法,在模板填报属性里我们可是设置主键
例如这张表我主键为组织机构、年份、月份,这样填报时当业务人员选择这三个数据相同时,提交会覆盖原有数据,这样便可实现简易的修改功能。

重复填报提示

前面实现了数据的替换,但业务人员下次填报时可能忘记之前的填报数据,或者选择出错而导致正确的数据被覆盖,如何在填报时提示业务人员提交的数据中含有重复填报的数据,让其选择是否覆盖提交?

一、数据库数据获取

要检查是否有重复数据,当然需要获取数据库原有数据,可在finereport新建数据查询来获取数据库中已有的数据。
我们只需要比较确认该数据唯一性的属性就好了,这里我们需要用到多字段拼接,orcel的字段拼接SQL语句为为

select "组织机构"||"年份"||"月份" as AA from 利润指标情况表

我们拼接组织机构、年份、月份这个联合主键

二、获取填报字段

插入公式CONCATENATE(),该公式用于将多个单元格内容拼接在一起

CONCATENATE(A4, B4,C4)
//A4,B4,C4分别对应填报表中组织机构、年份、月份的单元格

三、校验

第三步将数据库中获取的数据与从填报端获取的数据对比,如果相同则表示填报存在重复的数据,使用公式INARRAY()可以实现

公式表示将I4单元格与获取字段aa对比,存在相同则提示0
官方文档提供的公式在数据库为空时会获取空值,这时该公式会报错,建议使用find()函数避免此类错误。

四、JS交互

通过JS代码来实现业务人员选择是否将该数据提交
在模板web属性中添加事件,设置为校验后

JS代码:

if (fr_verifyinfo.success) {alert("校验成功");
} else {if (fr_verifyinfo.info == "I4:0") {FR.Msg.confirm("警告", "数据重复填报,确认要提交吗?", function(result) {if (result) {_g().writeReport();//强制提交location.reload();//刷新页面} })return false;}}

效果演示
选择确定便会提交数据,取消不做操作

参考文档:finereport官方帮助文档

finereport实现数据替换和重复填报提示相关推荐

  1. Python 数据分析三剑客之 Pandas(八):数据重塑、重复数据处理与数据替换

    CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...

  2. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...

  3. Excel 中如何找出两列数据中不重复的记录

    现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录.现在和大家分享一下这个方法. 我们先用一个简单的例子看一下.现在有两列数据,可以是分别在不同的数据单(sh ...

  4. 爬虫 spider09——爬取指定数据,去重复,并存储到mysql

    爬取指定数据,去重复,并存储到mysql. 技术栈:Springboot+ssm+定时(定时器)爬取+redis去重+mybatis保存 一.创建父项目Spider pom.xml <?xml ...

  5. cdatabase读取excel第一行数据_pandas读取excel数据并对重复数据进行标记或者删除

    pandas读取excel数据并对重复数据进行标记或者删除​mp.weixin.qq.com pandas通常在读取excel数据之后,如果需要进行去重,有两种方式,一种是进行标记,另一种是在pand ...

  6. Java输出PPT文件(二) - 占位符数据替换

    Java输出PPT文件(二) - 占位符数据替换 文章目录 Java输出PPT文件(二) - 占位符数据替换 0. 前言 1. 依赖 2. 代码 3. 测试 3.1 模板准备 3.2 替换结果 4. ...

  7. Python 实现excel 分类汇总、批量数据替换

    目录 需求分析 批量数据替换 根据产品型号进行分类汇总 根据编码进行分类汇总 最近在公司又收到了一个操作excel的项目(我们称为改善项目)特此记录下来,希望对你也有用 需求分析 1.将之前的部分产品 ...

  8. 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...

  9. Py之pandas:利用where、replace等函数对dataframe格式数据按照条件进行数据替换

    Py之pandas:利用where.replace等函数对dataframe格式数据按照条件进行数据替换 目录 利用where.replace等函数对dataframe格式数据按照条件进行数据替换 利 ...

最新文章

  1. 常见面试题学习(1)
  2. python3 模板库 好用_Python3的string库模板的应用
  3. sqlserver2005分布式架构负载
  4. python调用远程的python文件_python 实现调用远程接口
  5. Vue项目中Table设置 render 函数
  6. -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
  7. element-ui中表单验证rules
  8. LeetCode 838. 推多米诺(模拟)
  9. SpringCloud Hystrix微服务架构的高并发问题与解决策略
  10. qt mysql dao_Qt 数据库使用方法 mysql语句
  11. 忙了12周,手机摄像头模组测试PCB板终于画出来了。
  12. mysql主从同步破坏测试_mysql主从同步 错误测试(1)
  13. 经典卷积神经网络的学习(一)—— AlexNet
  14. php debug pit,start.php
  15. 架构学习——业务架构图
  16. 给站长推荐几本IT书
  17. Spring MVC - 拦截器实现 和 用户登陆例子
  18. ecplise和lomboz和tomcat配置
  19. android ios 对比 组件_Android、iOS历史版本对比
  20. FPGA + labwindows/CVI 2017 串口通信 电子钟

热门文章

  1. Mb(全称为Mbps)与MB(Mbytes)的区别
  2. 永不停息的阿拉伯数字手势时钟app
  3. 社会财富分配问题模拟(蒙特卡洛思想)
  4. Docker迁移存储目录
  5. FPGA设计开发软件ISE使用技巧之:片上逻辑分析仪(ChipScope Pro)使用技巧
  6. NSD ADMIN DAY01
  7. python 练习题目
  8. caffe 源码分析:Euclidean loss layer
  9. 深度学习论文阅读(四):GoogLeNet《Going Deeper with Convolutions》
  10. 评论:杀毒软件进入网络战国时代