反饋已提交

網絡繁忙

填報JS API說明

1. 概述

APIAPI匯總 中公共模組和填報預覽專有的API,都支援在填報預覽下使用。

2. API索引

2.1 元件API

填報範本,會存在參數面板上的元件和填報儲存格中的元件。

獲取參數面板上的元件,可參考:參數面板API

獲取填報儲存格中的元件,可參考:填報預覽專有

兩者都支援的可參考 獲取元件,但僅支援在元件的「事件」中使用。

獲取元件後,可以使用元件的方法,元件方法可參考:元件通用日期元件專有下拉框元件專有按鈕元件專有

2.2 儲存格API

獲取儲存格、給儲存格指派,獲取和設定儲存格值API

2.3 工具欄API

獲取工具欄,可參考:工具欄

對工具欄中按鈕操作,可參考:工具工具欄按鈕通用郵件按鈕專有

2.4 填報頁面API

填報頁面API,可參考:填報預覽專有

2.5 訊息API

訊息API可參考:FR.Msg

2.6 其他API

其他API可以可參考:APIAPI匯總

3. 注意事項

1)如果是在初始化事件中使用 JS 但未生效,可以嘗試加上延時函式 setTimeout。範例如下:

setTimeout(function() {
_g().getWidgetByCell("A1").setEnable(false);
//將A1儲存格元件設定為不可用
}, 500)
//延時0.5s執行

2)當使用了延時函式 setTimeout 時,this 物件就會失效,可以將 this 放在延時函式外進行指派呼叫來避免。範例如下:

var widget=this;
setTimeout(function() {
widget.setEnable(false);
//將當前元件設定為不可用
}, 500)
//延時0.5s執行

3)當清空儲存格元件時,建議同時清空元件值和儲存格值,否則可能會出現清空失敗的情況。範例如下:

_g().getWidgetByCell("A1").setValue("");
//清空A1儲存格元件值
_g().curLGP.setCellValue("A1", "");
//清空A1儲存格值

注:給儲存格元件指派時同理,最好同時給元件和元件所在儲存格都指派

4)如果元件設定了不能為空,則會使清空失效。設定了不允許自訂值,則只能賦資料字典中存在的值:

5)如果 Widget 是一個元件陣列,則不能直接呼叫相關方法,需要透過遍歷來實現。範例如下:

var widgets = _g().getWidgetsByName("demo");
//獲取元件名稱為demo的元件陣列
for (i = 0; i < widgets.length; i++) {
widgets[i].setEnable(false);
//遍歷禁用元件
}

6)填報預覽下,用儲存格編號獲取的儲存格是一個具體的儲存格,不會自動識別擴展場景。

比如 A1 擴展出 3 筆資料,用 JS 給 A1 指派時,就只是賦給第一筆資料。此時可以用公式獲取 A1 擴展出的資料個數,遍歷執行相關方法。

範例如下,其中 len 參數為公式 len(A1) 的值。

for (i = 0; i < len; i++) {
_g().setCellValue(0, 0, i, "帆軟")
//給A1擴展出的所有儲存格指派
}

7)儲存格元件和其所在的儲存格是 2 個獨立的元素,在大部分填報獲取儲存格值和給儲存格指派的場景下,都需要直接對儲存格進行操作,而不是元件,否則可能出現獲取不到正確值的問題。

有種特殊情況是,當元件填入值未失焦的情況下,此時元件值還未寫入儲存格,所以這時就需要用獲取元件值的API去獲取該輸入值。


附件列表


主題: 填報應用
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉