数据填报修改时如何增加操作人员信息

简介: 填报 修改人信息 数据填报修改时如何增加操作人员信息

需求描述:
用户在页面端修改数据时为保证数据的可追溯性,可以在数据表中增加修改人字段,用于保存修改人的信息,追溯数据的有效性。下面就介绍一下如何实现这个需求。
解决方案
一:填报表制作
按照用户的需求制作填报表,如“订单信息表”:
1、 新建填报表,新增参数:userid,用于接收系统传进来的用户信息。
2、 在“数据处理”对话框中中把“数据来源”设置为使用“脚本”方式,如图:
1

3、 在“数据处理”对话框中把“数据去向”也设置为使用“脚本”,如图:
2

注意:B2 中 EDITUSER 字段为数据库中的修改人字段,将其赋值为 userid,表示更新时将参数 userid 的值保存到对应字段中。
4、 制作填报表,如下图:
3

A3 设置单元格类型为维度格,表达式为 =dd.(DDID),dd 为数据来源中定义的数据对象名称,此单元格取表中 DDID 的值,字段名称中设置 dd.DDID。
B3~E3 单元格类型设置成数值格,用于填写信息,按照填报表取字段名称规则,B3 单元格默认取其上方单元格为字段名称,由于数据库中存储的是英文字段名“KHID”,和 B2 中的“客户编号”不一致,所以为取出正确数据,在 B3 单元格的字段名称中设置“KHID”,指定单元格字段名称,其余类似。
按照客户样式要求调整报表样式,并保存报表即可。
5、 发布报表并设置参数传递
在浏览器中访问该报表,并且在 url 中将用户编号传递给参数 userid,如:http://localhost:6868/demo/reportJsp/showInput.jsp?sht=ddxx.sht&userid=zhangsan
参数可以在 url 中传递,为保证其安全性,用户信息可能存在 session 中,那么在 showInput.jsp 中获取 session 中的用户信息,并传递给报表标签的 params 标签即可,传递格式:参数名称 = 参数值。
报表展现后,格式如下:
4

页面端修改数据保存后,去数据库端查看数据发现,EDITUSER 字段数据为传入的用户信息,如下图:
5

发现问题
实际使用中发现,用户可能只修改了某几条记录,但是数据库中的 EDITUSER 字段的所有数据都会发生变化,而用户需求肯定是只更改该用户修改的数据。
问题原因及解决办法:
前面更新数据采用的是集算脚本中的 update 函数,该函数处理时会根据新旧对象数据进行判断,从而判定处理时是 update、insert 还是 delete 操作。因此解决办法就是在新旧对象中删除没有修改的数据即可,下面是更改后的数据去向脚本:
6

B1 中通过 join 函数将两个对象关联在一起,此时关联字段是对象中的所有字段,这样可以找到没有修改的数据。
C1 中取出两个对象中所有数据相同 (没有修改的) 的主键字段
A2、B2 中分别从两个对象中根据 C1 的值过滤出没有修改的数据
A3、B3 删除没有修改的数据,这样两个对象中的数据均为用户页面端修改后的数据,再执行 update 操作即可。数据库中数据如下:
7

可见,只有页面端修改的数据 EDITUSER 字段的值会发生变化,其余不变,这样就可以定位到具体哪些数据被哪些人做了修改。
总结:
本例中通过在脚本中对填报对象的数据进行修改,做到了在相应数据表中更新最后修改人字段,并且能精确到他修改的数据。实际应用中也可以增加最后修改时间等,或者在脚本中做更复杂的业务处理。

作者:gxy
链接:http://c.raqsoft.com.cn/article/1540825011256?r=IBelieve
来源:乾学院
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
2月前
Dataphin功能Tips系列(5)-手工表上传及长期维护
有些业务数据是手工excel维护的,这时我们要如何将数据上传至dataphin并进行维护?
|
5月前
【PM专用】快速统计团队还有谁没有登记上报信息,快速筛选出属于自己项目组的成员,未完成XXX工作事项的名单
【PM专用】快速统计团队还有谁没有登记上报信息,快速筛选出属于自己项目组的成员,未完成XXX工作事项的名单
|
9月前
|
SQL Java 关系型数据库
从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。 他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。
|
10月前
|
SQL 安全 关系型数据库
案例07-在线人员列表逻辑混乱
在线人员列表逻辑混乱
|
11月前
|
前端开发 JavaScript 数据管理
|
XML Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
95 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)
|
JavaScript Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(三)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
164 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(三)
|
Java 网络安全
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)
为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。
138 0
纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)
SAP PM入门系列3 - 设备主数据里无‘检验类型‘栏位,那何处定义维护订单可以触发检验批?
SAP PM入门系列3 - 设备主数据里无‘检验类型‘栏位,那何处定义维护订单可以触发检验批?
149 0
SAP PM入门系列3 - 设备主数据里无‘检验类型‘栏位,那何处定义维护订单可以触发检验批?
|
Oracle 关系型数据库 Shell
[自制工具]批量后台更新统计信息
Oracle数据库有时需要批量收集数据库的统计信息,如在大量数据迁移或大量数据更新以后,但是收集的时间可能会较长,为了避免网络中断等意外情况可能引起的麻烦,今天调试了这个小脚本,可以分用户批量执行,同时记录执行时间等日志信息,比较实用。
176 0

热门文章

最新文章