起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4287|回复: 7

[结贴] 关于修改数据形成日志记录的设计方式

[复制链接]

767

主题

1914

帖子

3831

积分

论坛元老

Rank: 8Rank: 8

积分
3831
QQ
发表于 2020-4-26 09:41:00 | 显示全部楼层 |阅读模式
我现在有个需求就是如果对表单数据进行了修改,想记录下谁什么时候修改了什么值,原值是多少。可能多次修改,但只要每次修改都要记录下来,一般大家是怎么做的,请求思路模式,平台是否有快捷支持这种的,不是系统的日志哈,就是形成业务修改数据,业务人员能看明白的。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2020-4-26 12:06:50 | 显示全部楼层
具体什么时候存储?修改立刻存储还是保存的时候?

如果是修改存储就在data的onValueChange事件中自己获取当前人,获取旧值去存储

如果是保存的时候存储可以在保存事件中操作
http://bbs.wex5.com/forum.php?mo ... 6&pid=164970552
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

767

主题

1914

帖子

3831

积分

论坛元老

Rank: 8Rank: 8

积分
3831
QQ
 楼主| 发表于 2020-4-27 17:44:04 | 显示全部楼层
jishuang 发表于 2020-4-26 12:06
具体什么时候存储?修改立刻存储还是保存的时候?

如果是修改存储就在data的onValueChange事件中自己获取 ...

嗯 看到了
1.如何获取到该字段的字段备注名,也就是知道哪个字段修改了(中文名称业务人员要能看懂的)。
2.如何每保存一次的话其实会产生很多的过程数据,我想加个按钮当提交的时候才记录这些信息,需要事件写在哪里呢。
3.如果我想监听所有的修改都形成记录,这个监听要监听哪个基础的action,因为每个action都不一样。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2020-4-27 18:11:05 | 显示全部楼层
1.data中提供的有API,label (string col)通过列名获取显示名称
2.自己加按钮就自己在按钮的事件中控制啊
3.自己重写saveAction,saveAction中自己实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

767

主题

1914

帖子

3831

积分

论坛元老

Rank: 8Rank: 8

积分
3831
QQ
 楼主| 发表于 2020-4-28 08:28:15 | 显示全部楼层
本帖最后由 malixin 于 2020-4-28 09:00 编辑
jishuang 发表于 2020-4-27 18:11
1.data中提供的有API,label (string col)通过列名获取显示名称
2.自己加按钮就自己在按钮的事件中控制啊
3. ...

2和3我懂了,1的话还请明示。前台传过来的是table,table里面怎么获取lable标签呢,studio里面的API也没查到data获取lable的方法。

TIM截图20200428090004.jpg

                //获得table参数
                Table table = (Table)ContextHelper.getActionContext().getParameter("table");
                //获得所有修改的行
                Iterator<Row> rows = table.iterator(com.justep.system.data.ModifyState.EDIT );
                Row row;
                Collection<String> list=table.getColumnNames();
                String[] strArray1 = (String[])list.toArray(new String[0]);
                while (rows.hasNext()){
                        row = rows.next();
                        for(int i=0;i<table.getColumnCount();i++){
                                if(row.isModified(strArray1)){
                                        System.out.println(row.getValue(i));
                                        System.out.println(row.getOldValue(strArray1));
                                }
                        }
                }  

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36046
发表于 2020-4-28 09:04:28 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

767

主题

1914

帖子

3831

积分

论坛元老

Rank: 8Rank: 8

积分
3831
QQ
 楼主| 发表于 2020-4-28 10:32:49 | 显示全部楼层
jishuang 发表于 2020-4-28 09:04
http://docs.wex5.com/bex5-server-question-list-10016/

很棒,已解决。
回复 支持 反对

使用道具 举报

767

主题

1914

帖子

3831

积分

论坛元老

Rank: 8Rank: 8

积分
3831
QQ
 楼主| 发表于 2020-4-28 13:17:41 | 显示全部楼层
jishuang 发表于 2020-4-28 09:04
http://docs.wex5.com/bex5-server-question-list-10016/

再追问下,为何弹窗出来的页面写action的执行前事件没反应呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-29 20:35 , Processed in 0.094908 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表