1. 概述
决策报表中,使用 JavaScript 对一些功能进行二次开发时,部分接口和普通报表一致,同时也会具有一些决策报表特有的接口,如实现指定隐藏 Tab 块的接口。本文将列举一些决策报表适用的 JS 接口,用户可通过学习,开发实现一些功能。
2. 接口
2.1 控件
2.1.1 获取控件
1)获取的控件在参数面板内,Component为控件名称:this.options.form.getWidgetByName('Component')
2)获取的控件在 body 内,Component为控件名称:_g().getWidgetByName('Component')
注1:按钮在 body 中时,使用 this.options.form.getWidgetByName('Component') 取不到参数面板中控件。
注2:body 上添加事件通过_g().getWidgetByName('Component')获取控件时需要加 setTimeout() 延迟函数。
2.1.2 控件方法
获取控件后,可对控件进行一些设置。对控件可执行的方法如下表,Widget 为获取的控件。
方法名 | 方法 | 说明 |
---|---|---|
取实际值 | Widget.getValue() | 获取控件实际值 |
取显示值 | Widget.getText() | 获取控件的显示值 |
赋实际值 | Widget.setValue() | 给参数控件赋值,不建议给填报控件赋实际值 注:使用setValue()给下拉树赋值,需要添加一个 false 参数,即 setValue(value,false) |
赋显示值 | Widget.setText() | 给参数控件赋显示值 |
重置 | Widget.reset() | 清空数据 |
是否可见 | Widget.isVisible(boolean) | 返回控件是否可见,返回 true 可见,false 不可见 |
设置可见 | Widget.setVisible(boolean) | 设置控件是否可见,参数为 true 可见,false 不可见 |
设置可用 | Widget.setEnable(boolean) | 设置控件是否可用,参数为 true 可用,false 不可用 |
是否可用 | Widget.isEnabled() | 返回控件是否可用,返回 true 可用,false 不可用 |
调用控件事件 | Widget.fireEvent("事件名称") | 设置控件触发指定名字的事件 |
是否可以为空 | Widget.options.allowBlank=false | 设置控件是否可为空,true 可为空,false 不可为空 |
2.2 报表块和图表块
2.2.1 获取报表块和图表块
加获取事件的控件在参数面板内,Component为控件名称:_g().getWidgetByName('Component')
加获取事件的控件在 body 内,Component为控件名称:this.options.form.getWidgetByName('Component')
注:body 上添加事件通过_g().getWidgetByName('Component')获取控件时需要加 setTimeout() 延迟函数。
2.2.2 方法
获取报表块或图表块后,可进行一些设置。可执行的方法如下表,Widget 为获取的图表块或报表块。
方法名 | 方法 | 说明 |
---|---|---|
设置可见 | Widget.setVisible(boolean) | 设置控件是否可见,参数为 true 可见,false 不可见 |
2.3 Tab块
2.3.1 获取 tabpane 块
加获取事件的控件在参数面板内,tabpane 为整体 Tab 块的名称:_g().getWidgetByName('tabpane')
加获取事件的控件在 body 内,tabpane 为整体 Tab 块的名称:this.options.form.getWidgetByName('tabpane')
注:body 上添加事件通过_g().getWidgetByName('tabpane')获取控件时需要加 setTimeout() 延迟函数。
2.3.2 方法
方法名 | 方法 | 说明 |
---|---|---|
设置可见 | setTabVisible(Tabarry, boolean) | Tabarry 为一个数组显示,用来定位具体为哪一个 Tab, boolean 设置是否可见,参数为 true 可见,false 不可见 |
获得 Tab 的索引 | getShowIndex() | 获得当前展示 Tab 的索引 |
展示 Tab | showCardByIndex(index) | 展示定位的 Tab ,index 为 Tab 的索引 |
2.4 刷新
方法名 | 方法 | 说明 |
---|---|---|
跳转到指定页(可以用于刷新当前报表块) | gotoPage( pn, para, noCache ) | pn : Number 要跳转的页,从1开始 para : JSON 跳转页面是携带的参数 noCache : Boolean 不是用缓存,强制取新的数据 |
提交参数并加载报表内容 | _g().parameterCommit() | 提交参数并加载报表主体内容 |
2.5 其他
以下 JavaScript 语法相关的内容,可结合帆软提供的接口用在报表开发中。
应用 | 应用说明 | |
---|---|---|
setInterval('location.reload();',time) | setInterval() 方法可按照指定的周期(time,以毫秒计)来调用函数或计算表达式。 location.reload(forceGet) 重新载入当前文档 setInterval('location.reload();',time) 定时刷新,即每time毫秒刷新一次 | |
window.location | 用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。 | |
encodeURI(url) | encodeURI 函数可把字符串进行 URL 编码,url 为含有 URI 或其他要编码的文本 | |
window.parent | parent 属性返回当前窗口的父窗口 | |
location.href | href 属性是一个可读可写的字符串,可设置或返回当前显示的文档的完整 URL |