历史版本23 :JS自定义按钮实现报表块翻页 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
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