移动端 App 的 JS 接口

编辑
  • 文档创建者:印然
  • 浏览次数:28071次
  • 编辑次数:61次
  • 最近更新:Carly 于 2019-12-05
  • 1. 移动端 APP 支持调用 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:选填,传递的参数

    3)'_self':选填,当前窗口

    √  
    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.remoteEvaluate//不支持 
    FR.remoteEvaluateAsync

    返回公式计算的结果

    注:版本为 10.4.46 之后的 App 支持

    注:使用该接口需要关闭脚本调用公式限制

          请参见:安全防护 2.3章节

    2 个参数,分别表示:

    1)formula:必填,具体公式

    2)callback:必填,具体回调方法,可以获取公式计算后的值

    √ 
    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); //弹出控件显示值

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

    附件列表


    主题: 移动端应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]