目录:
1. 移动端 App 支持调用 JS编辑
Web 事件 | 分页预览 | 填报预览 |
---|---|---|
加载起始 | √ | √ |
加载结束 | √ | √ |
填报前 | √ | |
填报后 | √ | |
填报成功 | √ | |
填报失败 | √ |
报表内部 JS | 单元格 | 图表 |
---|---|---|
超级链接 JS | √ | √ |
注:图表的内部JS是可以实现超级链接的;但当图表作为决策报表组件时,为该组件添加的JS点击事件是不支持的。
控件事件 | 参数控件 | 填报控件 | 决策报表控件 |
---|---|---|---|
初始化后事件 | √ | √ | √ |
编辑前 | |||
编辑后 | √ | √ | |
编辑结束 | √ | √ | |
点击 | √ | √ | √ |
值改变 | |||
节点生成 | |||
状态改变 | √ | √ | √ |
上传后 |
注1:决策报表控件是指决策报表 body 里的控件,不包含决策报表参数面板里的控件
注2:移动端只支持参数界面控件的初始化,但是不支持参数面板的初始化
注3:目前组件是不支持点击事件的。
2. 对象编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 使用范围 | 示例 |
---|---|---|---|
FR | FR 工具类对象,封装了报表公用的属性和方法 | Web 事件、控件事件、超链 JS、表单事件中都可以获取到 FR 对象 | CPT 单元格超链中调用FR.doHyperlinkByGet(url)超链到百度页:
|
FS | 决策平台工具类对象,封装了决策平台公用的属性和方法 | Web 事件、控件事件、超链 JS 、表单事件中都可以通过「window.parent.FS」来获得 FS 对象 | CPT 单元格超链 JS 中将超链的子报表在决策平台的新 Tab 中打开:
|
contentPane | 存放 CPT 报表内容的容器,即整个 CPT 报表对象 | 1)CPT 中才有,FRM 中没有 2)Web 事件、单元格超链 JS 、填报中单元格控件事件、CPT 的参数界面控件事件,直接通过「contentPane」就可以获取到对象 | CPT 参数界面的按钮点击事件中获取「contentPane」对象:
|
_g() | 1)CPT 中,_g() 就是整个报表对象contentPane,支持contentPane下的所有支持的方法 2)FRM 中,_g() 就是整个表单对象globalForm,支持globalForm下的所有支持的方法 | 1)CPT/FRM 中参数界面控件事件中可以通过_g().parameterCommit()实现自动查询 2)CPT 中填报单元格控件事件中可以通过_g().verifyAndWriteReport()及其它填报方法实现提交入库 3)FRM 中报表块、图标块事件中可以通过_g().options.form获取表单主体中的对象 | |
parameterEl | 参数面板对象,可通过parameterEl.getWidgetByName("name")获取控件 CPT 和 FRM 中的参数界面都是parameterEl: 1)CPT 中通过contentPane.parameterEl来获取参数界面,主要应用在 CPT 中Web 事件的加载起始和结束事件、CPT 单元格 JS 中 2)FRM 中通过_g().parameterEl来获取参数界面,主要应用在 FRM 的 body 初始化事件、FRM 主体中的控件、FRM 主体报表块单元格/图表 JS、图表块 JS | CPT 加载结束事件中获取参数界面控件的值:
| |
this | 在控件的事件中,可以通过this直接获取到当前的控件对象 | 控件指填报单元格中的控件、参数界面中的控件、表单 body 主体中的控件 | CPT 参数界面文件控件的编辑结束事件中获取控件的值:
|
form | 1)FORM 为表单对象 2)CPT 和 FRM 中的参数界面都是表单,FRM 主体也是表单 2)每个控件的options里都有当前的表单对象 FORM 因此可以在参数界面或者表单主体的控件的事件中,通过this.options.form来获取当前的表单对象 | CPT 参数界面的按钮点击事件中获取其他控件的值:
| |
getWidgetByName("name") | 1)获取其他控件对象,通过getWidgetByName("name")来获取控件 2)获取表单里面的控件,也可以获取填报单元格中控件,两者获取方式不同 3)参数说明如下所示: 参数:name 参数类型:String 参数说明:控件名 | 1)CPT 参数界面的按钮点击事件中获取其他控件的值:
2)CPT 填报单元格的按钮控件中,点击获取其他填报单元格控件的值:
| |
getWidgetByCell("cell") | 1)填报中,获取其他控件对象 2)参数说明如下所示: 参数:cell 参数类型:String 参数说明:单元格名,如 A1 | CPT 填报单元格的按钮控件中,点击获取其他填报单元格控件的值:
|
3. 属性编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 使用范围 | 示例 |
---|---|---|---|
contentPane.currentPageIndex | 1)contentPane 报表对象下面的属性,当前所查看的页码 2)只有分页的时候该属性才会有值,通过contentPane.currentPageIndex来进行调用 3)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中获取当前页所在总页数中的序号 注:该函数不能在表单、参数界面、Web 事件中使用。 | 在 CPT 单元格超链 JS中 获取当前页所在总页数中的序号:
| |
reportTotalPage | 1)contentPane报表对象下面的属性,当前报表的总页数 2)只有分页的时候该属性才会有值,通过contentPane.reportTotalPage来进行调用 3)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中获取当前报表的总页数 注:该函数不能在表单、参数界面、Web 事件中使用。 | 在 CPT 单元格超链 JS 中获取当前报表的总页数:
|
4. 查询操作编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 示例 |
---|---|---|
parameterCommit() | 1)查询操作,不管是 CPT 还是 FRM ,参数界面上会有内置查询按钮,用户可以不用内置查询,通过 JS 来触发查询操作 2)通过contentPane.parameterCommit() 或者_g().parameterCommit()两种方式触发,在表单中只能通过 _g().parameterCommit()方式触发 | 1)CPT 参数界面中自定义按钮先校验控件,然后根据条件再触发查询:
2)FRM 参数界面中自定义按钮的点击事件中触发查询:
|
5. 翻页操作编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 使用范围 | 示例 |
---|---|---|---|
gotoFirstPage() | 1)contentPane报表对象下的一个方法,用来跳转到报表的第一页 2)只有分页的时候该方法才会有用,通过contentPane.gotoFirstPage()来进行调用 3)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中通过contentPane.gotoFirstPage()跳转到第一页 注:该函数不能在表单、参数界面、Web 事件中使用。 | 在 CPT 单元格超链 JS 中跳转到第一页:
| |
gotoLastPage() | 1)contentPane报表对象下面的一个方法,用来跳转到报表的最后一页 2)只有分页的时候该方法才会有用,通过contentPane.gotoLastPage()来进行调用 3)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中通过contentPane.gotoLastPage()来跳转到报表的最后一页 注:该函数不能在表单、参数界面、Web 事件中使用。 | 在 CPT 单元格超链 JS中 跳转到报表的最后一页:
| |
gotoPreviousPage() | 1)contentPane报表对象下面的一个方法,用来跳转到当前页的上一页 2)只有分页的时候该方法才会有用,通过contentPane.gotoPreviousPage()来进行调用 3)如果当前是第一页,触发事件应该没有响应,不能出现页码小于等于 0 的情况 4)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中通过contentPane.gotoPreviousPage()来跳转到当前页的上一页 注:该函数不能在表单、参数界面、Web 事件中使用。 | 在 CPT 单元格超链 JS 中跳转到当前页的上一页:
| |
gotoNextPage() | 1)contentPane报表对象下面的一个方法,用来跳转到当前页的下一页 只有分页的时候该方法才会有用,通过contentPane.gotoNextPage()来进行调用 2)如果当前是最后一页,触发事件应该没有响应,不能出现页码大于总页数的情况 3)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中通过contentPane.gotoNextPage()来跳转到当前页的下一页 注:该函数不能在表单、参数界面、Web 事件中使用。 | 在 CPT 单元格超链 JS 中跳转到当前页的上一页:
| |
gotoPage(Number pn [, JSON para] [, Boolean noCache]) | 1)contentPane报表对象下面的一个方法,用来跳转到报表的指定页 只有分页的时候该方法才会有用。 2)CPT 中通过contentPane.gotoPage(pn)来进行调用,如果指定的页数超过总页数,则不响应 3)FRM 中通过this.options.form.getWidgetByName("repotname").gotoPage(pn, para, noCache)来进行调用 4)在 CPT 填报预览且__cutpage__=v填报分页情况下,在填报单元格 JS 和填报单元格控件中通过contentPane.gotoPage(pn)来跳转到报表的指定页 5)在 FRM 表单 body 主体按钮控件的点击事件中,通过this.options.form.getWidgetByName("repotname").gotoPage(pn, para, noCache)来让报表块跳转到指定页 6)参数:详见表格下方说明。 注:该函数不能在参数界面、Web 事件中使用。 | 1)在 CPT 单元格超链 JS 中跳转到指定页:
2)在表单 body 中按钮的点击事件中指定报表块跳转到指定页,三种形式: 形式1: 点击按钮,报表块跳转到第 2 页;并且报表中通过公式$month,$name正常获取到了参数值 形式2: 点击按钮,报表块跳转到第 2 页;并且报表中通过公式$month,$name获取不到参数值,因为没有强制重新取数计算,参数都是第一次计算的时候传递的 形式3:点击按钮,报表块跳转到第 2 页
|
gotoPage(Number pn [, JSON para] [, Boolean noCache]) 函数所使用的参数说明如下表所示:
注:CPT 中只有 pn 一个参数,不存在 pn 、para 、noCache 三个参数的用法。
参数 | 类型 | 说明 |
---|---|---|
pn | Number | 页序号,序号从 1 开始 |
para | JSON | 选填,跳转报表块页面时携带的参数,可以时 json 对象,也可以是 json 格式字符串 |
noCache | Boolean | 选填,true 时跳转报表块不使用缓存,强制取新的数据 |
6. 控件操作编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 示例 |
---|---|---|
getValue() | 1)控件的取值方法 2)获取到控件,例如获取的控件变量为Widget,那么可以通过Widget.getValue()来取控件的值 3)如果控件是下拉框等有显示值和实际值区分,getValue()取的是实际值 | 1)CPT 参数界面下拉框的编辑结束事件中获取当前下拉框的值以及其他控件的值:
2)CPT 填报单元格下拉框的编辑结束事件中获取当前下拉框的值以及其他控件的值:
|
setValue(value | 1)控件的赋值方法 2)获取到控件,例如获取的控件变量为Widget,那么可以通过Widget.setValue(value)来设置控件的值。 3)如果控件是下拉框等有显示值和实际值区分,setValue()设置的是实际值 4)参数说明如下所示: 参数:value 参数类型:Object 参数说明:值 | CPT 参数界面按钮点击事件中给其他控件赋值:
|
getText() | 1)取控件的显示值 2)获取到控件,例如获取的控件变量为Widget,可以通过Widget.getText()来取控件的显示值 3)只有下拉框、下拉复选框、下拉树、单选按钮组、复选框组这 5 个控件有显示值和实际值,这些控件用getValue()获取到的是实际值,getText()获取到的是显示值 4)如果控件是下拉框等有显示值和实际值区分,getValue()和getText()取的是实际值 | CPT 参数界面下拉框的编辑结束事件中获取当前下拉框的实际值和显示值:
|
reset() | 1)清空控件的数据 2)获取到控件,例如获取的控件变量为Widget,那么可以通过Widget.reset()来清空控件的数据 | CPT 参数界面按钮点击后将参数界面上其他控件统一重置:
|
isVisible() | 1)判断控件是否可见 2)获取到控件,例如获取的控件变量为Widget,那么可以通过isVisible()来判断控件是否可见。可见则返回true,不可见则返回false | CPT 参数界面按钮点击后判断控件是否可见:
|
setVisible(visible) | 1)设置控件是否可见 2)获取到控件,例如获取的控件变量为Widget,那么可以通过Widgeti.setVisible(visible)来设置控件是否可见 3)参数说明如下所示: 参数:visible 参数类型:Boolean 参数说明:参数为 true 可见,false 不可见 | CPT 参数界面下拉控件 a 的编辑结束事件中控制控件 b 是否可见,当 a 选择江苏的时候,控件 b 显示;当 a 的值为上海的时候,控件 b 不显示:
|
setEnable(enable) | 1)设置控件是否可用 2)获取到控件,例如获取的控件变量为Widget,那么可以通过Widgeti.setEnable(enable)来设置控件是否可用 3)参数说明如下所示: 参数:enable 参数类型:Boolean 参数说明:参数为 true 可用, false 不可用 | CPT 参数界面下拉控件 a 的编辑结束事件中控制控件 b 是否可用,当 a 选择江苏的时候,控件 b 可用;当 a 的值为上海的时候,控件b不可用:
|
isEnabled() | 1)判断控件是否可用 2)获取到控件,例如我们获取的控件变量为Widget,那么可以通过isEnabled()来判断控件是否可用 3)可用则返回 true ,不可用则返回 false | CPT 参数界面按钮点击后判断控件是否可见:
|
fireEvent(eventName) | 1)触发指定名字的控件事件 2)获取到控件,例如获取的控件变量为Widget,那么可以通过fireEvent(eventName)来触发控件的事件 3)参数说明如下所示: 参数:eventName 参数类型:String 参数说明:要触发的事件的名字 | CPT 参数界面下拉框编辑结束事件中触发内置查询按钮的点击事件:
|
7. 填报操作编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 示例 |
---|---|---|
verifyReport() | 1)触发填报表的数据校验,只有 CPT 填报表才可以用 2)单 sheet 下设置填报数据校验和控件的及时校验,并且在填报单元格控件(任意选一个控件就可以如按钮)中触发数据校验 3)多 sheet 下每个 sheet 设置填报数据校验和控件的及时校验,并且在填报单元格控件中触发数据校验 | 通过contentPane().verifyReport()来进行调用,如果填报表有多个 sheet ,则所有 sheet 中设置的数据校验都会进行,且控件的即时校验也会验证 |
writeReport([Object reportIndex]) | 1)提交报表,只有 CPT 填报表才可以用,通过contentPane.writeReport()来进行调用,如果填报表有多个 sheet ,则所有 sheet 都会提交 2)也可通过contentPane.writeReport(reportIndex)来提交指定的 sheet ,writeReport为强制提交,不会进行校验 3)参数说明如下所示: 参数:reportIndex 参数类型:Object 参数说明:选填,sheet 编号,从 0 开始 | 点击填报单元格按钮后触发填报提交:
|
verifyAndWriteReport([Object isAllSheet]) | 1)校验并提交报表,只有 CPT 填报表才可以用 2)可通过contentPane.verifyAndWriteReport()来进行调用,如果填报表有多个 sheet ,则contentPane.verifyAndWriteReport()提交当前 sheet 通过contentPane.verifyAndWriteReport(true)提交所有 sheet 3)参数说明如下所示: 参数:isAllSheet 参数类型:Object 参数说明: 不填或者填 0 时,都为提交当前 sheet 填 true 或者填非 0 数字时,提交所有 sheet 参数不能是非 true 或者数字字符串,不支持,无法提交 | 点击填报单元格按钮后触发校验并提交报表:
|
refreshAllSheets() | 1)刷新所有 sheet ,只有填报表下可以用 2)多 sheet 填报中,可以通过contentPane.refreshAllSheets()来刷新所有 sheet ,且刷新后会停留在上次查看的 sheet 页 | 在填报表的第二个 sheet 中,点击某单元格按钮后触发所有 sheet 刷新:
|
getCellValue(Object o) | 1)获取单元格的值 2)在填报报表的 Web 事件、单元格按钮或者 JS 中可以通过contentPane.getCellValue(o)来获取单元格的值 3)参数说明详见本文 7.1 章节 | 1)在填报表单元格按钮中取 A1 单元格的值:
2)在填报表单元格按钮中取 shee2 的 A1 单元格的值:
|
setCellValue(Object o) | 1)在填报报表的 Web 事件、单元格按钮或者 JS 中可以通过contentPane.setCellValue(o)来给单元格的赋值,赋的是实际值,可提交入库 2)参数说明详见本文 7.2 章节 | 在填报表单元格按钮中给 A1 单元格赋值,然后提交入库:
|
7.1 getCellValue(Object o) 参数说明
getCellValue(Object o) 的参数说明如下表所示:
参数 | 类型 | 说明 |
---|---|---|
o | Object | 单元格定位描述 |
o参数的格式{reportIndex:0, columnIndex: 2, rowIndex: 1},具体说明如下表所示:
名字 | 类型 | 说明 |
---|---|---|
reportIndex | Number | 选填,sheet 编号,从 0 开始 |
columnIndex | Number | 必填,列号,从 0 开始 |
rowIndex | Number | 必填,行号,从 0 开始 |
返回值说明如下表所示:
单元格元素 | 返回值类型 | 结果 |
---|---|---|
普通文本 | 取决于单元格值类型 数字(number) 字符串(string) | 对应的值 |
数据列 注:getCellValue 获取的是结果报表对应位置的值;如果是数据列,获取的是扩展后对应位置的值 | 取决于最终单元格值类型 可以是字符串(string)、数字(number)、 日期或数组(object) | 字符串 - 对应的值 数字 - 对应的值 日期或数组 - [object Object] |
富文本 | 字符串(string) | 富文本中的内容,不包括 html 标签 |
图表 | 字符串(string) | 如 com.fr.chart.chartattr.ChartPainter@795d0ccf |
图片 | object | object |
公式 | 取决于公式返回类型 可以是字符串(string)、数字(number)、 日期或数组(object) | 字符串 - 对应的值 数字 - 对应的值 日期或数组 - [object Object] |
7.2 setCellValue(o) 参数说明
setCellValue(o) 的参数说明如下表所示:
参数 | 类型 | 说明 |
---|---|---|
o | Object | 单元格定位描述,及赋的值 |
o参数的格式{reportIndex:0, columnIndex: 2, rowIndex: 1,value: 'aa'},具体说明如下表所示:
名字 | 类型 | 说明 |
---|---|---|
reportIndex | Number | 选填,sheet 编号,从 0 开始 |
columnIndex | Number | 必填,列号,从 0 开始 |
rowIndex | Number | 必填,行号,从 0 开始 |
value | String\number | 必填,值 |
8. 超链编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
8.1 FR.doHyperlinkByGet 函数
函数名 | 概述 | 示例 |
---|---|---|
FR.doHyperlinkByGet | 超级链接,FR 下的工具类方法 可通过FR.doHyperlinkByGet(url,config,target,feature)在任何可以写 JS 的地方进行调用 | 1)点击 CPT 单元格超链,打开子模板并传递参数:
2)点击 CPT 单元格超链,打开子模板并设置标题:
|
FR.doHyperlinkByGet 的参数说明如下表所示:
参数 | 类型 | 说明 |
---|---|---|
url | Object | 必填,URL 或 Json 超链定义 URL 支持绝对路径如http://192.168.100.1:8080/WebReport/ReportServer?reportlet=WorkBook2.cpt 相对路径如/WebReport/ReportServer?reportlet=WorkBook2.cpt 或 ReportServer?reportlet=WorkBook2.cpt |
config | Object | 选填,传递的参数 |
target | Object | 选填,超链子页的打开位置,这个属性移动端无效 |
feature | Object | 选填,超链打开位置的属性,这个属性移动端无效 |
8.2 FR.doHyperlinkByPost 函数
函数名 | 概述 | 示例 |
---|---|---|
FR.doHyperlinkByPost | 超级链接,FR 下的工具类方法,可以通过FR.doHyperlinkByPost(url,config,target,feature)在任何可以写 JS 的地方进行调 用 | 1)点击 CPT 单元格超链,打开子模板并传递参数:
2)点击 CPT 单元格超链,打开子模板并设置标题:
|
FR.doHyperlinkByPost 的参数说明如下表所示:
参数 | 类型 | 说明 |
---|---|---|
url | Object | 必填,URL 或 Json 超链定义 URL 支持绝对路径如http://192.168.100.1:8080/WebReport/ReportServer?reportlet=WorkBook2.cpt 相对路径如/WebReport/ReportServer?reportlet=WorkBook2.cpt 或 ReportServer?reportlet=WorkBook2.cpt |
config | Object | 选填,传递的参数 |
target | Object | 选填,超链子页的打开位置,这个属性移动端无效 |
feature | Object | 选填,超链打开位置的属性,这个属性移动端无效 |
9. 平台操作编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 示例 |
---|---|---|
FS.tabPane.closeActiveTab | 1)关闭当前 Tab 选项页 2)可通过window.parent.FS.tabPane.closeActiveTab()在报表中任何可以用 JS 的地方进行调用 注:不能在参数界面调用。 | CPT 单元格超链 JS 中关闭当前 Tab 选项页:
|
FR.logoutApp | 1)登出,FR工具类下的方法 2)可通过FR.logoutApp()在任何可以写 JS 的地方进行调用 注:不能在参数界面调用。 | 在 CPT 单元格超链 JS 中登出:
|
FS.tabPane.addItem | 1)向决策平台 Tab 栏新增项目 2)可通过window.parent.FS.tabPane.addItem(entry)在报表中任何可以用 JS 的地方进行调用 | CPT 单元格超链 JS 中将超链的子报表在决策平台的新 Tab 中打开:
|
FS.tabPane.addItem 函数的参数说明如下表所示:
参数 | 类型 | 说明 |
---|---|---|
entry | Object | 必填,Tab 项对应的 entry 对象 |
「entry」以json格式提供,属性如下表所示:
属性 | 类型 | 说明 |
---|---|---|
title | String,number | 标签页的标题,字符串和数字都可 |
src | String | 标签页的内容指向的地址 |
10. 图表操作编辑
函数名 | 概述 | 示例 |
---|---|---|
getChart(String name) | 1)获取一个具体的图表的图表对象,先要找到其所在的图表块,可以通过FR.Chart.WebUtils.getChart(chartID)来获取具体的图表块chartWidget 2)参数说明如下所示: 参数:chartID 参数类型:String 参数说明:必填,图表块的唯一标识 ID 注:该函数支持在 App10.0 中使用。 | 1)在表单按钮控件中获取图表对象并刷新:
2)获取图表块 chartWidget :
|
dataRefresh() | 刷新图表数据 可以通过FR.Chart.WebUtils.getChart("name").dataRefresh()在表单中刷新图表对象 注1:不能在 CPT 模板和参数界面中使用。 注2:该函数支持在 App 9.0 和 App 10.0 中使用。 | 在表单按钮控件中获取图表对象并刷新:
注:具体示例可参考 JS获取决策报表内图表块刷新数据 |
chartWidget.getChartWithIndex(chartIndex) | 1)获取具体的图表块对象chartWidget后,便可以使用chartWidget.getChartWithIndex(chartIndex)来获取具体图表对象,默认图表块里面只有一个图表,这时的chartIndex为0; 2)若设置图表切换,即一个图表块内有多个图表时,需要传入具体的chartIndex来获取具体的图表对象,chartIndex 从 0 开始计数,这就意味着如果想获取第 n 个图表,那么传入的chartIndex应该为n-1 3)参数说明如下所示: 参数:chartIndex 参数类型:Num 参数说明:必填,从 0 开始计数 注:该函数支持在 App10.0 中使用。 | 在表单按钮控件中获取图表对象并刷新:
|
chart.series[seriesIndex] | 1)默认的 chart 对象有一个 series 属性,该对象存储的是图表内系列相关的数据信息,为一个对象数组,如果要取其中的某一个具体的系列对象,则需要指定对应的索引seriesIndex,seriesIndex 从 0 开始计数 2)参数说明如下所示: 参数:seriesIndex 类型:Num 备注:必填,指定对应的索引 seriesIndex,从 0 开始计数 注:该函数支持在 App 10.0 中使用。 | -- |
11. Tab 组件操作编辑
函数名 | 概述 | 示例 |
---|---|---|
getShowIndex | 通过getShowIndex获取 Tab 组件当前显示的 Tab 号 注:该函数支持在 App10.0 中使用。 | 参考showCardByIndex函数示例 |
setTabVisible | 1)通过setTabVisible(tabName String, isVisible Boolean)可以实现隐藏部分 Tab 标题 2)参数1说明如下所示: 参数1:tabName 参数1类型:String 参数1说明:必填,Tab 的控件名称,如 Tab0 3)参数2说明如下图所示: 参数2:isVisible 参数2类型:Boolean 参数2说明:必填,Tab 是否可见,ture可见/false隐藏 注1:该函数支持在 App 10.0 中使用。 注2:不能在 tablayout 的初始化事件和参数界面中使用。 | 不同用户可以看到不同的 Tab:
|
showCardByIndex | 1)通过该showCardByIndex(Number cardID)可以实现跳转到指定 Tab 块 2)参数说明如下所示: 参数:cardID 参数类型:Number 参数说明:必填,显示的 Tab 序号,从 0 开始 注:该函数支持在 App10.0 中使用。 | 给 body 添加初始化后事件,实现固定时间间隔内自动循环跳转 Tab :
注:具体示例可参考 JS 实现点击查询后停留在当前查询的 Tab 页、JS实现点击超链切换TAB页 |
12. JSON对象操作编辑
概述 | 操作 |
---|---|
一些请求或者方法返回是 Json 数据,可以通过json.name来获取 name 属性的值 注:该函数支持在 App 9.0 和 App 10.0 中使用。 | 在单元格js中通过FR.Mobile.getDeviceInfo获取设备信息,并且取出其中的 Model 设备型号:
|
13. 其他操作编辑
注:下面函数支持在 App 9.0 和 App 10.0 中使用。
函数名 | 概述 | 示例 |
---|---|---|
FR.cjkEncode | 1)对中日韩文做特殊编码转换,返回转换后的字符串通过FR.cjkEncode(Object text)进行调用,一般配合超链 JS ,对超链中的中文字符进行转码以防止乱码 2)参数说明如下所示: 参数:text 参数类型:Object 参数说明:必填,需要做编码的字符串 | 在 CPT 单元格超链 JS 中超链到中文名字模板:
|
FR.cjkDecode | 1)将cjkEncode处理过的字符串转化为原始字符串通过FR.cjkDecode(Object text)进行调用 2)参数说明如下所示: 参数:text 参数类型:Object 参数说明:必填,需要做解码的字符串 | 在 CPT 单元格超链 JS 中先用FR.cjkEncode对中文进行编码,然后再用FR.cjkDecode进行解码:
|
FR.ajax | 1)封装过的jQuery.ajax()函数,对 data 参数做了中日韩文编码处理,可以通过FR.ajax(options) 在任何可以用 JS 的地方进行调 用 2)参数说明详见 13.1 章节 | 在 CPT 的单元格超链 JS 中发 ajax 请求,且在不同的回调函数中处理不同的情况:
|
setInterval | 1)setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 2)setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。 3)通过setInterval(code,millisec)进行调用 4)参数说明详见 13.2 章节 | 在报表加载结束时间中定义每 3s 刷新一次报表:
|
setTimeout | 1)用于在指定的毫秒数后调用函数或计算表达式。通过setTimeout(code,millisec)进行调用 2)参数说明详见 13.3 章节 | 1)在报表加载结束时间中 3s 后弹出提示:
2)在报表加载结束时间中 3s 后弹出提示:
|
FR.location | 1)FR.location(function(status, message){...})获取当前 GPS 经纬度信息。微信集成中不支持,因为微信必须是 https 下才能获取经纬度 PC 端不支持,执行 JS 无反应 2)参数说明如下所示: 参数:code 参数类型:Object 参数说明:必填,要调用的函数 | 在单元格 JS 中获取当前经纬度:
|
FR.Mobile.getDeviceInfo | 获取设备信息,通过FR.Mobile.getDeviceInfo()进行调用,返回 Json 对象,包含两个属性,一个是设备型号,另外一个是设备唯一 id | 在填报加载结束后事件中,将设备机型和设备唯一 id 赋值给单元格:
|
location.reload | 1)刷新当前页,和手动刷新效果相同 2)如果报表有多页,刷新后返回第一页;如果报表有参数界面,刷新后直接显示上次的参数条件查询后的结果 | 在填报成功事件中写入刷新 JS ,实现填报成功后刷新当前页:
|
window.close | 关闭当前窗口 | 在填报成功事件中写入 JS ,实现填报成功后关闭模板返回目录:
|
FR.remoteEvaluateAsync | 1)返回公式计算的结果,FR工具类下的方法 2)可通过FR.remoteEvaluateAsync(formula,callback)在任何可以写 JS 的地方进行调用 3)如果 formula 为非法的公式,例如if(),则返回#NAME?,如果 formula 不是公式,而是个字符串常量,则返回空 4)参数说明详见本文 13.4 章节 注:使用该接口需要关闭脚本调用公式限制请参见:安全防护 2.3章节 | 在图表自定义标签中使用FR.remoteEvaluateAsync(formula,callback)获取单元格的值:
|
13.1 FR.ajax 参数说明
FR.ajax 函数的参数说明如下表所示:
参数 | 类型 | 说明 |
---|---|---|
options | Object | 必填,ajax参数 |
[options]以json格式提供,属性如下表所示:
属性 | 类型 | 说明 |
---|---|---|
url | String | 必填,发送请求的地址 |
data | Object | 发送到服务器的数据。GET 请求中将自动转换为请求字符串格式,附加在 URL 后。 值必须是Key/Value格式,可以是字符串如p1=pavalue&p2=p2value,或者是对象如{p1:p1value,p2:p2value} |
type | String | 请求方式 POST/GET ,默认为 GET |
dataType | String | 预期服务器返回的数据类型。如果不指定,将自动根据 HTTP 包 MIME 信息来智能判断。可用值有: json:返回 JSON 数据。 text:返回纯文本字符串。 jsonp": 跨域采用 jsonp 方式 |
success | Function | 请求成功后的回调函数:
|
error | Function | 请求失败时调用此函数:
|
complete | Function | 请求完成后回调函数(请求成功或失败之后均调用):
|
timeout | Number | 设置请求超时时间(毫秒) |
async | Boolean | 默认为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false |
13.2 setInterval 参数说明
参数 | 类型 | 说明 |
---|---|---|
code | Object | 必填,要调用的函数或要执行的代码串 |
millisec | Number | 周期性执行或调用 code 之间的时间间隔,以毫秒计 |
13.3 setTimeout 参数说明
参数 | 类型 | 说明 |
---|---|---|
code | Object | 必填,要调用的函数后要执行的 JavaScript 代码串 |
millisec | Number | 在执行代码前需等待的毫秒数 |
13.4 FR.remoteEvaluateAsync 参数说明
参数 | 类型 | 说明 |
---|---|---|
formula | String | 必填,具体公式 |
callback | function | 必填,具体回调方法,可以获取公式计算后的值 |
14. MSG 弹窗编辑
函数名 | 概述 | 示例 |
---|---|---|
FR.Msg.alert | 1)弹出消息的提示对话框 可以通过FR.Msg.alert(Object title, Object message[, Object callback])在任何可以写 JS 的地方进行调用 2)参数说明详见本文 14.1 章节 | 1)点击填报单元格按钮后弹出提示:
2)点击填报单元格按钮后弹出提示,且 2s 后自动关闭:
3)点击填报单元格按钮后弹出提示,点击提示框的确定按钮,触发回调事件并提示:
|
FR.Msg.toast | 1)弹出悬浮提示,5s 自动消失,可以通过FR.Msg.toast(Object message )在任何可以写 JS 的地方进行调用 2)参数说明如下所示: 参数:message 参数类型:Object 参数说明:要显示的消息 | 点击填报单元格按钮后弹出悬浮提示:
|
FR.Msg.confirm | 1)弹出的确认对话框 可以通过FR.Msg.confirm(Object title, Object message[,Object callback, Object min_width ])在任何可以写 JS 的地方进行调用 2)参数说明详见本文 14.2 章节 | 1)点击填报单元格按钮后弹出确认框:
2)点击填报单元格按钮后弹出弹出确认框,且在点击确定和取消按钮的时候,弹出不同的回调提示:
|
FR.Msg.prompt | 1)弹出的输入对话框 可以通过FR.Msg.confirm(Object title, Object message, Object value, Object callback, Object min_width)在任何可以写 JS 的地方进行调用 2)参数说明详见 本文 14.3 章节 | 1)点击填报单元格按钮后弹出输入框: 2)点击填报单元格按钮后弹出弹出输入框,且在点击确定的时候提示输入的值:
|
14.1 FR.Msg.aler 参数说明
FR.Msg.aler 参数说明如下所示:
参数 | 类型 | 说明 |
---|---|---|
title | Object | 必填,消息提示框的标题 |
message | Object | 必填,消息提示框的提示内容 |
callback | Object | 选填,对话框显示以后的回调函数。如果该参数是数字类型,则表明该对话框在指定的时间(单位:毫秒)后自动关闭 |
14.2 FR.Msg.confirm 参数说明
FR.Msg.confirm 参数说明如下所示:
参数 | 类型 | 说明 |
---|---|---|
title | Object | 必填,消息提示框的标题 |
message | Object | 必填,消息提示框的提示内容 |
callback | Object | 选填,点击确认后的回调函数 |
min_width | Object | 选填,确认对话框的最小宽度,这个属性移动端无效 |
14.3 FR.Msg.prompt 参数说明
FR.Msg.prompt 参数说明如下所示:
参数 | 类型 | 说明 |
---|---|---|
title | Object | 必填,输入对话框的标题 |
message | Object | 选填,输入对话框的显示消息 |
value | Object | 选填,输入对话框的默认值 |
callback | Object | 选填,点击确认后的回调函数 |
min_width | Object | 选填,确认对话框的最小宽度,这个属性移动端无效 |
15. 具体使用示例编辑
15.1 获取控件的一系列方法
this.options.form.getWidgetByName("控件名"); //参数界面及决策报表中获取控件
contentPane.getWidgetByCell("单元格"); //填报界面获取控件
contentPane.getWidgetByName("控件名"); //填报界面获取控件
详细请查看 填报成功后自动刷新
15.2 JS 获取决策报表图表、报表块
1)JS 获取决策报表图表组件并刷新数据
详细请查看 JS 获取决策报表图表组件并刷新数据
2)JS 获取报表块刷新和翻页
this.options.form.getWidgetByName('xx').gotoPage(2,{'p1':'123','p2':'234'},true);
详细请查看 JS 获取决策报表报表块
15.3 延时函数
setTimeout(function(){},500);
15.4 刷新
1)当前页刷新
location.reload()
详细请查看 当前页刷新
2)定时刷新,支持定时 JS,以及取消定时
setInterval('location.reload();',10000);//时间单位为 ms,即每 10s 刷新一次页面
var timer = setInterval('location.reload();',10000);clearInterval(timer);//取消定时
详细请查看 定时刷新 JS
15.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); //定位失败
}
});
详细请查看 获取地理位置
15.6 查询
查询操作,不管是 cpt 还是 frm,参数界面上会有内置查询按钮,用户可以不用内置查询,通过 JS 来触发查询操作
1)普通报表可以通过下面两种方式触发
contentPane.parameterCommit()
_g().parameterCommit()
2)决策报表只能通过下面一种方式触发
_g().parameterCommit()
详细请查看 决策报表自动查询 JS
详细请查看 扫码输入查询
15.7 超级链接
FR.doHyperlinkByGet({url:'${servletURL}?viewlet=JS 超链自定义标题子表.cpt',title:'
标题是我',para:{area:'华北'}});
注:title 只在 App 中支持
详细请查看 JS 超链自定义标题
15.8 登出 App
FR.logoutApp();
详细请查看 登出 App 的 JS
15.9 获取控件显示值与实际值
var Widget = this.options.form.getWidgetByName("t1");
//在参数界面获取控件的方法,先获取决策报表,再通过控件名称来获取控件
var value_1 =Widget.getValue(); //获取控件实际值
alert('我的实际值是:'+value_1); //弹出控件实际值
var value_2 =Widget.getText(); //获取控件显示值
alert('我的显示值是:'+value_2); //弹出控件显示值