您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關ASP.NET中怎么實現分頁計算,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
常見的ASP.NET報表打印方法
比較常見的報表的分頁,一般是根據紙張尺寸自動分頁。即根據紙張的尺寸和頁邊距,計算出每一頁能擺下多少行多少列,從而計算出每一頁的報表,然后進行打印或者展現。
這種方式,對于行列的寬度、高度固定的情況,比較容易實現,很簡單的計算罷了。可是不要忘了,單元格里的數據是從數據庫里動態取出來的,因此如果單元格里的數據超出了單元格的寬度,就意味著需要撐寬單元格或者自動折行,而自動折行則意味著撐高單元格。
因此最常見最普通的分頁方式計算起來并不容易,你需要先把數據取出來,根據每一行的數據長度先判斷是否存在自動折行或者撐寬單元格的現象,然后才能計算出每一頁的行數和列數。如果存在自動折行,那么每一頁的行數并不會相同,因為只是某些行自動折行。
另一種也比較常見的分頁方式是固定行數分頁,即規定每一頁必須且只能顯示固定的行數,多余的顯示到下一頁。
這種分頁方式似乎更加簡單,沒有那么復雜的運算。可是別高興得太早,用戶的需求永遠是合理且復雜的。對于固定行數的報表,用戶的目的往往是為了格式的規整統一,甚至有時候是為了套打。因此如果格子里的數據超出了單元格的寬度怎么辦?不能撐寬,那么自動折行可以嗎?在不撐高單元格的前提下是可以的,那么如果撐高了怎么辦?對不起,不允許就是不允許,自己想辦法縮小字體吧。
縮小字體也不是那么容易的,因為如果僅僅根據單元格的寬度來縮小字體,往往會導致文字過分縮小而缺少可讀性。因此需要根據單元格的高度和寬度進行綜合計算,既要折行又要縮小,從而算出一個***的縮小系數,保證可讀性。
解決了縮小的問題,事情還沒結束。由于數據是從數據庫里動態取出來的,那么記錄的行數是不固定的,假設要求一頁顯示10行,而你取出來的記錄正好是15行,那么意味著第二頁只有5行,此時意味著第二頁的格式不標準了,怎么辦?于是用戶很自然地提出補足空行。
暈了吧,補多少空行呢?不一定,只能根據取出來的記錄數結合每頁顯示的行數進行動態計算。
當然還有更復雜的分頁方式,比如自動適應紙張大小。這種情況更多見于動態橫向擴展的報表。由于報表的列數不固定,可是用戶希望不管多少列,都在一張紙里打印,不要橫向分頁,此時需要根據最終的列數動態調整列寬;當然縱向的情況也同樣存在。
因此總的來說,很小的一個分頁問題,卻會引發一系列的麻煩,如果都要自己編程解決,實在太麻煩了,而且很難做的通用。博計報表在打印分頁方面考慮很周到,提供了一系列的簡單配置,使用方便。
ASP.NET報表打印實現步驟
1、設計報表;
2、設置分頁方式及相關屬性,比如說固定行數的分頁方式,需要配置每頁顯示的行數等;自動適應紙張尺寸的方式,需要配置橫向適應還是縱向適應。
效果演示
以上就是ASP.NET中怎么實現分頁計算,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。