Finereport移动端报表二次开发:刷新页面与图表联动实例

需积分: 50 28 下载量 6 浏览量 更新于2024-09-12 收藏 561KB PDF 举报
在Finereport移动端报表的二次开发中,开发者可能遇到两种常见问题:刷新页面和获取表单图表并实现动态更新。这里将详细介绍针对这两个问题的解决方案。 第一个问题是页面自动刷新,当你需要创建一个报表A,其中包含一个链接到报表B的超链接,用户在B报表中提交数据后返回到A报表时,A报表能够自动展示最新的数据。解决这个问题的关键在于使用`contentPane.setAppearRefresh()`方法。这个方法在报表A加载完成后执行,使得A报表能够在B报表数据更新后重新加载并显示新数据。在操作上,首先打开`%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\mobile-client\DetailedDrillA.cpt`和`DetailedDrillB.cpt`这两个模板,然后在A报表的加载事件中添加包含上述代码的JavaScript。保存并预览报表,确保移动端设置正确,A报表就会在链接触发后自动刷新。 第二个问题是图表与报表块的联动更新。假设有一个图表chart0与报表块report0联动,当你在chart0中更改数据时,对应的chart1数据没有实时更新。要解决这个问题,你需要利用Finereport的JavaScript API来手动刷新图表数据。首先,通过`FR.Chart.WebUtils.getChart("chart1")`获取chart1的图表对象,然后调用`c.dataRefresh()`来刷新数据。然而,为了实现延迟刷新,防止频繁请求导致性能问题,可以使用`setTimeout()`函数,如在点击chart0后的500毫秒后执行刷新操作。操作示例是打开`%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\mobile-client\ChartDelayRefresh_1.frm`报表,然后在报告中添加相应的超链接和JavaScript代码,当chart0被点击时,chart1的数据会在一定延迟后自动更新。 总结来说,Finereport移动端报表的二次开发涉及到页面刷新和图表动态更新两个关键点。通过合理使用`setAppearRefresh()`方法和JavaScript API,开发者可以有效地解决这些问题,提升用户体验,使移动端报表功能更加灵活和高效。