反饋已提交

網絡繁忙

JS實現批量匯出多个範本

一、概述

  1. 使用場景:從主表勾選資料,將多個子表以 Excel 的形式匯出。

  2. 實現思路:主表新增自訂按鈕,給按鈕新增點擊事件,獲取勾選的複選框,批量匯出指定子表。

二、範例

1
設計主表。
  1. 準備資料:建立普通報表,新增資料庫查詢,SQL 語句為:select * from 訂單 limit 10 。如下圖1所示。

  2. 設計表格:如下圖設計表格,將欄位拖曳入到對應儲存格中。

    A1 儲存格:新增按鈕元件,元件名自訂。

    A3 儲存格:新增複選按鈕元件,此處注意複選按鈕元件左父格需設定為 B3。如下圖2所示。

  3. 新增事件:選中 A1 儲存格,进入【元件设定】新增點擊事件,输入JavaScript 代碼如下。如下圖3所示。

  4. 報表效果:儲存報表,重命名為【批量匯出_主表】,點擊【填報預覽】,預覽下主表的效果,如下圖4所示。


image.png

 

image (1).png

 

image (2).png

 

image (3).png


var $span = $('.fr-checkbox-checkon'); //獲取選中的複選框。
var $tds = $("td").has($span); //定義選中複選框的儲存格。
var $trs = $("tr").has($tds);
for (var i = 1; i < $trs.length; i++) {
var name = $("td:eq(2)", $($trs[i])).find("div").html();  //獲取選中的C3儲存格的值。
//alert(name);
window.open("http://localhost:8075/webroot/decision/view/report?viewlet=%25E6%2589%25B9%25E9%2587%258F%25E5%25AF%25BC%25E5%2587%25BA_%25E5%25AD%2590%25E8%25A1%25A8.cpt&op=write&id="+name+"&format=excel&extype=simple"+"&__filename__="+name);
} //子報表設計完成後,點擊填報預覽,將子表的URL複製到&id之前。

 

2
設計子表。
  1. 準備資料:建立普通報表,建立資料集,如下圖1所示。SQL 語句為:
    select
    d.訂單ID,d.貨主名稱,d.貨主位址,d.訂購日期,dm.產品ID,dm.單價,dm.數量,dm.進價,dm.折扣
    from 訂單 d
    left join 訂單明細 dm on d.訂單ID=dm.訂單ID
    where d.訂單ID='${ID}'

  2. 設計表格:如下圖設計表格,將欄位拖曳入到對應儲存格內。如下圖2所示。

  3. 儲存報表:儲存報表,重命名為【批量匯出_子表】,點擊【填報預覽】,將子表的 URL  copy到主表點擊事件的代碼中。

  4. 效果預覽:主表點擊【填報預覽】,複選幾個子訂單,點擊【匯出】按鈕,即可匯出對應的子表,如下圖所示。

注:不支援行動端。

 

image (4).png

 

image (5).png

 

2.gif

 

3. 範本下載

  1. 點擊下載範本。

注:如果發現點擊後,只匯出一個 Excel 的話,在確認代碼無誤的情況下,需要把瀏覽器的禁止彈窗設為允許。

批量匯出_子表.cpt

批量匯出_主表.cpt


附件列表


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

文 檔回 饋

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

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

不再提示

10s後關閉