由於最近開始重拾報表設計

對於許久沒有摸的 Reportviewer 與 RDLC 報表實在有點陌生

因此在這裡做個紀錄

===== ===============================

RDLC 算是 VS 中自有的報表工具 

也不知道從什麼時候開始 Crystal Reports 從VS中消失了

幸好我也從未認真的去使用Crystal Reports

第一,因為他不是免費...

第二,他要部屬實在有點麻煩

第三,要餵資料給他跟VS中操作其他資料的方法不太一樣(這一點可能是我的嘗試沒有透徹...)

 

總之~RDLC 搭配ReportViewer 我一直用的很高興

一些小紀錄如下 版本是VS2012 ,ReportViewer 的版本應該也是2012(上次使用已經是2005)

========================================

表格中會用到群組功能,如果希望表格群組的標題,在跨頁時重複,設定方式已經跟以往不一樣

1. 先選擇報表群組標頭

2.在右下方很不明顯的下拉箭頭點選,選擇 進階模式 (真的超隱密)

rpt01

 

3. 在[ 資料列群組 ] 的標頭,與詳細內容之間,會多出一行 [ 靜態 ] 列

4. 點選 "靜態"列 後,在屬性視窗,就可以設定 跨頁時重複這個項目~ RepeatONnewPage 設定為 True

 

rpt02  

另外,報表通常列印的時候會有兩種需求

1. 使用連續報表紙

2. 使用固定大小紙張

由於只要設定頁面大小稍微超出真實的紙張範圍時,就會產生列印空白間隔頁面的狀況

或者多出空白頁,又或者應該列印在一頁的資料,被切成兩頁

因為都會去勾選,盡可能保持在同一頁中,可是只要將設計頁面稍微縮小,其實很難發現這個項目勾與不勾

究竟有何區別

 

直到今天,呼叫了200多頁的資料頁列印時,才發現整個效能爆慢,記憶體被瀏覽器瘋狂的吃掉
也不過200多頁的資料,竟然耗掉將近500MB的記憶體

這倒也還好,但是瀏覽器因為產生龐大的資料,所以接近無法操作的狀態,不管是要列印還是搜尋報表中的資料

最後,終於發現其中的差異

rpt03  

當我們沒有選 盡可能保持在同一頁中 時,上圖的分頁按鈕是無效的

其實應不是無效,而是200多頁的資料,擠在一頁中,所以,他只有一頁

也就是這變成一份超長的報表,而我的這份資料設計是要用A4紙張列印

想想看,把200張A4的資料拼成一張...當然會掛掉

所以,取消勾選該項目就恢復正常了,除了可正常翻頁外,也可以很快的產生,大約只要幾秒鐘就能看到結果

 

那這樣平常我們列印連續報表怎麼沒有影響呢?

我想是因為設計的方法不同,列印連續報表用的資料,通常是條列式的只有幾行,然後重複列印
而非是整頁的資料去重複,因此在效能與記憶體消耗上,可能就沒有膨脹的那麼誇張

所以,對於每個元件的使用,與設計方法,還是得斤斤計較啊

本來200頁的資料 組完瀏覽器的記憶體消耗約500MB,修改後約55MB,天啊~~差將近10倍啊

而且瀏覽器本身開起來就大約消耗了25MB,載入查詢頁面後消耗來到40MB,這樣比 ~ 就更懸殊了

arrow
arrow
    全站熱搜

    ADOLPH 發表在 痞客邦 留言(5) 人氣()