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