移动端报表JS开发技术分享

烂漫一生 提交于 2019-12-16 20:00:02

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

最近对移动端的报表开发颇有研究,细磨精算了好久,虽然到现在还是“囊中羞涩”,但决定还是先抛砖引玉,拿点小干货出来和大家分享。

研究的工具是比较有代表性的FineReport。

1、  移动端哪些地方支持调用js

web事件     分页预览 填报预览

加载结束事件           X

填报成功事件 --           √


报表内部js      单元格       图表

超级链接js           √


控件事件 参数控件 填报控件 表单控件

初始化后事件   √           √           X

编辑前           √           √           X

编辑后           √           √           X

编辑结束            √           √           X

点击                    √           √           X

状态改变            √           √           √


2、  报表控件支持的脚本函数

函数名        函数描述           填报控件       参数控件  表单控件

setEnable    设置控件的可用性       √        √             √

isEnable    判断控件是否可用       √        √             √

setVisible    设置控件的可见性       √        √             √

isVisible    判断控件的可见性        √        √             √

setValue    设置控件值                √        √             √

getValue    获取控件的值                √        √             √

setText    设置控件的显示值        √        √             √

getText    获取控件的显示值        √        √             √

reset            重置控件                √        √             √

fireEvent   触发指定名字的事件        √             √


3、  报表分页预览支持的脚本函数

函数名                  函数描述         补充说明                                                      实现

contentPane          当前报表对象     无                                                         

currentPageIndex  当前所在页 contentPane常用属性 只有分页预览报表才有

reportTotalPage 总页数         contentPane常用属性 只有分页预览报表才有

gotoFirstPage         首页                    无                                                                 √

gotoPreviousPage 上一页            无                                                                  √

gotoNextPage         下一页            无                                                                 √

gotoLastPage         末页                    无                                                                 √

gotoPage(n) 跳转到某一页         包含1个参数,表示跳转到第几页                 √


4、  填报预览报表支持的脚本函数

函数名                           函数描述                   补充说明                                                                                      实现

contentPane                 当前报表对象                     无                                                                                √

verifyReport                 数据校验         只有填报表才可以用,contentPane常用方法                                        √

writeReport                 提交报表         只有填报表才可以用,contentPane常用方法                                        √

verifyAndWriteReport  数据校验后提交报表      只有填报表才可以用,contentPane常用方法                        √

curLGP                         current logicpane       contentPane常用属性,只有填报预览及表单预览下才有        √

getCellValue(cell)         获取指定格子的值 包含1个参数,单元格,只有填报下有,curLGP常用方法                √

getCellValue(col, row)         获取指定格子的值 包含2个参数,列和行,只有填报下有,curLGP常用方法        √

setCellValue(cell, null, value) 设置指定格子的值 包含3个参数,单元格,空和值,只有填报下有,curLGP常用方法    √

setCellValue(col, row, value) 设置指定格子的值 包含3个参数,列,行和值,只有填报下有,curLGP常用方法      √

getWidgetByCell                 获取指定单元格中的控件 包含1个参数,单元格,contentPane常用方法              √

getWidgetByName                 获取指定名字的控件 包含1个参数,控件名,contentPane常用方法                       √

getWidgetsByName         获取指定名称的扩展控件  包含1个参数,控件名,contentPane常用方法              √


5、常用的工具类脚本函数

函数名                函数描述                  补充说明                                                                                    实现

FR.Msg.alert    弹出消息框函数      包含3个参数,分别表示:标题,内容,回调函数                  √

FR.Msg.confirm  值确认弹出框函数      包含3个参数,分别表示:标题,值,回调函数                  √

FR.Msg.prompt   可修改值的值确认弹出框函数 包含4个参数,分别表示:标题,说明,值,回调函数

FR.Msg.toast 在页面边缘出现的消息提示块,一小段时间后自动消失 包含1个参数,表示要提示的信息

FR.cjkEncode  进行cjk编码              包含1个参数,字符串                                                        √

FR.cjkDecode  进行cjk解码              包含1个参数,字符串                                                        √

FR.location 地理位置获取              包含一个回掉函数返回获取状态及信息                                √

FR.doHyperlinkByGet /FR.doHyperlinkByPost包含2个参数,分别表示:超链的url, 传递的参数    √

FR.ajax         异步请求函数                                        /                                                         √

_g().parameterCommit() 分页预览及填报预览自动查询 /                                                          

contentPane.setAppearRefresh() 页面再现的时候自动刷新 /                                                  √


以上对应着报表的功能大致罗列了以下框架,下面先举一些小示例

获取控件的一系列方法

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,欢迎一起探讨。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!