标签:
最近对移动端的报表开发颇有研究,细磨精算了好久,虽然到现在还是“囊中羞涩”,但决定还是先抛砖引玉,拿点小干货出来和大家分享。
研究的工具是比较有代表性的FineReport。
1、 移动端哪些地方支持调用js
web事件 | 分页预览 | 填报预览 |
加载结束事件 | √ | X |
填报成功事件 | -- | √ |
2、报表控件支持的脚本函数
报表内部js | 单元格 | 图表 |
超级链接js | √ | √ |
3、报表分页预览支持的脚本函数
控件事件 | 参数控件 | 填报控件 | 表单控件 |
初始化后事件 | √ | √ | X |
编辑前 | √ | √ | X |
编辑后 | √ | √ | X |
编辑结束 | √ | √ | X |
点击 | √ | √ | X |
状态改变 | √ | √ | √ |
4、填报预览报表支持的脚本函数
函数名 | 函数描述 | 填报控件 | 参数控件 | 表单控件 |
setEnable | 设置控件的可用性 | √ | √ | √ |
isEnable | 判断控件是否可用 | √ | √ | √ |
setVisible | 设置控件的可见性 | √ | √ | √ |
isVisible | 判断控件的可见性 | √ | √ | √ |
setValue | 设置控件值 | √ | √ | √ |
getValue | 获取控件的值 | √ | √ | √ |
setText | 设置控件的显示值 | √ | √ | √ |
getText | 获取控件的显示值 | √ | √ | √ |
reset | 重置控件 | √ | √ | √ |
fireEvent | 触发指定名字的事件 | √ | √ | √ |
5、常用的工具类脚本函数
函数名 | 函数描述 | 补充说明 | 实现 |
contentPane | 当前报表对象 | √ | |
currentPageIndex | 当前所在页 | contentPane常用属性 只有分页预览报表才有 | √ |
reportTotalPage | 总页数 | contentPane常用属性 只有分页预览报表才有 | √ |
gotoFirstPage | 首页 | √ | |
gotoPreviousPage | 上一页 | √ | |
gotoNextPage | 下一页 | √ | |
gotoLastPage | 末页 | √ | |
gotoPage(n) | 跳转到某一页 | 包含1个参数,表示跳转到第几页 | √ |
以上对应着报表的功能大致罗列了以下框架,下面先举一些小示例
获取控件的一系列方法
this.options.form.getWidgetByName("控件名"); //参数界面及表单中获取控件
contentPane.getWidgetByCell("单元格"); //填报界面获取控件
contentPane.getWidgetByName("控件名"); //填报界面获取控件
填报成功后刷新当前页
var url = "/WebReport/ReportServer?reportlet=js/shauxindangqian.cpt&op=write&__replaceview__=true"; FR.doHyperlinkByGet(url,{para:paravalue}); //刷新当前页面
js获取表单图表组件并刷新数据
var c=FR.Chart.WebUtils.getChart("chart0"); c.dataRefresh();
延时函数
setTimeout(function() { }, 500);
A超链至B填报,B提交数据后返回A时,A自动刷新显示新的数据
contentPane.setAppearRefresh(); //在A的加载结束后事件中添加js
以后会陆续分享一些移动端实用功能的应用实例,还有HTML5,欢迎一起探讨。
标签:
原文地址:http://www.cnblogs.com/lindsshun/p/5362950.html