上一次講了這三種主流的報表工具在數據源支持上的差異,這次要說一下最近正在關注的統計展現的不同。
直接進入主題,從數據擴展上面開始講,finereport報表動態返回數據記錄,單元格綁定的數據可自動進行擴展,支持全界面和書寫表達式兩種設置方式;RQ動態返回數據記錄,單元格綁定的數據可自動進行擴展,支持全界面和書寫表達式兩種設置方式;而水晶報表不支持,是傳統條帶狀工具。
行列對稱這個功能:finereport數據的擴展,并非像傳統的分組報表只能縱向的擴展,而是天然支持行列對稱,不需要寫一行代碼,設計橫向報表;RQ數據的擴展,并非像傳統的分組報表只能縱向的擴展,而是天然支持行列對稱,不需要寫一行代碼,設計橫向報表;水晶報表不支持。
單元格附屬關系:finereport綁定數據列后的單元格之間并非平行關系,而是存在附屬關系。附屬格跟隨其父格擴展;RQ綁定數據列后的單元格之間并非平行關系,而是存在附屬關系。附屬格跟隨其父格擴展。;水晶報表不支持。
分組/列表:finereport可合并數據列當中的內容相同的值,返回給報表,即一般意義上的分組。或者不進行合并,按照數據庫中的原樣返回到報表中;RQ可合并數據列當中的內容相同的值,返回給報表,即一般意義上的分組。或者不進行合并,按照數據庫中的原樣返回到報表中;水晶報表支持,不同報表區域的數據展示方式不同,分組眉,分組腳即為分組形式,主體區為列表數據。
數據匯總:finereport對數據進行求和,平均,個數統計等等。另外,還有頁內匯總,組內匯總等等多種匯總方式;RQ對數據進行求和,平均,個數統計等等。另外,還有頁內匯總,組內匯總等等多種匯總方式;水晶報表在指定的分組眉,分組腳區域進行簡單的匯總。
公式分組:finereport對數據記錄,并不是簡單地按照值進行分組,而是根據一定的公式邏輯的計算結果進行分組;RQ通過單元格編輯表達式來實現;水晶通過單元格編輯表達式來實現;水晶報表不支持。
高級分組:finereport數據并非枚舉,而是可能需要按照分段分組,或者其它不規則的劃分;RQ支持分段式分組;水晶報表支持簡單的分段式分組。
多數據源關聯:finereport數據可以來自于多個不同的數據源,多個不同物理數據庫,或不同類型的數據源;RQ數據可以來自于多個不同的數據源,多個不同物理數據庫,或不同類型的數據源;水晶報表不支持,需要事先通過SQL將多個數據集拼合到一起。
數據形態:finerepor包括數據字典和公式形態,數據字典是將報表設計的實際值和預覽顯示值的轉換,主要用于關系表的數據轉換;RQ通過實際值和顯示值來達成數據形態;水晶報表不支持。
層次坐標:finereport對報表擴展后的數據,進行定位,從而可以設計同期比,占比,累計,排名等傳統的工具無法實現的報表;RQ對報表擴展后的數據,進行定位,從而可以設計同期比,占比,累計,排名等傳統的工具無法實現的報表;水晶報表不支持。
編號:finereport對擴展后的數據進行編號,或者自定義編號列表;RQ對擴展后的數據進行編號,或者自定義編號列表;水晶報表不支持。
子報表:finereport單元格內支持子報表,可以把報表劃分成互不影響的邏輯塊;RQ單元格內支持子報表,可以把報表劃分成互不影響的邏輯塊;水晶報表單元格內支持子報表,可以把報表劃分成互不影響的邏輯塊。
公式運算:finereport增加了多種常用但EXCEL不支持的公式,特別是針對時間的公式運算,同時頁眉頁腳等處也增加了公式運算的支持。同時具有公式擴展功能;RQ增加了多種常用但EXCEL不支持的公式,特別是針對時間的公式運算,同時頁眉頁腳等處也增加了公式運算的支持。同時具有公式擴展功能;水晶報表支持一些簡單的公式。
組織遞歸樹:finereport針對ID,PREID形式的數據,可以自動進行組織遞歸樹分層,無需多層過濾條件,同時也提升此類報表的執行性能;RQ不支持;水晶報表不支持。
總結:finereport可以制作分組報表,交叉表,多層交叉表,明細表,主從報表,分為多片的報表,以及其它任意不規則的報表類型;RQ可以制作分組報表,交叉表,多層交叉表,明細表,主從報表,分為多片的報表,以及其它任意不規則的報表類型;水晶報表僅支持簡單的分組報表,明細報表,交叉表,主子表。對復雜的中國式報表僅能通過編程來實現。