報表資料來源之多結果集,報表資料來源
多樣性資料來源在報表開發中越來越常見,潤乾集算報表對多樣性資料來源的有效支援使得這類報表開發變得非常簡單,目前集算報表除了支援不同類型的資料來源(RDB、TXT文本、Excel、JSON、HTTP、Hadoop、mongodb)外,還支援在一個資料集中為報表返回多個結果集使用,這樣可以有效避免重複運算,提升報表開發效率和運算效能。下面通過一個執行個體說明多結果集的使用過程。
報表說明
根據學產生績表查詢總成績前三名和後三名的學生姓名以及總成績。報表樣式如下:
由於要分別顯示前三名和後三名學生姓名和成績,報表自然地分成了兩部分。這兩部分資料如果使用一個資料集會需要隱藏格輔助,使用兩個資料集則比較簡單,一個資料集基於未經處理資料進行分組匯總、按總成績降序排序後取前三名,第二個資料集按升序取前三名。但這個過程又會發生重複計算(分組匯總和排序),通過集算器返回多結果集則不會有這個問題。下面是實現過程。
編寫集算指令碼
使用集算指令碼編輯器編寫計算指令碼,完成資料計算及資料來源準備工作。
A1:串連資料來源demo;
A2:執行sql查詢學產生績表資料;
A3:按照學生分組,匯總成績;
A4:使用A.top()函數按照總成績取前三條記錄;
A5:使用A.top()函數按照總成績取後三條記錄;
A6:將前後三名記錄以兩個結果集返回。
編輯報表範本
串連報表資料來源demo。
設定資料集
使用集算報表設計師建立報表範本,並設定集算器資料集,調用上面編輯好的指令碼。由於指令碼中返回2個結果集,在資料集設定中,需要手動填寫資料集名稱為“ds1,ds2”,多個資料集名稱之間以逗號分隔。
其中,dfx檔案路徑既可以是絕對路徑,也可以是相對路徑,相對路徑是相對選項中配置的dfx主目錄的。
資料集展現形式:
設定報表運算式
編輯報表運算式,直接使用集算指令碼返回的2個結果集,使用簡單的列表運算式,完成報表製作。
可以看到,使用集算器指令碼可以為報表輸出多個結果集,而且外置的集算指令碼具有可視化的編輯調試環境,編輯好的指令碼還可以複用(被其他報表或程式調用)。不過,如果指令碼已經調試好,而且不需要複用的時候,要維護兩個檔案(集算指令碼和報表範本)的一致性會比較麻煩,這時候直接使用集算報表的指令碼資料集就比較簡單了。
在指令碼資料集中可以分步編寫指令碼完成計算任務,文法與集算器一致,還可以直接使用報表定義好的資料來源和參數。使用指令碼資料集可以這樣完成:
1. 在資料集設定視窗中點擊“增加”按鈕,彈出資料集類型對話方塊,選擇“指令碼資料集”;
2. 在彈出的指令碼資料集編輯視窗中編寫指令碼。
在指令碼資料集中直接使用報表定義的資料來源demo進行查詢,而不必像獨立的集算指令碼一樣必須使用connect()函數串連資料來源。
報表運算式與使用集算器資料集方式一致,不再贅述。