历史版本55 :移动端的 JS 接口 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 移动端哪些地方支持调用 JS编辑

Web 事件   分页预览填报预览  
  加载起始 √√  
  加载结束 √√  
  填报前
√  
  填报后 √  
  填报成功
√   
  填报失败 √   


报表内部 JS 单元格  图表  
超级链接 JS  √  √  

注:图表的内部JS是可以实现超级链接的;但当图表作为决策报表组件时,为该组件添加的JS点击事件是不支持的。


控件事件  参数控件  填报控件  决策报表控件  
初始化后事件   √
编辑前      
编辑后   √
编辑结束   √  √
点击   √ √ √
值改变  
   
节点生成   
状态改变 √  √ √
 上传后   

注1:决策报表控件是指决策报表 body 里的控件,不包含决策报表参数面板里的控件

注2:移动端只支持参数界面控件的初始化,但是不支持参数面板的初始化

注3:目前组件是不支持点击事件的。

2. 控件支持的脚本函数编辑

 函数名 函数描述  参数说明填报控件  参数控件  决策报表控件  
setEnable  设置控件是否可用

一个参数。参数为true可用,false不可用

 √  √  
isEnable  判断控件是否可用  无参数
√  √  
setVisible  设置控件是否可见 

一个参数。参数为true可见,false不可见


√  √  
isVisible  判断控件是否可见  无参数
√  √  
setValue  控件的赋值方法 一个参数
√  √  
getValue  控件的取值方法  无参数√  √  √  
reset  清空控件的数据  无参数
√  √  
fireEvent  触发指定名字的控件事件  一个参数,值为触发的事件的名字√  √  √  
getText获取控件的显示值无参数√  √   √   

3. 分页支持的脚本函数编辑

 函数名 函数描述  参数说明  实现  
contentPane  当前报表对象  无参数。只有在普通报表中才有,决策报表中没有√  
currentPageIndex  当前所在页的页码contentPane 常用属性 只有分页预览报表才有 √  
reportTotalPage  当前报表的总页数  contentPane 常用属性 只有分页预览报表才有 √  
gotoFirstPage  跳转到报表的首页无参数√  
gotoPreviousPage  跳转到当前页的上一页无参数√  
gotoNextPage  跳转到当前页的下一页无参数√  
gotoLastPage  跳转到报表的末页无参数√  
gotoPage(pn, para, noCache)跳转到某一页  

三个参数。

1)pn:页序号,序号从1开始

2)para:选填,跳转报表块页面时携带的参数

3)noCache:选填,true时跳转报表块不使用缓存,强制取新的数据

√  

4. 填报支持的脚本函数编辑

函数名  函数描述  参数说明  实现  
contentPane  当前报表对象  无参数。只有在普通报表中才有,决策报表中没有  √  
verifyReport  触发填报表的数据校验无参数。只有填报报表下可以用,contentPane 常用方法 √  
writeReport  提交报表  无参数。只有填报报表下可以用,contentPane 常用方法  √  
verifyAndWriteReport  校验并提交报表  

一个参数。选填,只有填报报表下可以用,contentPane 常用方法 

1)不填或者填0时,都为提交当前sheet

2)填true或者填非0数字时,提交所有sheet

3)参数不能是非true或者数字字符串,不支持,无法提交

√  
getCellValue(cell)  获取指定格子的值  1 个参数,定位单元格,只有填报报表下可以用√  
getCellValue(col,row)  获取指定格子的值  2 个参数,定位列和行,只有填报报表下可以用√  
setCellValue(col,row,value)  给单元格的赋值
3个参数,定位列和行,并赋值,只有填报报表下可以用
getWidgetByCell 获取指定单元格中的控件 1 个参数,值为单元格名,contentPane 常用方法 √ 
getWidgetByName 获取指定名字的控件 1 个参数,值为控件名,contentPane 常用方法 √ 
getWidgetsByName 获取指定名称的扩展控件,返回一个数组 1 个参数,值为控件名,contentPane 常用方法 √ 
refreshAllSheets刷新所有sheet无参数。只有填报报表下可以用,contentPane 常用方法 √ 

5. 决策平台编辑

函数名  函数描述  参数说明  实现
FS.tabPane.addItem向决策平台 Tab 栏新增项目

2种属性,分别表示:

1)title:标签页的标题,字符串和数字都可以

2)src:标签页的内容指向的地址
 √  
FS.tabPane.closeActiveTab关闭当前 Tab 选项页无参数 √ 
FR.logoutApp登出,FR 工具类下的方法无参数 √ 

6. 图表编辑

函数名  函数描述    补充说明  实现
 getChart 获取图表对象,图表接口均只支持老图表1 个参数,必填,值为图表块控件名 √
 dataRefresh 刷新图表数据,图表接口均只支持老图表

1 个参数,必填,值为图表块控件名

使用请参考:JS获取决策报表内图表块刷新数据

 √

注:getChart() 和 dataRefresh() 只支持 8.0 App 使用,9.0 App 由于老图表转化为新图表显示,故不支持。

7. 常用的工具类脚本函数编辑

函数名  函数描述  参数说明  实现  
FR.Msg.alert  弹出消息的提示对话框 

3 个参数,分别表示:

1)title:必填,消息提示框的标题

2)message:必填,消息提示框的提示内容

3)callback:选填,对话框显示以后的回调函数。

√  
FR.Msg.confirm  弹出的确认对话框

3 个参数,分别表示:

1)title:必填,消息提示框的标题

2)message:必填,消息提示框的提示内容

3)callback:选填,点击确认后的回调函数

√  
FR.Msg.prompt  弹出的输入对话框

4 个参数,分别表示:

1)title:必填,输入对话框的标题

2)message:选填,输入对话框的显示消息

3)value:选填,输入对话框的默认值

4)callback:选填,点击确认后的回调函数

√  
FR.Msg.toast  弹出悬浮提示,5s自动消失1 个参数,值为要显示的消息√  
FR.location  获取当前 GPS 经纬度信息1 个参数,必填,值为要调用的函数√  

FR.doHyperlinkByGet

FR.doHyperlinkByPost  

超级链接,FR下的工具类方法

2 个参数,分别表示:

1)url:必填,url或json超链定义

2)config:选填,传递的参数

√  
FR.ajax  异步请求函数  

9 种属性,分别表示:

1)url:必填,发送请求的地址

2)data:发送到服务器的数据

3)type:请求方式POST/GET,默认为GET

4)dataType:预期服务器返回的数据类型

5)success:请求成功后的回调函数

6)error:请求失败时调用此函数

7)complete:请求完成后回调函数

8)timeout:设置请求超时时间(毫秒)

9)async:默认为true,所有请求均为异步请求

√  
FR.Mobile.getDeviceInfo获取移动端设备信息

2 种属性,分别表示:

1)Model:设备型号

2)DeviceID:设备唯一ID

√ 
contentPane.parameterCommit触发查询操作无参数,只支持普通报表,不支持决策报表√  
 _g().parameterCommit
触发查询操作无参数,支持普通报表、决策报表√ 
setInterval按照指定的周期(以毫秒计)来调用函数或计算表达式

2 个参数,分别表示:

1)code:必填,要调用的函数或要执行的代码串

2)millisec:周期性执行或调用 code 之间的时间间隔,以毫秒计

setTimeout在指定的毫秒数后调用函数或计算表达式

2 个参数,分别表示:

1)code:必填,要调用的函数后要执行的 JavaScript 代码串

2)millisec:在执行代码前需等待的毫秒数

√ 
FR.isMobile / /不支持 
FR.MobileTools.openLink / /不支持 

8. 具体使用示例编辑

8.1 获取控件的一系列方法


this.options.form.getWidgetByName("控件名");  //参数界面及决策报表中获取控件  
contentPane.getWidgetByCell("单元格");  //填报界面获取控件  
contentPane.getWidgetByName("控件名");   //填报界面获取控件

详细请查看 填报成功后自动刷新

8.2 JS 获取决策报表图表、报表块

1)JS 获取决策报表图表组件并刷新数据

详细请查看 JS 获取决策报表图表组件并刷新数据

2)JS 获取报表块刷新和翻页

this.options.form.getWidgetByName('xx').gotoPage(2,{'p1':'123','p2':'234'},true);

详细请查看 JS 获取决策报表报表块

8.3 延时函数

setTimeout(function(){},500);

8.4 刷新

1)当前页刷新

location.reload()

详细请查看 当前页刷新

2)定时刷新,支持定时 JS,以及取消定时


setInterval('location.reload();',10000);//时间单位为 ms,即每 10s 刷新一次页面
var timer = setInterval('location.reload();',10000);clearInterval(timer);//取消定时 

详细请查看 定时刷新 JS

8.5 获取地理位置


FR.location(function(status, message){ //获取地理位置
if(status=="success") {
  //定位成功,message 返回经纬度值
  FR.Msg.alert("当前位置是" + message);
  contentPane.setCellValue(2, 3, message);  
} else {
  //定位失败,message返回对应的错误信息
  FR.Msg.alert(message); //定位失败
}
});

详细请查看 获取地理位置

8.6 查询

查询操作,不管是 cpt 还是 frm,参数界面上会有内置查询按钮,用户可以不用内置查询,通过 JS 来触发查询操作

1)普通报表可以通过下面两种方式触发


contentPane.parameterCommit()
_g().parameterCommit()

2)决策报表只能通过下面一种方式触发

_g().parameterCommit()

详细请查看 决策报表自动查询 JS

详细请查看 扫码输入查询

8.7 超级链接

FR.doHyperlinkByGet({url:'${servletURL}?viewlet=JS 超链自定义标题子表.cpt',title:'标题是我',para:{area:'华北'}});

注:title 只在 App 中支持

详细请查看 JS 超链自定义标题

8.8 登出 App

FR.logoutApp();

详细请查看 登出 App 的 JS

8.9 获取控件显示值与实际值


var Widget = this.options.form.getWidgetByName("t1"); //在参数界面获取控件的方法,先获取决策报表,再通过控件名称来获取控件 
var value_1 =Widget.getValue(); //获取控件实际值 
alert('我的实际值是:'+value_1); //弹出控件实际值 
var value_2 =Widget.getText(); //获取控件显示值 
alert('我的显示值是:'+value_2); //弹出控件显示值

详细请查看 控件值(实际值和显示值