FacebookTwitterLineHatena

報表表格設計器

Excel表格的設計風格

企業在選擇報表表格解決方案時,不僅要考慮報表表格製作軟體的功能和服務,還要考慮它是否易學、易用。國內用戶都非常熟悉Excel,也經常用它做些簡單的報表,所以我們從設計的方便性出發,研究出了貼近Excel使用習慣的報表表格設計器。擁有excel設計風格的FineReport設計器,不但能快速解決複雜的報表製作難題,提高報表的製作效率,而且能大大降低設計人員的學習成本,提高企業的經濟效益。

FineReport報表的設計風格和Excel相似(當然二者本質並不一樣),整個設計窗口是格子式的視覺化編輯界面。用戶可以藉助這個界面所見即所得的設計出任意複雜的表樣,而且免去了傳統條帶式設計數據對齊的繁瑣,使得報表製作的效果得以大大提高。

三層架構設計

傳統的報表表格製作軟體在內網中工作時,需要將設計器和報表工程都部署到伺服器上,這樣就產生了幾個問題:

1:在伺服器上需要安裝設計器,而對於使用內網的公司,伺服器的安全要求一般都比較高,只有相應伺服器才能去連接資料庫,對於一些二層架構的報表來說,就需要在伺服器上安裝設計器,增加了伺服器管理員的維護難度;

2:當伺服器上的報表需求變化時,需要去現場進行操作,麻煩而且效率低;

3:進行一些遷移時,二層架構的邏輯比較複雜,相當麻煩;

FineReport基於此,採用主流的三層架構模式進行設計,只需要在報表設計員的電腦上安裝設計器,設計完後,將工程部署到伺服器上,其他用戶只要電腦上有瀏覽器,就可以直接訪問報表。這樣對於公司的使用來說只需要部署一次工程,以後就可以直接遠程設計,遷徙方便,提升效率。

多工作目錄的配置

FineReport提供了報表工作目錄的概念,即每一個報表的獨立應用或者集成環境都是一個工作目錄。每個工作目錄下都有相應的jar文件,報表模板文件,資源管理文件等。當我們在本機安裝了FineReport之後,本機安裝目錄下自帶的WebReport文件夾就作為一個獨立的本地工作目錄來使用。

在實際的應用中,更多的需求是使用遠程工作目錄。即報表伺服器集成部署於實際的系統當中,報表設計者通過設計器連接遠程環境,直接對報表模板文件,配置參數等進行編輯保存。特別如果有測試環境,生產環境等多個環境的情況下,FineReport的多工作目錄便捷切換便能夠給設計者提供極大的便利。

多人協同工作

一個系統開發團隊難免要多人同時從事報表的開發工作。現在一般的管理方式就是SVN/VSS/CC等做版本管理,但是實現性較差,特別是如果誤操作還可能帶來文件恢復等較繁瑣的工作量。那麼藉助FineReport的報表運行環境就可以輕鬆做到多人協同製表,實現如圖所示:

多個報表製作人員可通過遠程設計器連接到同一個報表運行環境,同時該連接又依據許可權控制每個製作人可操作的範圍,保證多人工作情況下的數據和文件安全性。

另外為了防止多人同時編輯同一文件,導致文件衝突的情況,FineReport提供了模板加鎖和解鎖的功能,也就是當A製作員打開一張模板進行編輯的同時,可以對當前模板進行鎖定,則其它的製作員就不能同時來編輯這個文件,有效防止了文件編輯衝突。

零編碼設計

成品軟體工具關鍵在於功能、性能和上手。前兩點後面會具體講到,而所謂上手就是指經過簡單的培訓或者自學,很快可以自己使用,這樣的好處有:

1:無需花費大量時間和精力熟悉工具;

2:人員流動時能夠快速交接,使得業務系統正常運行;

3:複雜編碼對用戶來說是透明的,用戶無需關注後台執行,不會影響系統的穩定性;

具有零編碼設計功能的FineReport設計器,使得非編程人員也可以製作報表並且做得更好成為可能。只要是了解企業業務邏輯及簡單的資料庫知識的用戶,都可以通過FineReport設計器,設計出符合自己實際業務需求的報表或表單。零編碼的FineReport設計器不但為企業減少了相關人員的費用支出,還大幅度地提高了其報表的製作效率,為企業的快速發展提供強有力的支持。

複雜報表

複雜報表,從總體來講,指的一些具有複雜性和任意性的報表。這些報表往往是樣式不太規則,數據來自多個不同的地方,並且可能需要對數據在報表中進行一些相對複雜的處理。

FineReport提供了異構數據源模型、Excel+綁定數據列的報表設計模型等,使得行列對稱,動態數據處理這些傳統工具需要靠編碼來實現的常見業務需求,僅通過簡單的操作就能實現,輕鬆製作出複雜的報表。

多源分片

企業想從一個數據表或一個資料庫就想選出所有展現所需的數據是不切實際的,複雜報表的一個重要特徵是分片,與多源相關,但又不完全一樣。多源一般都會是分片的,但分片卻不一定是多源的。為了解決多源關聯分片的問題,許多傳統工具引入了子報表的概念。把每個分片做成一個子表,然後再在主表中拼接起來,傳統工具理論上是可以通過子表拼接完成,但實際上仍非常煩瑣。

FineReport天然支持多數據源(集),同一張報表的數據可同時來自多個數據表,多個不同的資料庫,或者多個不同的用戶自定義數據視圖,然後在報表中可直接相互運算形成最終的報表。

行列對稱

一些傳統的報表工具,由於條帶狀的展現方式的缺陷,數據的縱向展示能力要遠遠強於橫向,就需要專門的模型來製作交叉表。因此傳統的工具也就以此將報表的類型劃分為分組表,交叉表,主從表,明細表等類型,且兩大主要的模型分組表與交叉表各自獨立,不能互通,事實上並非所有的報表都遵循這些固定的格式,實際中的報表往往多種特性綜合體現。

例如圖所示報表有些類似我們在多源分片概念當中提到的分片報表,實際上由於行列對稱的原理,我們在報表設計時可以按照需要任意定義擴展的表頭樣式。下表可以分為相對規則四部分:

銷售數據按照類別,地區匯總;

銷售數據按照類別,年月日期匯總;

銷售數據按照客戶,地區匯總;

銷售數據按照客戶,年月日期匯總。
企業web表格製作軟體之多人行列對稱

FineReport採用的是EXCEL+綁定數據列的處理模型,天然支持行列對稱,所有縱向的操作都可以在橫向得到同樣的充分體現。不僅不需要專門設定交叉表模型,還能夠支持任意格式不規則的展現樣式。 例如將這張表的行列對調一下,可以看到效果如圖所示:

企業web表格製作軟體之多人協同工作

自定義分組

常見的原始數據存儲的是具體的數值,而統計分析需要按照區間或條件來統計相關數據,進行數據分析,這是典型的按段分組,也就是自定義分組:指數據的歸類方式並非按照常規的已有數據來分組,而是按照分段分組或者其它不規則的分組。

FineReport提供的自定義分組又可以按照分組方式分為條件分組和公式分組。除了利用自定義分組對數據進行處理之外,在實際的應用中還有一種非常常見的分組方式,是組織遞歸分組,一般表現形式為企業或事業單位,或集團或部門的組織結構,並且數據的存儲方式往往是關係映射表的類型,以ID,PREID形式來標明數據記錄的層次關係。

一般的報表工具處理此類的數據都要經過複雜的設置或者表達式編寫,FineReprot則提供了專門的組織遞歸樹模型。

通過組織遞歸樹,可以快速自動處理遞歸型的數據結構,使得組織結構形式的分組實現效率大大提高。僅需通過幾個簡單的拖拽就可以實現如圖所示形式的分組:

動態格間運算

現今的企業從資料庫中取得數據後,往往都需要提供一些計算方法,對數據進行一些分析處理,例如求和,平均,統計個數等都是基礎的數據處理。而同期比,環比,排名,佔比,累計這些涉及到同一列數據之間的運算,我們稱之為跨行組運算。例如環比,是將本期數據與相鄰的上期數據進行比較,而本期數據與上期數據都是來自於同一列數據,這是跨行計算。同比,是將本期數據與上一年同期內每個數據作比較,例如本年5月的銷售額比較上年5月的銷售額,這兩條比較的對象也來自於同一列數據,但又不是相鄰,分屬於本年和上年兩個不同的組,這是跨組計算,具體如圖所示:

而由於報表工具製作報表,返回的結果集是動態的,也就是說我們在設計界面中只能夠了解到這個區域獲取的具體是某個數據集的一列,但是這一列將返回的數據內容和總的數據條數並無法確定。這就使得跨行組運算成為必要的報表實現手段。

絕大多數的報表工具都直接內置了基礎的計算功能,例如對某一固定列進行全局的計算匯總,獲取組內的小計,全部總計等,但是對於跨行組的運算就很難實現。個別工具能夠支持較為簡單的跨行運算,但是跨組運算則無法支持。即使是通過SQL或者対整列取出最大值等方法獲取到排名,第一名等數據,也是具有很大的局限性。如果邏輯再複雜一些,例如獲取2009年5月銷售額超過1000萬的5個分公司的數據,傳統型的工具只能說是束手無策。

上面我們提到了,同比,環比,佔比累積分析等數據的運算是我們在報表常見的一些基本分析方法。基於格子界面中數據擴展的特性,即設計界面與返回數據的一對多的關係,FineReport提供了一整套運算體系,用於擴展後數據的定位與相互引用計算,這就是層次坐標,通俗一點定義即動態格間運算。

下圖體現了同比,環比,排名運算:
企業web表格製作軟體之動態格間運算

聚合報表

在製作報表時,困擾用戶最大的兩個問題是:

1:數據的多源與分片;

2:報表層次嵌套並要有美觀的對齊排列方式。

FineReport根據客戶需求,推出了聚合報表的概念和標準,專門用於解決這類大報表製作難點。聚合報表的概念是將多個分塊同時放到一個報表裡面,每一個塊都類似一張單獨的報表,而且報表之間相對獨立,如報表布局(格子間不會相互牽扯、覆蓋單元格等),相應模塊之間依然可以傳遞數據。

聚合報表中的聚合塊邊界採用像素來定位,其高度、寬度均可設置是否固定,設置分頁優先順序決定優先按哪個聚合塊分頁。這不僅解決了嵌入主報表中子報表顯示不止一頁的問題,也使得複雜式報表的製作變得簡單。由於這些聚合塊相當於聚合報表中的一個控制項,不同聚合塊之間的數據交互也很方便:

模塊之間獨立使用,具體使用場景如圖所示:
企業web表格製作軟體之聚合報表使用場景

某鐵路局需要將某日的運輸收入列在左上方,下面會放上相應日期的技術站作業情況,這個時候,鐵路局為了統計的方便,希望在右邊分別展示按日、月、年各個線路的出入,難題出現了。在右邊展示數據不難,難得是左邊的位置不變,並且如果右邊數據一頁無法全部展示的話,希望只讓右邊的按時間統計的貨車出入進行分頁。

傳統報表假如只想實現第一種效果,那麼就需要合理的估算好右邊報表所需要的空間大小,否則一旦數據比較多就無法顯示完全,但是想只按照右邊的報表進行分頁,那就不可能了。

FineReport的聚合報表實現這種效果就很容易,上述一張很複雜難以實現的報表,在FineReport的設計器裡面的樣式如圖所示:可以看出報表設計很直觀,
企業web表格製作軟體之聚合報表樣式

層式報表

在企業進行報表展現時,如果用到的資料庫某個表有100多萬、200多萬甚至上千萬條數據,而這個報表又要求展示出該表的所有記錄,如果報表的運算並不複雜,沒有跨行分組的運算只是簡單的明細數據,傳統的報表都會花上很長時間進行處理甚至直接死機。FineReport推出的層式報表概念不僅加快報表的展現速率而且緩解報表的內存壓力。

數據決策支持

報表的最大作用出了展現外,就是輔助企業高層指定公司的發展計劃,但是這樣的話,傳統的報表展現因為沒有針對性,就難以滿足需求。FineReport充分尊重市場需求,採用了一系列方式輔助企業進行決策分析。

數據分析

從一般意義上講,數據分析可以看做是對原始數據進行提煉、計算、處理,然後提取出有用的信息,形成結論以輔助決策。從這個角度,所有的報表都可以看做是數據分析,但是我們這裡要講的,並非簡單的數據匯總展現,而是在展現的數據基礎上,用戶可以進行更多樣的控制,達到更豐富的交互。

在B/S端對數據進行二次分析,依賴於在瀏覽器多豐富多樣的展示控制項。FineReport提供了數十種之多的編輯控制項,這些控制項在參數查詢界面與表單界面均可通用,使得設計者能夠設計出各種交互功能,方便用戶進行人機數據交互。

各個控制項除了能夠獨立的去展示出各自的數據,很多用戶希望控制項之間還能夠進行關聯分析,包括控制項之間的聯動和制約;另外,我們在實際應用當中也常遇到這樣的情況,多個輸入框之間存在制約是否可用的關係,例如報表的統計維度分別為年月日,則必須選擇統計維度後,相應維度對應的日期選擇框才能夠生效,這在FineReport報表表格設計器中都很容易實現。

為了能夠讓用戶的更方便快捷的使用查詢/表單界面,FineReport提供了一些輸入控制的方法來幫助用戶實現更個性化,更人性的交互。

圖表分析

只是純粹的數據展示一般客戶都不會感覺很友好,FineReport通過不斷積累和創新,圖表製作和展示功能非常強大:

1:製作圖表首先得要有數據源,通常的報表軟體只能支持單元格數據源。然而有些情況下,一定需要使用數據集數據源而不是單元格數據源。例如報表當中分為兩部分,左側以表格形式展現當年的銷售收入,右側則以圖表展現銷售利潤與銷售收入的一個比較。這時候,如果沒有數據集數據源,就只能通過隱藏格子數據源來實現。在報表中隱藏數據一是不安全,二是性能較差。

FineReport在這方面完全不用擔心,它支持數據集數據源和單元格數據源兩種設計方式,能滿足您的各種需求。

2:它支持各種圖表及混合圖表,以及一些圖表交互、參數聯動、熱點鏈接、在線切換圖表等非常實用的功能,還能進行各種樣式設置,能滿足客戶的的各種需求,實現豐富的報表展現效果。

FineReport具體圖表介紹見 圖表專題

在線實時編輯器

現在很多企業填寫和製作表單不是同一個人,為了實現Web應用中在線報表發布的正確顯示和用戶對報表發布後的格式、類型和功能上的需求,FineReport提供了在線實時編輯器的功能。

顧名思義,在線實時編輯器,就是用於在線編輯報表的工具,編輯的內容是基於HTML的報表內容,支持用戶對報表的內容,位置,前景,背景,字體,大小,邊框等各種樣式進行在線的編輯。如果只是對內容微調後進行列印,則可以在編輯結束後直接提交到印表機。

企業web表格製作軟體之在線實時編輯器
FineReport的在線實時編輯器具有如下特點:

(1):所見即所得 通過編輯器,編輯的文字和格式,無需經過其他步驟的轉換和編碼,直接展示為HTML效果,能讓用戶方便地對編輯的內容進行修改和排版;

(2):簡單易用 編輯器的編輯使用方法和office使用方式類似,風格一致,用戶無需任何HTML語法知識,就可以快速掌握。

(3):方便快捷 與純手工編寫代碼進行編輯的方式比較,可以節省大量的時間和精力。

即時分析

上面的數據分析只是基於邏輯數據層的數據進行篩選分析,但是這樣的分析有著下面幾個問題:

1:進行過普通篩選分析後,無法直接使用當前頁面的數據進行深度分析;

2:如果一開始通過多個編輯器控制數據,會頻繁的和資料庫建立連接,這在數據量大的時候效率很低。

FineReport為了實現深層次的分析,提供了當前頁面數據再次分析的功能,利用報表訪問地址添加op=view參數,避免了重複進行數據連接所帶來的消耗,具體的頁面展示如圖所示:

企業web表格製作軟體之即時分析

Flash列印

報表的展現和編輯基於瀏覽器,用戶當然希望能夠有基於瀏覽器的列印方式。雖然瀏覽器都提供直接的列印功能,但是基於一些原因,瀏覽器的直接列印並不能作為報表列印的解決方案。目前一般的報表工具採用的列印方式多為PDF列印,APPLET列印或者ActiveX列印,但是三者有一個共同的問題就是:都需要下載安裝較大的插件,並且ActiveX的方式僅支持IE瀏覽器,而IE在越來越重視安全性的前提下,在較新的版本中都禁止了ActiveX,就給使用這種列印方式的報表造成很大困擾。

FineReport獨創的Flash列印技術,第一次完美解決了困擾報錶行業十幾年的基於瀏覽器的列印問題。Flash的分頁或精確列印,都可以做到完美,並且幾乎95%的瀏覽器都預裝了Flash Player,列印之前不再需要安裝Flash Player,即使需要安裝也只有幾百K的大小,非常的方便,具體對比如圖所示:

填報方式與後台交互

填報方式多樣

現今企業通過表單錄入時,傳統報表已經不能滿足需求或者只能滿足單方向的錄入,沒有一個交互的過程。

FineReport的數據展現支持多個不同的數據源,填報也同樣支持將同一表中填寫的數據提交到多個不同的表或者不同的庫,並且支持多源填報報表數據的刪除行和添加行(除了普通的單行外,可以選擇指定行數或者一整個表單的樣式)、支持B/S端自動計算、支持多sheet填報。
企業web表格製作軟體之填報方式多樣

除了一些基本的填報外,FineReport支持還自由填報、行式填報、多源填報、交叉填報
等類型的填報。

多sheet報表使用

企業在製作報表時,經常會出現將多個文件以sheet的方式組合在一起。傳統的報表需要對多張獨立的報表進行操作,並且最後還要想辦法整合在一起,非常麻煩。

FineReport採用Excel的多sheet思想,把多張報表存放在一個模板文件中,這樣便能輕鬆的解決操作多張報錶帶來的麻煩。

FineReport以多sheet的形式組合到在一起,支持Excel多sheet的導入導出,並且方便對多張填報表同時進行編輯、保存數據到資料庫或者批量列印等,從而提高工作效率,如圖所示:
企業web表格製作軟體之多sheet報表

數據來去無關

FineReport的填報中,數據的來源與去向是分別定義的,因此數據的來源與去向並無必然聯繫。

通常我們用到填報時,特別多級匯總的填報,往往填報模板並非完全一張空白表格等待填寫,而是有部分數據從資料庫獲取,或是對所得數據進行編輯,或是補充部分數據再進行提交。

例如某企業的填報系統,基層營業處需要填寫原始數據,而分公司則需要在基層數據計算的基礎再填寫部分數據匯總上報到總公司。此時,數據的來源是來自於基層上報的資料庫A,而編輯後的數據則存往總公司的資料庫B。且來源和去向資料庫可能均不止一個,簡單的講就是,就是從表A中取出數據進行修改統計後存入表B中,當然去處可能有多個(來源也可能多個),所以也可以同時寫入B1、B2、B3等表。由於FineReport取數和填報均支持多源,因此可以很好的解決這個現實需求,具體如圖所示:

編輯方式多樣

雖然說填報最重要的在於填寫的數據,但是填寫數據的使用易用性以及填寫效率也是衡量一個報表填報能力的重要指標。FineReport提供了豐富的單元格編輯風格,不僅為報表設計者節省了大量的編輯風格設計時間,也為最終的填報人提高了工作效率。

FineReport內置的單元格編輯風格包括數十種編輯風格,基本涵蓋了常見的填報數據編輯方法,設計者可以根據需要自由設置。各個單元格的編輯風格即可以相對獨立,也可以相互關聯,例如單元格之間的聯動,或者格子之間的校驗。

企業web表格製作軟體之編輯方式多樣

零客戶端填報

企業的表單錄入經常會受制於部門和地域,FineReport報表支持在線填報,用戶不用安裝任何客戶端就可以通過瀏覽器進行填報錄入的功能,這對企業各個部門之間或不同分公司之間的統一錄入做到了完美的支持。

多級上報

我們在上面也曾提到,填報業務一般經常是多級的,除最底層可能是面對原始空表填寫外,其它各級都是將下級的數據進行驗證和處理之後再填報給上級,這就是一個簡單的工作流。

FineReport的報表功能完全支持這種模式,其應用原理圖如圖所示:

FineReport數據上報步驟如下圖:

數據上報一般有一下幾種使用情況:

直線上報:是指任務流程單純的從下級流轉到上級直至關閉,一條直線流程,如下圖:

聯合填報上報:指任務流程在流轉過程中,有的節點進行分叉了,一個節點可以有多人操作,如下示意圖:

分發逐級上報:是指任務流程在流轉的過程中,到達某一個節點的時候,該節點用戶新建子任務進行分發,當子任務流轉完成後回到該節點,該節點用戶進行操作之後,再繼續流轉主任務,如下示意圖:

行動應用(行動決策平台)

隨著蘋果Ipad、iphone、 Android的流行,越來越多的公司開始提出觸摸式手機、平板電腦,使用手機、平板電腦進行商務處理已經成為了一種不可阻擋的趨勢,FineReport基於此提出了行動決策平台的概念,並取得了一些不俗的成果,使得報表可以在手機上進行展示,方便快捷。

行動端具體效果如圖所示:

iphone

企業web表格製作軟體之BIiphone客戶端展示

android

企業web表格製作軟體之android客戶端展示

ipad

企業web表格製作軟體之行動ipad客戶端展示

喜歡這篇文章嗎?歡迎分享按讚,給予我們支持和鼓勵!

熱門文章推薦

立即試用,可獲取更多 報表範本和案例

免費試用