反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

JS实现填报数据逻辑删除

  • 文档创建者:flyingsnake
  • 历史版本:15
  • 最近更新:星踪 于 2021-04-26
  • 1. 概述

    1.1 版本

    报表服务器版本
    10.0

    1.2 问题描述

    用户有时需要实现数据备份留底且数据不能在业务界面展现的效果,该如何操作呢?

    1.3 解决思路

    • 使用逻辑删除来解决。即在数据库表中增加一列「状态」,通过更改这个状态列的值,控制数据的可见与不可见。

    • 过滤展现数据。即使用「状态」字段的值约束数据是否显示,例如,原始查询语句为:select * from CUSTOMER ,状态约束后的查询语句为:select * from CUSTOMER  where 状态="1"

    2. 示例

    以 FRDemo 中的 CUSTOMER 表为例,由于表中没有「状态」字段,使用district字段作为「标记」。

    district 字段中的值为 1 时,为正常数据;当 district 字段中的值为 0 时,为删除的数据。

    2.1 数据准备

    新建普通报表,新建数据库查询 ds1,SQL 查询语句为:select * from CUSTOMER

    2.2 表样设计

    将 ds1 中的数据列拖入到模板中,为表格设置边框、文本居中对齐、F 列文本设置颜色为红色,表格样式如下图所示:

    2020-09-27_16-36-45.png

    2.3 添加按钮控件

    为 G2、H2 单元格添加「按钮控件」,按钮名字分别为「删除」和「取消删除」。步骤如下图所示:

    1611735679978801.png


    2.4 添加点击事件

    1)选中 G2 单元格,点击右侧「控件设置>事件」,添加点击事件。点击事件中增加参数 row 和参数 col ,值用公式表示分别为:row() - 1 col() - 2。输入 JavaScript 代码如下:

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

    步骤如下图所示:

    1611736038100979.png

    2)选中 H2 单元格,点击右侧「控件设置>事件」,添加点击事件。点击事件中增加参数 row 和参数 col ,值用公式表示分别为:row() - 1 和col() - 3。输入 JavaScript 代码如下:

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

    如下图所示:

    1611736148431101.png

    2.5 报表填报属性设置

    点击菜单栏「模板>报表填报属性」,添加一个「内置 SQL 提交」,选择数据库 FRDemo 中的「CUSTOMER」表,添加「CUSTOMERID」和「DISTRICT」两个字段及对应的单元格。如下图所示:

    注:报表填报属性设置步骤请参考报表填报属性 
    1601197306234498.png

    2.6 形态设置

    选中 F2 单元格,点击「单元格属性>形态」,选择「公式形态」,输入公式:if($$$="1","正常","已经删除"),表示如果当前单元格值为 1,显示为「正常」,否则显示为「已经删除」。

    Snag_4d9ddf.png

    2.7 效果预览

    2.7.1 PC 端

    保存模板,点击「填报预览」,效果如下图所示:

    1583726166714943.gif

    2.7.2 移动端

    App 端和 HTML5 端均支持,效果如下图所示:

    1583726986101794.gif

    3. 模板下载

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\JS实现数据逻辑删除.cpt

    点击下载模板:JS实现数据逻辑删除.cpt

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526