历史版本2 :JS实现填报数据逻辑删除 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

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

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

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


222

2. 方案思路编辑

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

比如,原始查询语句是

SELECT * FROM CUSTOMER 

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

SELECT * FROM CUSTOMER  where 状态=”正常“

这样一来,数据集的展现结果就过滤掉了所有”状态“不是正常的数据。而数据依然在数据库中存在,进而实现逻辑删除。


3. 示例编辑

我们用FRDemo中的CUSTOMER表做演示

因为表中没有状态字段。我们使用“COUNTR”字段来作为“状态”。当country字段中的值为China时,认为是正常数据;其他值时,认为是删除的数据。

3.1 建立cpt

(1)我们先建立数据集
222

(2)我们把所有字段都拖到表格中


222

(3)预览下:


222

3.2 增加功能按钮

我们以黄色部分为代表。做判断是否被逻辑删除使用。加上按钮的样子:


222

两个按钮中,各自需要些的js脚本如下:

(1)删除按钮的内容
222

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

(2)取消删除的按钮内容

222

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


3.4 填报设置

填报很简单。只要对应id值,把状态列进行修改就可以了
222


3.5 转换下数据显示的形态

为了让页面看起来更直观些。我把country的值做了数据形态控制,显示为“正常”和“已经删除”。

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


222


3.6 效果演示


222

剩下的,比如按钮条件显示隐藏之类的。就不多说了。有需要的可以留言,我再来补上。