JS实现分析/填报报表加载后自动滚动到最下方/最右侧

  • 文档创建者:yets11
  • 编辑次数:12次
  • 最近更新:Carly 于 2020-01-13
  • 1. 概述

    1.1 预期效果

    分析/填报页面做出的报表由于没有分页,通常页面较大。

    有时用户需要报表在页面加载后,自动滚动到浏览器最下方或最右侧,方便查看或填报最新的数据。如下图所示:

    1578895045775238.png

    1.2 实现思路

    可通过添加加载结束事件实现此效果。

    2. 示例一:未设置冻结的报表

    2.1 打开模板

    打开模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\插入删除行重新编号.cpt

    2.2 添加加载结束事件

    点击模板>模板 Web 属性>填报页面设置,选择为该模板单独设置,添加加载结束事件,如下图所示:

    1578895220903371.png

    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 报表中,用户可能需要不同 sheet 的控件滚动条在不同的位置。比如在切换sheet后,需要滚动条固定在最上方,可以直接在切换 sheet 事件中使用 contentPane.$contentPane.scrollTop(0),恢复默认滚动条位置。切换 sheet的 JS 写法请参考 JS 实现切换 sheet 时隐藏或显示参数面板

    2.3 效果预览

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

    1578895045775238.png

    注1:如果桌面分辨率较高,有时会看不到效果,可以缩小浏览器窗口,刷新页面再查看效果。

    注2:不支持移动端。

    3. 示例二:设置了冻结的报表

    3.1 打开模板

    打开模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\插入删除行重新编号.cpt

    3.2 设置冻结

    点击模板>重复与冻结设置,在填报冻结下,选择冻结第 1 行至第 2 行。如下图所示:

    1578895382830463.png

    3.3 添加加载结束事件

    点击模板>模板 Web 属性>填报页面设置,选择为该模板单独设置,添加加载结束事件,如下图所示:

    1578895639518724.png

    JavaScript 代码如下:

    setTimeout(function(){ 
    var a=$("#frozen-center")[0]; 
    var y=a.scrollHeight;//获取页面最大高度 
    var x=a.scrollWidth;//获取页面最大宽度 
    a.scrollLeft=x; 
    a.scrollTop=y; 
    },100)

    3.4 效果预览

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

    1578895736130259.png

    注1:如果桌面分辨率较高,有时会看不到效果,可以缩小浏览器窗口,刷新页面再查看效果。

    注2:不支持移动端。

    4. 已完成模板

    1)示例一

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\39-JS实现分析或填报报表加载后自动滚动到最下方或最右侧示例一.cpt

    点击下载模板:39-JS实现分析或填报报表加载后自动滚动到最下方或最右侧示例一.cpt

    2)示例二

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\39-JS实现分析或填报报表加载后自动滚动到最下方或最右侧示例二.cpt

    点击下载模板:39-JS实现分析或填报报表加载后自动滚动到最下方或最右侧示例二.cpt

    附件列表


    主题: 二次开发
    • 有帮助
    • 没帮助
    • 只是浏览