潤乾集算報表如何?報表分組內排序,報表

來源:互聯網
上載者:User

潤乾集算報表如何?報表分組內排序,報表

        報表開發中,經常會碰到一些需要進行非常規統計的報表,預置分組、可重複分組、組內排序,還包括跨行組計算的報表,甚至有些報表本身無資料來源、以及需要對資料來源再計算。這些報表本身具備一定的特殊性,使用常規方法往往難於實現。

         本文通過一個例子來瞭解集算報表在製作此類特殊統計報表的便捷過程。

報表說明

         根據銷售管理系統資料統計某年客戶所在地區的訂單總額,地區並按訂單總額降序排列,要求每個地區中顯示銷售額在前五名的銷售人員及其訂單數量和訂單金額,其他人員歸入“其他”項中。報表樣式如下:


         應該注意的是地區分組中如果銷售人數少於5個則不顯示“其他”項(如中的華東地區)。這個報表的麻煩之處在於需要較複雜的資料計算工作,但一般報表工具的計算能力較弱,如果採用報表工具本身來完成這個計算工作則會相當複雜,比如採用用潤乾報表來實現將會是這樣的:

         在潤乾報表中,使用ds.group()的多個參數,結合條件判斷隱藏行,多種使用方法結合完成了報表開發,可見潤乾報表的強大之處。

         但是由於要按照分組後匯總的訂單金額排序,所以在B3的分組運算式中應用ds1.sum(訂單金額)運算式作為ds.group()的參數,對於未經處理資料量較大的情況下,該運算式效率較低;而且,由於只顯示前5名銷售,在C3(排名)和D3(其他)中設定了隱藏行運算式,對於分組較多的情況仍然會存在效能問題;另外需要在E3和F3中使用格集過濾運算式計算其他銷售人員合計,計算時要帶著單元格屬性計算,效率仍然不高。

         潤乾報表已經是計算能力很強的報表工具了,採用其它報表工具只會更麻煩甚至實現不了。

 

         另一種辦法是事先把資料計算準備好,報表工具只需要負責呈現和簡單計算。但無論是使用複雜SQL、預存程序和自訂JAVA資料集編程,對於這樣的複雜運算(實際情況往往比這個例子更麻煩得多)都是一件工作量很大的事情,而且難以維護。

         集算報表本身內建了適合結構化計算的指令碼,可以方便地寫出資料準備的計算(相當於一種更使用更簡單的自訂資料集)。上述報表需求使用集算報表可以這樣完成:

編寫集算指令碼

         首先使用集算指令碼編輯器設定指令碼參數。

         編寫指令碼完成資料分組匯總以及排序等運算。


         A1:建立資料庫連接;

         A2:執行sql根據年份參數查詢訂單資訊,得到初步匯總訂單資料;

         A3:按照地區分組後組內成員按訂單金額排序。

         A4-C8:迴圈A3,取前五名記錄,並將超過第五的記錄都歸入“其他”項,結果寫回A3。

         A9:結果按地區總額降序排列後返回給報表。

編輯報表範本

         使用集算報表編輯器,設定資料來源,用於報表預覽。

         建立報表參數,並設定預設值。

         建立報表並設定集算器資料集,調用上述編輯好的指令檔。

         其中,dfx檔案路徑既可以是絕對路徑,也可以是相對路徑,相對路徑是相對選項中配置的dfx主目錄的;參數year為報表範本參數,d_year為指令碼參數,可以設定二者重名。

 

         編輯報表運算式,直接使用集算指令碼返回的結果集,完成報表製作。

         對於排名,需要設定B2格左主格為C2,並設定B2顯示值運算式if(B2>5,"--")。

 

         使用集算器指令碼可以快速完成組內排序類報表,外置的集算指令碼具有可視化的編輯調試環境,編輯好的指令碼還可以複用(被其他報表或程式調用)。不過,如果指令碼已經調試好,而且不需要複用的時候,要維護兩個檔案(集算指令碼和報表範本)的一致性會比較麻煩,這時候直接使用集算報表的指令碼資料集就比較簡單了。

         在指令碼資料集中可以分步編寫指令碼完成計算任務,文法與集算器一致,還可以直接使用報表定義好的資料來源和參數。本例使用指令碼資料集可以這樣完成:

         1.  在資料集設定視窗中點擊“增加”按鈕,彈出資料集類型對話方塊,選擇“指令碼資料集”;

         2.  在彈出的指令碼資料集編輯視窗中編寫指令碼;

         這裡可以看到,在指令碼資料集中直接使用了報表中定義好的資料來源demo,比起單獨的集算指令碼更加簡單、直接。

         3.  報表範本和運算式與使用集算器資料集方式一致,不再贅述。


集算報表的:http://www.raqsoft.com.cn/?p=208 .

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.