数据逻辑删除的实现

编辑
文档创建者:flyingsnake (65172 )     浏览次数:2272次     编辑次数:4次     最近更新:susie 于 2017-03-03     

目录:

1. 描述编辑

我们经常会碰到,数据需要备份留底,但是又不能让数据在业务界面展现的时候。

这时,就可以用逻辑删除来解决。

逻辑删除原理很简单。在数据库表中增加一列“状态”,之后通过更改这个状态列的值,控制数据可见与不可见。


222


2. 方案思路编辑

我们用”状态“字段的值,来约束数据是否显示,只需要在查询数据的时候,增加上条件属性

比如,原始查询语句是

SELECT * FROM CUSTOMER 

用状态约束后的查询语句则为:

SELECT * FROM CUSTOMER  where 标记=”1“

这样一来,数据集的展现结果就过滤掉了所有”标记“为0的数据。而数据依然在数据库中存在,进而实现逻辑删除。


3. 示例编辑

我们用FRDemo中的CUSTOMER表做演示

因为表中没有状态字段。我们使用“distinct”字段来作为“标记”。当distinct字段中的值为1时,认为是正常数据;当distinct字段中的值为0时,认为是删除的数据。

3.1 模板设计

添加数据集ds1:SQL语句为SELECT * FROM CUSTOMER

将字段拖拽到单元格中,如下图:

222

3.2 增加删除/取消删除按钮

添加两个按钮控件,按钮名称分别为删除按钮和取消删除按钮,如下图:

222

(1)给删除按钮添加点击事件,参数中新增col和row,具体设置如下图:

222

js代码如下:

FR.Msg.confirm("提示","确定要删除数据吗?",function(value){ if(value){ contentPane.setCellValue(col,row,"0"); _g('${sessionID}').writeReport(); } else{ contentPane.setCellValue(col,row,"1"); _g().parameterCommit(); } })

(2)给取消删除按钮添加点击事件,参数中新增col和row,具体设置如下图:


222
js代码如下:

var v1=contentPane.getCellValue(0,col,row); FR.Msg.confirm("提示","确定要取消删除数据吗?",function(value){ if(value){ contentPane.setCellValue(col,row,"1"); _g('${sessionID}').writeReport(); } else{ contentPane.setCellValue(col,row,"0"); _g('${sessionID}').writeReport(); _g().parameterCommit(); } }) contentPane.setCellValue(col,row,"China");  

3.3 填报设置

对状态列进行更新,点击模板>报表填报属性,进行填报设置如下图:

222

3.4 设置形态

为了让页面看起来更直观些。把状态列的值进行形态转换,显示为“正常”和“已经删除”。

数据形态的公式为if($$$="1","正常","已经删除"),如下图:

222


3.5 保存和预览

进行填报预览,效果即如上所示

附件列表


主题: 填报应用
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: