由於最近開始重拾報表設計
對於許久沒有摸的 Reportviewer 與 RDLC 報表實在有點陌生
因此在這裡做個紀錄
===== ===============================
RDLC 算是 VS 中自有的報表工具
也不知道從什麼時候開始 Crystal Reports 從VS中消失了
幸好我也從未認真的去使用Crystal Reports
第一,因為他不是免費...
第二,他要部屬實在有點麻煩
第三,要餵資料給他跟VS中操作其他資料的方法不太一樣(這一點可能是我的嘗試沒有透徹...)
總之~RDLC 搭配ReportViewer 我一直用的很高興
一些小紀錄如下 版本是VS2012 ,ReportViewer 的版本應該也是2012(上次使用已經是2005)
========================================
表格中會用到群組功能,如果希望表格群組的標題,在跨頁時重複,設定方式已經跟以往不一樣
1. 先選擇報表群組標頭
2.在右下方很不明顯的下拉箭頭點選,選擇 進階模式 (真的超隱密)
3. 在[ 資料列群組 ] 的標頭,與詳細內容之間,會多出一行 [ 靜態 ] 列
4. 點選 "靜態"列 後,在屬性視窗,就可以設定 跨頁時重複這個項目~ RepeatONnewPage 設定為 True
另外,報表通常列印的時候會有兩種需求
1. 使用連續報表紙
2. 使用固定大小紙張
由於只要設定頁面大小稍微超出真實的紙張範圍時,就會產生列印空白間隔頁面的狀況
或者多出空白頁,又或者應該列印在一頁的資料,被切成兩頁
因為都會去勾選,盡可能保持在同一頁中,可是只要將設計頁面稍微縮小,其實很難發現這個項目勾與不勾
究竟有何區別
直到今天,呼叫了200多頁的資料頁列印時,才發現整個效能爆慢,記憶體被瀏覽器瘋狂的吃掉
也不過200多頁的資料,竟然耗掉將近500MB的記憶體
這倒也還好,但是瀏覽器因為產生龐大的資料,所以接近無法操作的狀態,不管是要列印還是搜尋報表中的資料
最後,終於發現其中的差異
當我們沒有選 盡可能保持在同一頁中 時,上圖的分頁按鈕是無效的
其實應不是無效,而是200多頁的資料,擠在一頁中,所以,他只有一頁
也就是這變成一份超長的報表,而我的這份資料設計是要用A4紙張列印
想想看,把200張A4的資料拼成一張...當然會掛掉
所以,取消勾選該項目就恢復正常了,除了可正常翻頁外,也可以很快的產生,大約只要幾秒鐘就能看到結果
那這樣平常我們列印連續報表怎麼沒有影響呢?
我想是因為設計的方法不同,列印連續報表用的資料,通常是條列式的只有幾行,然後重複列印
而非是整頁的資料去重複,因此在效能與記憶體消耗上,可能就沒有膨脹的那麼誇張
所以,對於每個元件的使用,與設計方法,還是得斤斤計較啊
本來200頁的資料 組完瀏覽器的記憶體消耗約500MB,修改後約55MB,天啊~~差將近10倍啊
而且瀏覽器本身開起來就大約消耗了25MB,載入查詢頁面後消耗來到40MB,這樣比 ~ 就更懸殊了
留言列表