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

编辑
  • 文档创建者:文档助手1
  • 浏览次数:18016次
  • 编辑次数:21次
  • 最近更新:ukae 于 2018-08-13
  • 1. 描述

    有的时候我们不想刷新整个决策报表决策报表定时刷新JS,而只想刷新报表里的报表块。
    报表里的报表块如何实现局部刷新?
    同时报表里的报表块如何实现跳转到指定页?

    2. 思路

    通过js来实现局部刷新和跳转到指定页。
    this.options.form.getWidgetByName("repotname").gotoPage(pn, para, noCache)
    参数  类型   说明 
      pn  Number  页序号,序号从1开始
      para  JSON  选填,跳转报表块页面时携带的参数
      noCache  Boolean  选填,true时跳转报表块不使用缓存,强制取新的数据
    this.options.form.getWidgetByName("report0").gotoPage(2,"{month:12, name:'FR'}",true);
    可以通过这段js实现。其中“report0",就是报表块的名称,这里指跳转到第2页,并传递参数$month的值为12,$name的值为FR,并且不使用缓存。

    3. 操作步骤

    3.1 模板设计
    1)新建决策报表,拖入两个按钮button0、button1,拖入两个报表块report0、report1
    2)报表块report1设计如下:
    3)在B5、B10、B15单元格设置行后分页,如下图所示:

    4)报表块report1设计如下:

    3.2 报表块翻页
    button0按钮添加点击事件

    JS代码如下:
    this.options.form.getWidgetByName("report0").gotoPage(2,"{month:12, name:'FR'}",true); //报表块翻页并传递month、name两个参数
    点击button0按钮后,report0报表块跳转到第2页;并且报表中通过公式获取参数$month,$name可以正常获取到参数值。
    3.3 报表块局部刷新
    button1按钮添加点击事件

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

    点击button1按钮后,report1报表块一秒刷新一次;

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

    已完成模板 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\mobile-client\报表块局部刷新或翻页.frm

    4. 预览效果

    4.1 PC端预览效果

    4.2 移动端预览效果 

    1)APP预览效果


    2)H5预览效果


    5. 已完成模板

    模板效果在线查看请点击:JS实现决策报表内报表块局部刷新或翻页.frm

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



    附件列表


    主题: 二次开发
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]