平面報表設計體驗

來源:互聯網
上載者:User
     傳統的報表設計師,使用了稱之為條帶式的設計體驗,也就是報表樣式設計介面上,設計面板上放置了一個個橫條,這些橫條就組成了報表的基礎架構,它們一般區分為頁首條,頁尾條,主條,明細條,二級明細條等等。設計報表範本必須首先設計好這些條條框框。然後在這些條上面放置各種報表樣式元素。

    就是一個條帶式報表的設計介面,很多報表工具比如Access,FastReport等等都是如此。實際上,若報表設計時採用控制項拖拽的方式則一般是採用條帶式設計體驗。

    這種條帶式報表設計體驗是傳統模式,曆史悠久,而且報表範本一般只有兩層結構,條帶和報表元素。結構比較呆板,任何報表元素都必須在某個條帶中,對於複雜的明細式報表,需要使用二三四級明細條,結構複雜,資料來源綁定麻煩,當報表比較複雜時可能需要子報表,此時報表設計需要來回切換多個介面,使用不便。有些不大適應日益複雜的軟體開發環境,因此必須有所改善或突破,於是出現了類似EXCEL的試算表的報表設計體驗,本文不討論EXCEL的報表設計體驗。

    針對條帶式的一些缺點,本人提出了平面式的報表設計體驗,設計報表時仍然採用控制項拖拽的方式來編輯報表元素,但拋棄的條帶式的結構,進而實現了多層次的報表結構。任意的報表元素都可以放置在設計面板上,不再區分頁首頁尾主欄明細欄了,此外還實現了容器類型的報表元素,這種報表元素可以承載其他報表元素,比如面板和表格。由普通報表元素和容器報表元素混合其他使用就實現了多層次的樹狀報表結構。就是實現了這種平面式的報表設計模式。

    在這種設計方式下,設計器拋棄了條帶的模式,甚至頁首頁尾的概念也放棄了,所有的報表元素緊密的組織在一起,而且在容器元素(面板和表格)的作用下形成一個樹狀的報表結構。設計器對於任何報表元素都是同等對待的,沒有了條帶的隔閡,也就形成了一種平面式的設計體驗。

    有人要奇怪了,居然連頁首頁尾的概念都拋棄了,那怎麼實現頁首頁尾的功能啊?其實在我這個工具中很簡單,只要指定報表的頁首頁尾高度就可以了,報表引擎會根據頁首高度,讓報表文檔的開頭的一部分作為頁首來顯示。而將報表文檔的最後的指定高度的一部分作為頁尾來顯示。由於只是指定高度,對報表編製沒有任何影響,因此有很大的自由度,甚至可以讓一個報表元素一半顯示在頁首或頁尾中而另一半顯示在表身中。這樣報表結構可以根據需要進行簡化,而頁首頁尾中可顯示的內容就不受限制了。

    平面報表設計體驗帶來了樹狀的報表元素結構,而為此相配套,筆者又推出了多層次的樹狀的資料來源模型,這兩個樹狀結構緊密配合,就能將報表資料填充倒報表範本中而形成最終的報表輸出。

使用這種平面的設計體驗和樹狀的報表結構的好處主要有

  1. 符合報表的編製邏輯,對於條帶式報表,需要將一個報表強行拆分成一條條,但樹狀的報表結構不需要對報表進行拆分,而是把報表作為一個有機的整體進行設計,只要理解了原始報表的結構就不必考慮拆分就能設計報表了。
  2. 對於複雜報表,可很大的避免使用子報表,子報表會將報表設計分成多個介面,使用者需要來回切換,使用不便。而樹狀的報表結構理論上層數不受限制,可以承載複雜的報表,因此可以很大程度上的避免使用子報表,在同一個介面中設計報表簡潔方便。當然有時考慮到報表範本的重用,本工具也提供了子報表的功能。
  3. 樹狀報表結構比條帶結構更貼近人們常規的編程思路,便於人們編製和檢查報表結構。比如對於訂單明細報表,如果使用編程產生HTML檔案來展示報表,則一般會採用Table的方式來實現而不會採用DIV的方式來實現。因為這個報表的主體就是一個表格。
  4. 由於此處表格就是一個容器,其儲存格本身有常值內容,但還可以放置任意個數的其他報表元素,甚至是表格套表格,因此也就大大擴充了表格式報表的設計自由度。

    在做報表設計師前,筆者已經開發了名為XDesignerLib的圖形化設計器中介軟體,這個中介軟體支援了多層次的設計文檔結構,使用了平面式設計體驗。在做報表設計師時,筆者就為了能利用XDesignerLib就苦思冥想,結合以前的報表開發經驗,想出了這套全新的報表理論,因此可以說這套理論是逼出來的。

    根據上述,平面式報表設計體驗已經放棄了條帶式設計模式,是一種新的設計體驗,但該模型還比較新,應該還有有不少考慮不周之處,望大家多多評論。

XDesigner軟體工作室( http://www.xdesigner.cn ) 2006-9-20

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.