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 |