历史版本2 :JS实现填报数据逻辑删除 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
我们经常会碰到,数据需要备份留底,但是又不能让数据在业务界面展现的时候。
这时,就可以用逻辑删除来解决。
逻辑删除原理很简单。在数据库表中增加一列“状态”,之后通过更改这个状态列的值,控制数据可见与不可见。
2. 方案思路编辑
我们用”状态“字段的值,来约束数据是否显示,只需要在查询数据的时候,增加上条件属性
比如,原始查询语句是
SELECT * FROM CUSTOMER
用状态约束后的查询语句则为:
SELECT * FROM CUSTOMER where 状态=”正常“
这样一来,数据集的展现结果就过滤掉了所有”状态“不是正常的数据。而数据依然在数据库中存在,进而实现逻辑删除。
3. 示例编辑
我们用FRDemo中的CUSTOMER表做演示
因为表中没有状态字段。我们使用“COUNTR”字段来作为“状态”。当country字段中的值为China时,认为是正常数据;其他值时,认为是删除的数据。
3.1 建立cpt
(1)我们先建立数据集
(2)我们把所有字段都拖到表格中
(3)预览下:
3.2 增加功能按钮
我们以黄色部分为代表。做判断是否被逻辑删除使用。加上按钮的样子:
两个按钮中,各自需要些的js脚本如下:
(1)删除按钮的内容
FR.Msg.confirm("提示","确定要删除数据吗?",function(value){
if(value){
contentPane.setCellValue(col,row,"OTHER");
_g('${sessionID}').writeReport();
}
else{
contentPane.setCellValue(col,row,"China");
_g().parameterCommit();
}
})
(2)取消删除的按钮内容
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值,把状态列进行修改就可以了
3.5 转换下数据显示的形态
为了让页面看起来更直观些。我把country的值做了数据形态控制,显示为“正常”和“已经删除”。
数据形态的公式为:=if($$$="China","正常","已经删除")
3.6 效果演示
剩下的,比如按钮条件显示隐藏之类的。就不多说了。有需要的可以留言,我再来补上。