反馈已提交

网络繁忙

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

JS实现决策报表内报表块刷新/翻页

  • 文档创建者:文档助手1
  • 历史版本:33
  • 最近更新:Carly 于 2022-11-28
  • 1. 概述

    1.1 问题描述

    有的时候我们不想刷新整个决策报表 决策报表定时刷新 JS,而只想刷新报表里的报表块。

    报表里的报表块如何实现局部刷新?报表里的报表块又如何实现跳转到指定页?

    如下图所示:

    1)点击 button0 按钮,报表块跳转到第 2 页,并且报表中通过公式 $month、$name正常获取到了参数值

    2)点击 button1 按钮,报表块每秒刷新一次

    222

    1.2 解决思路

    通过 JS 来实现局部刷新和跳转到指定页。

    this.options.form.getWidgetByName("repotname").gotoPage(pn, para, noCache)
    参数
    说明
    pn页序号,序号从 1 开始
    para

    选填

    跳转报表块页面时携带的参数

    noCache

    选填

    1)不写

    • 说明:报表块刷新的数据从缓存里面取,不重新计算

    • 示例:gotoPage(2,"{month:12, name:'FR'}")

    2)true

    • 说明:报表块刷新的数据不使用缓存,重新计算所有报表块

    • 示例:gotoPage(2,"{month:12, name:'FR'}",true)

    3)"lazy"

    • 说明:报表块刷新的数据不使用缓存,重新计算单个报表块

    • 示例:gotoPage(2,"{month:12, name:'FR'}","lazy")

    注:若模板内容非常多,模板计算量大,不推荐使用true,会导致工程计算量激增。如需重新获取数据,推荐使用lazy。

    例如:

    this.options.form.getWidgetByName("report0").gotoPage(2,"{month:12, name:'FR'}",true);

    可以通过这段 JS 实现。其中report0就是报表块的名称,这里指跳转到第 2 页,并传递参数 $month 的值为12,$name 的值为 FR,并且不使用缓存。

    2. 示例

    2.1 模板设计

    新建决策报表,拖入两个按钮 button0、button1,拖入两个报表块 report0、report1

    2.1.1 report0 设计

    1)报表块 report0 设计如下:

    222

    2)选择 B5、B10、B15 单元格,点击单元格属性>其他,设置行后分页,如下图所示:

    1570612380567260.png

    2.1.2 report1 设计

    编辑报表块 report1 ,对A1单元格添加公式=now(),如下图所示:

    222

    2.2 报表块翻页

    选中 button0 按钮,点击控件设置>事件,添加点击事件,如下图所示:

    1570612986799841.png

    JS 代码如下:

    this.options.form.getWidgetByName("report0").gotoPage(2, "{month:12, name:'FR'}", true); //报表块翻页并传递month、name两个参数

    保存模板,点击 button0 按钮后,report0 报表块跳转到第 2 页,并且报表中通过公式获取参数 $month,$name 可以正常获取到参数值。

    2.3 报表块局部刷新

    选中 button1 按钮,点击控件设置>事件,添加点击事件,如下图所示:

    1570613307679888.png

    JS 代码如下:

    var form = this.options.form;
    setInterval(function() { 
         form.getWidgetByName('report1').gotoPage(1,"{}",true);
    }, 1000); //刷新报表块report1

    保存模板,点击 button1 按钮后,report1 报表块一秒刷新一次

    注:此方案移动端同样适用,移动端如何添加模板请查看添加服务器报表查看

    2.4 效果预览

    2.4.1 PC 端

    222

    2.4.2 移动端

    1587881356708497.gif

    分页页码显示,需点击右上角组件放大图标,放大组件后,在底部可见。

    4a3231adf4889e924ee6cbe9fbaf3e35.jpg

    3. 模板下载

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\18-JS实现决策报表内报表块局部刷新或翻页.frm

    点击下载模板:18-JS实现决策报表内报表块局部刷新或翻页.frm

    附件列表


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

    售前咨询电话

    400-811-8890转1

    在线技术支持

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

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

    总裁办24H投诉

    热线电话:173-1278-1526