Java報表軟件技術討論

          Style Report報表專題
          posts - 97, comments - 3, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2012年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          文章檔案(3)

          Style Report官網

          報表知識(第三方)

          搜索

          •  

          最新評論

          交叉表(Cross Tabulations)是一種常用的分類匯總表格。使用交叉表查詢,顯示源于表中某個字段的匯總值,并將它們分組,其中一組列在數據表的左側,另一組列在數據表的上部。行和列的交叉處可以對數據進行多種匯總計算,如:求和、平均值、記數、最大值、最小值等。使用交叉表查詢數據非常直觀明了,被廣泛應用。

           

          交叉報表是報表當中常見的類型,屬于基本的報表,是行、列方向都有分組的報表。這里牽涉到另外一個概念即分組報表。這是所有報表當中最普通,最常見的報表類型,也是所有報表工具都支持的一種報表格式。從一般概念上來講,分組報表就是只有縱向的分組。傳統的分組報表制作方式是把報表劃分為條帶狀,用戶根據一個數據綁定向導指定分組,匯總字段,生成標準的分組報表。

           

           

          例如下圖是典型的分組交叉表格是一份銷售人員銷售情況的匯總表,其中垂直方向是對銷售收入來源進行的分組(包括銷售地區、客戶信息), 而水平方向中則是對銷售收入和平均價格進行匯總。此匯總表復雜百出,涉及到縱向分組,又涉及到橫向求和。

          java報表工具技巧--交叉分部報表制作

          接下來看用Style Report 這款java報表工具如何實現此表的制作,過程步驟比較多,請耐心閱讀:

           

           

          1. 打開報表設計器,在工具欄中選擇“新建”。 在“新建資源”對話框中,選擇“空白表格式報表”。

           

          2. 在報表的空白處點擊右鍵菜單,選擇“腳本”選項,然后打開報表腳本編輯窗口。

           

          3. 在報表腳本編輯窗口的“裝載”標簽下輸出腳本:

           

              var q1 = runQuery('customers');

           

              var q2 = runQuery('Order details');

           

          以上腳本是將兩個報表數據查詢('customers' 和 'Order details')中的數據存放在q1,q2兩個變量中。

           

          4. 關閉報表腳本編輯窗口,在右側的工具箱中選擇”表格“組件,放入報表中。

           

          5. 點擊表格,打開右鍵菜單,在右鍵菜單中選擇”表格->轉換為公式表“。

          java報表工具技巧--交叉分組報表制作

          6. 點擊表格,打開右鍵菜單,在右鍵菜單中選擇”屬性”,打開表格屬性窗口,選擇“標題和結尾”標簽,在表格行中輸入“6”,在表格列中輸入“4”,標題行為“0”。 
          java報表工具技巧--交叉分組報表制作

          下面的步驟中進行垂直方向上的數據分組設定,數據分組為兩層分組,分別是地區和客戶。

           

          7. 點擊表格中cell[2,0]單元格(第三行,第一列),在下方的表格屬性窗口中選擇“數據“標簽,然后在公式輸入框中輸入以下腳本:

           

              toList(q1['state']);

           

          q1['state']是提取“customers”數據查詢中的“state"列的數據,toList 函數的作用是獲取q1['state']中沒有重復記錄的所有數據。

           java報表工具技巧--交叉分組報表制作

          8. 在屬性窗口,選擇”擴展單元格“和”垂直“方向的擴展。這個設置的作用是將表格單元格按照真實的數據列進行擴展。

           

          9. 設置表格單元格的名稱為"st",然后點擊”應用“按鈕。

          java報表工具技巧--交叉分組報表制作

          10. 按住”Shift“鍵同時選中 cell[3,0]和 cell[4,0]兩個表格單元格,然后打開右鍵菜單,在右鍵菜單中選擇”表格->合并單元格“。
          11. 在下方的屬性窗口中選擇“數據“標簽”,然后在公式輸入框中輸入以下腳本:
              toList(q1['company_name@state:$st']);
          q1['company_name@state:$st']是提取“customers”數據查詢中的“company_name"列的數據結果,并且”company_name“將根據對應的”state“列進行分組。
          12. 在屬性窗口,選擇”擴展單元格“和”垂直“方向的擴展,設置單元格的名稱為"comp",在行分組中選中”st“,然后點擊”應用“按鈕。java報表工具技巧--交叉分組報表制作

          通過以上的步驟,垂直方向上的兩層分組(第一層:state,第二層:company_name)就被建立完成了

           

          13. 按住”Shift“鍵同時選中 cell[0,3]和 cell[1,3]兩個表格單元格,然后打開右鍵菜單,在右鍵菜單中選擇”表格->合并單元格“。

           

          給對應的表頭加上對應的文字。

           

          Cell[0,1] = '數量合計'

           

          Cell[0,2] = '毛利額'

           

          Cell[1,1] = '平均單價'

           

          Cell[1,2] = '折扣金額'

           

          Cell[5,0] = '銷售合計'

           

          Merged Cell[0,3] = '凈收入'
          java報表工具技巧--交叉分組報表制作


          14. 創建合計列,合計列是指定數據列的聚合,合計列被加入到最低層的分組上。加入下面的公式到對應的表格單元格中。

           

          在 Cell[3,1]單元格中插入:

           

              sum(q2['Quantity@Company:$comp']);

           

          在 Cell[4,1]單元格中插入:

           

              average(q2['Price@Company:$comp']);

           

          在 Cell[3,2]單元格中插入:

           

              sum(q2['Total@Company:$comp']);

           

          在 Cell[4,2]單元格中插入:

           

              sum(q2['=Total*Discount@Company:$comp']);

           

          設置Cell[3,2]表格單元格的名稱為:"grossRevenue"

           

          設置Cell[4,2]表格單元格的名稱為:"discountRevenue"

           

          15. 創建凈收入數據列,"凈收入=總收入-折扣金額"。首先合并表格單元格,按住”Shift“鍵同時選中 cell[3,3]和 cell[4,3]兩個表格單元格,然后打開右鍵菜單,在右鍵菜單中選擇”表格->合并單元格“。然后在合并的表格單元格輸入以下腳本:

           

              $grossRevenue-$discountRevenue;

           

          16. 設置合并的表格單元格的名稱為”netRevenue“ ,凈收入為每個地區中客戶的凈收入。

           

          17. 設置Cell[2,3]表格單元格的腳本為:

           

              sum($netRevenue);

           

          此凈收入為每個地區的合計

           

          18. 設置Cell[5,3]表格單元格的腳本為:

           

              sum($netRevenue);

           

          此凈收入為所有地區的總計

          java報表工具技巧--交叉分組報表制作

          最后依照最初的表格,在各表格單元格中設置字體格式、數字格式等。點擊Preview即可得到此表: 

          java報表工具技巧--交叉分組報表制作

           

           

           

          主站蜘蛛池模板: 肥乡县| 高雄市| 锡林郭勒盟| 石家庄市| 庆安县| 玛曲县| 开原市| 博兴县| 陕西省| 葫芦岛市| 长葛市| 广宁县| 昂仁县| 石泉县| 三亚市| 沙坪坝区| 米易县| 许昌市| 饶河县| 玉田县| 合作市| 汝州市| 陈巴尔虎旗| 石景山区| 青河县| 贵阳市| 灌云县| 宜宾市| 沭阳县| 广安市| 富蕴县| 昆明市| 秦皇岛市| 郴州市| 绥德县| 汾阳市| 富阳市| 东辽县| 阿城市| 高碑店市| 屏南县|