在企业的业务系统中,如何从纷繁复杂的数据中抽丝剥茧看到关键数据信息呢?一个重要的途径就是将企业和各部门运营中关键的 KPI 集中在一起显示,同时尽量省去在企业的各个业务系统中分别查找数据。

下面是我近期遇到的一个客户实际要求的效果,在一个列表页面中有多个模块,每个模块又可以以多 TAB 页的方式切换不同的报表,并且每个区块都有自己独立的查询过滤条件。在查询条件发生变化的时候,只是该区块刷新,而不需要刷新整个页面。

显然,上面截图的效果,通过硬编码或者通过 iframe 嵌套多张报表也是可以实现这样的数据展现效果,但肯定也需要相当的工作量,而且性能和灵活度较差……那么,有没有更快捷、灵活布局的方法呢?

我们知道,润乾报表的报表组是支持多 TAB 页的,同时也是支持参数查询的。通常,我们使用的参数查询条件是通过参数报表实现的,这时报表组中所有报表都共用该参数,而且位置只能在报表组的最上方而不能在每个区块上,因此也做不到局部刷新。 这样,是不是说润乾报表就无法实现客户的这个需求了呢?

当然不是,润乾通过报表组展现多张报表不仅有常规的多 TAB 页方式,还有下拉选择切换,以及 Dashboard 布局的方式展现。而上面的需求就可以通过使用报表组 Dashbord 布局,通过 dashboardlink() 来实现局部刷新。

下面就用个简化的实例来看下如何通过报表组实现一个页面多区块局部刷新的这样的需求吧!

1. 分解页面,做出页面中涉及的报表文件。

上面截图中分了两个区块:区块一,区块二。

区块一有区块标题、3 个 TAB 页签以及与 3 个页签对应显示报表的区域,我们将区块的标题和 TAB 页签做在一个报表中,报表文件名为 T1.rpx。

另外分别制作 3 个页签对应的报表,命名为 d1.rpx,d2.rpx,d3.rpx。

区块二中有区块标题,查询条件,数据报表三个部分,我们同样将区块标题和查询条件做在一张报表中,报表文件名为 T2.rpx;

D2 单元格的类型为 html, 表达式为

数据报表文件名为 d4.rpx.

数据报表中定义了一个参数,参数名为“姓名”,类型为字符串

数据集将根据该参数动态查询过滤,数据集定义如下:

2. 创建报表组设置布局

新建报表组,添加上面我们做好的 6 张报表。

在报表组布局面板中设置报表显示的位置,并设置每一个报表在对应区块的适应方式。

保存报表组,在设计器下默认使用 previewDashboard.jsp 来展现经过布局设置的报表组, 而这里我们使用 showDashboard.jsp 来访问该报表。showDashboard.jsp 默认会显示标题和边框,如下图所示。

可以通过设置标签属性 needTitle=“no”, 去掉标题,needBorder="no",去掉边框,展现效果如下:

3. 对区块一中的页签报表添加切换操作,选中 B2,C2,D2 单元格,添加超链接表达式,“javascript:dashboardLink(‘board.jsp?board=/00Dashboard/ 销售系统 /d1.rpx’,‘item1’);”

4. 区块二中针对下拉列表添加查询操作

通过以上设置,我们就已经完成了不同区块多张报表以 TAB 页形式切换,并且区块查询条件相对独立的需求,当每个区块的查询控件值发生变化,下方的数据就会动态的变化的效果。

有没有觉得做这种报表有点像做皮影戏的人物?首先,分解出一个人物有哪些部分,分别制作好后上色(报表制作);然后,将制作好后的各组件组装到一起(布局设置),给各关节部位装上木棍(在联动的地方挂上 JS 事件)。这样,这个人影就能在幕布上栩栩如生地呈现了。

局部刷新时间 jsp_局部区块多个报表 TAB 页切换及局部区块的参数查询相关推荐

  1. html的tab页面切换刷新,切换tab页,页面局部刷新,地址栏路径修改

    需求: 做一个类似百度这种,切换tab,页面展示局部刷新的效果. 思路: tab展示的切换,使用display控制.但是,如果页面刷新,则无法保留显示在tab2的效果,因而在地址栏加参数标记.但如果用 ...

  2. 切换tab页,页面局部刷新,地址栏路径修改

    需求: 做一个类似百度这种,切换tab,页面展示局部刷新的效果. 思路: tab展示的切换,使用display控制.但是,如果页面刷新,则无法保留显示在tab2的效果,因而在地址栏加参数标记.但如果用 ...

  3. vue点tab不刷新页面_如何使tab页切换,页面不刷新

    编写js结构: var tit=document.getElementById('tit'); var lis1=tit.getElementsByTagName('li'); // alert(li ...

  4. FineReport——JS二次开发(局部刷新)

    在FR中,可以通过在form表单设置多个报表模板,然后通过对某一模板刷新实现局部刷新的功能,在cpt模板中,由于只存在一个模板,所以无法实现局部刷新. 其实,最好的局部刷新办法是自定义一个页面,然后添 ...

  5. ajax 局部页面替换innerhtml,ajax jquery 页面局部刷新的不同实现代码

    以下示例是学习使用XMLHttpRequest时,实现的页面局部刷新的代码,分享下. 复制代码 代码示例: 页面局部刷新功能_www.jbxue.com window.onload = functio ...

  6. android局部布局刷新,Android RecyclerView 局部刷新分析

    前情回顾 之前写的 PowerAdapter 和 SelectPowerAdapter 从创建到现在,已经两年多,期间发生了翻天覆地的变化.一开始,我把 SwipeRefreshLayout 和 Re ...

  7. asp ajax局部刷新,ASP.Net用jQuery ajax实现页面局部刷新

    刚开始的时候使用asp的updatepanel控件实现局部刷新,而且在本地运行正确,但是部署到服务器上就变成整个页面全部刷新了.服务器用的是Windows server2000,本地机子上用的是win ...

  8. ajax局部刷新 php,PHP中ajax的局部刷新

    最近做的项目用php5开发,现在将使用的局部刷新总结下: 1,使用情况是:我点击本页面,要使本页面的某块局部刷新: 本页面通过这种方式包含局部页面: function localRef(){ var ...

  9. ajax实现局部刷新例子,AJAX局部刷新例子

    放你的东西 总结 以上是编程之家为你收集整理的AJAX局部刷新例子全部内容,希望文章能够帮你解决AJAX局部刷新例子所遇到的程序开发问题. 如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序 ...

最新文章

  1. xml笔记整理_基础概括
  2. Process Monitor中文手册
  3. 小工匠聊架构 - 构建架构思维
  4. python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
  5. php session mysql_php session mysql存储
  6. 怎么建立微信生态用户增长模型?
  7. Androidの网络Http之判断是否连接服务器
  8. win32获取当前运行程序的内存地址_一个lock锁,就可以分出程序员对问题处置方式水平的高中低...
  9. stat---文件状态信息结构体
  10. 用友nc的java插件下载,用友nc插件下载|
  11. SHA256算法原理及其实现
  12. java——15位身份证号码升级到18位
  13. dns解析服务器原理,简述DNS服务器原理
  14. 关于Ruby的语言特点
  15. 食品饮料行业仓库库存管理系统软件,前十排行榜
  16. 视频编码中CBR和VBR的区别,CRF和CQP的区别
  17. 数学模型之最小二乘法
  18. sqli-labs(46-49)
  19. CDH-TXKT-hive、impala
  20. 计算机网络:P4.3-网络层(下)

热门文章

  1. 工作中都不用源码,面试的时候为什么要问呢?
  2. 分库分表 vs NewSQL数据库
  3. 你想学习Java ?资源都在这里了
  4. matlab第四章例题,第四章课后作业matlab验证
  5. mysql的字段空格是null_MySQL中NULL与空字符串 空格问题
  6. python读写二进制
  7. python 点计算角度
  8. python获取硬件信息
  9. error CS0234: 命名空间“System.Drawing”中不存在类型或命名空间名称“Image”
  10. any() missing 1 required positional arguments: dim