現在有很多客戶有這樣的要求:需要隨時都能修改報表的模板,控制列印元素的位置,字型大小,是否列印,是否套打等等。這就需要客戶能控制報表設計器。目前可以使用的報表有很多,列如:水晶報表, rdlc報表,pdf報表,excel報表等還有一些國內的報表。大部分的報表設計器都不太容易把報表設計器單獨提取出來供客戶使用,因為很多都是供開發人員使用的,而且大部分都是c/s版本的。國外很多公司都使用pdf的報表,這樣就只需要做一個設計器就行了,pdf 檔案自己有列印的功能。但是這要求對pdf的格式有很深的瞭解,短時間內不是太好實現。因為不想受制於人,所以我做了一個簡單的web版的報表設計器,分享一下設計思路,共同學習。
    思路:設計器採用html+javascript實現,儲存時將設計好的介面轉化為約定的xml格式,儲存到資料庫中,列印時將報表的xml模板和資料傳遞到用vb寫的activeX列印元件實現列印. 因為都是自己設計的,以後需要新增新的功能或修改都很方便。
   功能:
           1. 能設計多頁模板。
           2. 能列印文字,圖片,線條,表格,頁碼。
           3. 能實現控制元件位置的動態列印。
          4. 能實現套打。

一. 多頁模板
        如果報表模板的內容很多,一個頁面容不下,就可以將模板設計成多頁。

        

列印效果:

二. 文字列印
         能設定文字列印的字型,顏色,是否換行,是否帶下劃線,是否粗體等等。

            

效果:

三. 圖片列印
         能設定圖片按實際大小列印還是指定大小列印


效果:

四. 線條列印
         能列印橫線,豎線,斜線,和線條的顏色

效果:


五. 表格列印
         能設定表格的表頭,合併列等複雜的樣式


效果:

六. 頁碼列印
         能設定頁碼


效果:

七. 重複列印
          能設定任何位置的任何控制元件在分頁時是否重複列印


效果:

八. 位置的動態列印
            如果某些內容需要在列表後列印,而列表中的資料是動態的,可能很多,可能很好。所有這些內容列印的位置是跟隨著列表動態變化的。

效果


九. 套打
          只打印報表中填入的資料