當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JS實現點擊按鈕切換Sheet頁

1.概述

1.1 問題描述

當報表有多個 Sheet 時,可以通過參數面板上按鈕跳轉到指定的 Sheet 頁。如下圖所示:

2020-10-20_17-13-05 (1).gif

1.2 實現思路

通過給參數面板上按鈕添加 JS 事件,事件中定位到對應 Sheet 實現。

2. 示例

2.1 準備模板

1)新建模板,在參數面板上添加 4 個「按鈕控件」,控件名稱分别爲首頁、上一頁、下一頁、尾頁。如下圖所示:

image.png

2)添加多個 Sheet 頁,在每個 Sheet 頁中添加紅色辨識語句。如下圖所示:

image.png

2.2 添加事件

1)選中首頁「按鈕控件」,爲其添加一個「點擊」事件,實現點擊按鈕時跳轉到 Sheet1 頁。如下圖所示:

image.png

JavaScript 代碼如下:

//跳轉到首頁(因爲下标是從0開始) fr-sheetbutton-container爲sheet頁的集合
$(".fr-sheetbutton-container").eq(0).trigger("click");

2)同樣的方法爲上一頁、下一頁、尾頁「控件按鈕」添加「點擊」事件。事件内容如下:

上一頁 JavaScript 代碼:

//fr-sheetbutton-container爲sheet頁的集合,獲取集合長度
var len = $(".fr-sheetbutton-container").length;
//獲取當前選中sheet所在下标位置
var index = $(".fr-sheetbutton-container").index($(".fr-sheetbutton-container-active"));
//如果當前下标爲0 表示爲首頁。
if(index > 0) {
//不是首頁跳轉到上一頁
    $(".fr-sheetbutton-container").eq(index - 1).trigger("click");
}else{
//當前爲首頁跳轉到最後一頁(因爲下标從0開始,所以要長度減1)
$(".fr-sheetbutton-container").eq(len - 1).trigger("click");
}

下一頁 JavaScript 代碼:

//fr-sheetbutton-container爲sheet頁的集合,獲取集合長度
var len = $(".fr-sheetbutton-container").length;
//獲取當前選中sheet所在下标(下标從0開始)
var index = $(".fr-sheetbutton-container").index($(".fr-sheetbutton-container-active"));
if(index < len) {
//如果當前下标index比len長度小1 表示已經爲最後一頁。
    if(index == (len - 1)) {
       //當前爲最後一頁。跳轉到首頁
        $(".fr-sheetbutton-container").eq(0).trigger("click");
    } else {
       // 不爲最後一頁。跳轉到下一頁
        $(".fr-sheetbutton-container").eq(index + 1).trigger("click");
    }
}

尾頁 JavaScript 代碼:

//fr-sheetbutton-container爲sheet頁的集合,獲取集合長度
var len = $(".fr-sheetbutton-container").length;
//跳轉到尾頁(因爲下标是從0開始) 所以得長度減1
$(".fr-sheetbutton-container").eq(len-1).trigger("click");

2.3 效果預覽

保存模板,點擊「填報預覽」或「數據分析」預覽,效果如下圖所示:

2020-10-20_17-13-05 (1).gif

注:不支持移動端。

3. 模板下載

已完成模板可參考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\參數界面JS實例\JS實現點擊按鈕切換Sheet頁.cpt

點擊下載模板:JS實現點擊按鈕切換Sheet頁.cpt

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

10s後關閉

反饋已提交

網絡繁忙