1. 概述
1.1 预期效果
普通报表选择「分页预览」或「填报预览」时,由于报表没有分页,通常页面较大。
有时用户需要报表在页面加载后,自动滚动到浏览器最下方或最右侧,方便查看或填报最新的数据。如下图所示:
1.2 实现思路
通过添加「加载结束」事件报表初始化时调整滚动条的位置实现此效果。
1.3 注意事项
1)该方案仅支持普通报表。
2)该方案不支持冻结行列,否则方案失效。
3)该方案不支持使用自定义滚动条插件,否则方案失效。
2. 示例
2.1 准备模板
1)准备内置模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\点击按钮直接提交入库.cpt。
点击可下载模板:点击按钮直接提交入库.cpt
打开模板,模板样式如下图所示:
2)修改数据集 ds1 为:SELECT * FROM 产品
2.2 添加加载结束事件
点击「模板>模板 Web 属性>填报页面设置」,选择「为该模板单独设置」,添加「加载结束事件」,如下图所示:
JavaScript 代码如下:
setTimeout(function(){
var y=contentPane.$contentPane[0].scrollHeight;//获取页面最大高度
var x=contentPane.$contentPane[0].scrollWidth;//获取页面最大宽度
contentPane.$contentPane.scrollLeft(x);//设置滚动条最左方位置
contentPane.$contentPane.scrollTop(y);//设置滚动条最上方位置
},100)
注1:在页面加载结束时,可能存在尚未设置完成的情况,使用 setTimeout() 延时函数,兼容性更好。
注2:不支持多 sheet 报表。
2.3 效果预览
保存模板,点击「填报预览」,PC 端预览效果如下图所示:
注1:如果桌面分辨率较高,有时会看不到效果,可以缩小浏览器窗口,刷新页面再查看效果。
注2:不支持移动端。