自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET報(bào)表打印的實(shí)現(xiàn):分頁計(jì)算方式

開發(fā) 后端
本文介紹了ASP.NET報(bào)表打印的實(shí)現(xiàn),主要闡述了兩種分頁的計(jì)算方式。比較常見的報(bào)表的分頁,一般是根據(jù)紙張尺寸自動(dòng)分頁。

報(bào)表離不開打印,打印離不開分頁。

常見的ASP.NET報(bào)表打印方法

比較常見的報(bào)表的分頁,一般是根據(jù)紙張尺寸自動(dòng)分頁。即根據(jù)紙張的尺寸和頁邊距,計(jì)算出每一頁能擺下多少行多少列,從而計(jì)算出每一頁的報(bào)表,然后進(jìn)行打印或者展現(xiàn)。

這種方式,對(duì)于行列的寬度、高度固定的情況,比較容易實(shí)現(xiàn),很簡單的計(jì)算罷了??墒遣灰?,單元格里的數(shù)據(jù)是從數(shù)據(jù)庫里動(dòng)態(tài)取出來的,因此如果單元格里的數(shù)據(jù)超出了單元格的寬度,就意味著需要撐寬單元格或者自動(dòng)折行,而自動(dòng)折行則意味著撐高單元格。

因此最常見最普通的分頁方式計(jì)算起來并不容易,你需要先把數(shù)據(jù)取出來,根據(jù)每一行的數(shù)據(jù)長度先判斷是否存在自動(dòng)折行或者撐寬單元格的現(xiàn)象,然后才能計(jì)算出每一頁的行數(shù)和列數(shù)。如果存在自動(dòng)折行,那么每一頁的行數(shù)并不會(huì)相同,因?yàn)橹皇悄承┬凶詣?dòng)折行。

另一種也比較常見的分頁方式是固定行數(shù)分頁,即規(guī)定每一頁必須且只能顯示固定的行數(shù),多余的顯示到下一頁。

這種分頁方式似乎更加簡單,沒有那么復(fù)雜的運(yùn)算。可是別高興得太早,用戶的需求永遠(yuǎn)是合理且復(fù)雜的。對(duì)于固定行數(shù)的報(bào)表,用戶的目的往往是為了格式的規(guī)整統(tǒng)一,甚至有時(shí)候是為了套打。因此如果格子里的數(shù)據(jù)超出了單元格的寬度怎么辦?不能撐寬,那么自動(dòng)折行可以嗎?在不撐高單元格的前提下是可以的,那么如果撐高了怎么辦?對(duì)不起,不允許就是不允許,自己想辦法縮小字體吧。

縮小字體也不是那么容易的,因?yàn)槿绻麅H僅根據(jù)單元格的寬度來縮小字體,往往會(huì)導(dǎo)致文字過分縮小而缺少可讀性。因此需要根據(jù)單元格的高度和寬度進(jìn)行綜合計(jì)算,既要折行又要縮小,從而算出一個(gè)***的縮小系數(shù),保證可讀性。

解決了縮小的問題,事情還沒結(jié)束。由于數(shù)據(jù)是從數(shù)據(jù)庫里動(dòng)態(tài)取出來的,那么記錄的行數(shù)是不固定的,假設(shè)要求一頁顯示10行,而你取出來的記錄正好是15行,那么意味著第二頁只有5行,此時(shí)意味著第二頁的格式不標(biāo)準(zhǔn)了,怎么辦?于是用戶很自然地提出補(bǔ)足空行。

暈了吧,補(bǔ)多少空行呢?不一定,只能根據(jù)取出來的記錄數(shù)結(jié)合每頁顯示的行數(shù)進(jìn)行動(dòng)態(tài)計(jì)算。

當(dāng)然還有更復(fù)雜的分頁方式,比如自動(dòng)適應(yīng)紙張大小。這種情況更多見于動(dòng)態(tài)橫向擴(kuò)展的報(bào)表。由于報(bào)表的列數(shù)不固定,可是用戶希望不管多少列,都在一張紙里打印,不要橫向分頁,此時(shí)需要根據(jù)最終的列數(shù)動(dòng)態(tài)調(diào)整列寬;當(dāng)然縱向的情況也同樣存在。

因此總的來說,很小的一個(gè)分頁問題,卻會(huì)引發(fā)一系列的麻煩,如果都要自己編程解決,實(shí)在太麻煩了,而且很難做的通用。博計(jì)報(bào)表在打印分頁方面考慮很周到,提供了一系列的簡單配置,使用方便。

ASP.NET報(bào)表打印實(shí)現(xiàn)步驟

1、設(shè)計(jì)報(bào)表;

2、設(shè)置分頁方式及相關(guān)屬性,比如說固定行數(shù)的分頁方式,需要配置每頁顯示的行數(shù)等;自動(dòng)適應(yīng)紙張尺寸的方式,需要配置橫向適應(yīng)還是縱向適應(yīng)。

效果演示

報(bào)表分頁–.NET WEB報(bào)表打印時(shí)的分頁

以上就介紹了ASP.NET報(bào)表打印的實(shí)現(xiàn)方法。

【編輯推薦】

  1. 變相實(shí)現(xiàn)動(dòng)態(tài)ASP.NET水晶報(bào)表
  2. 實(shí)例講解:ASP.NET水晶報(bào)表教程
  3. 淺談ASP.NET報(bào)表控件
  4. 概述ASP.NET水晶報(bào)表
  5. VS.Net中的水晶報(bào)表的應(yīng)用
責(zé)任編輯:yangsai 來源: .NET報(bào)表知識(shí)庫
相關(guān)推薦

2009-07-28 14:47:18

ASP.NET MVC

2009-07-22 17:45:11

ASP.NET插件

2009-11-06 09:23:41

ASP.NET高效分頁

2009-09-10 09:50:47

ASP.NET MVC

2009-07-22 16:02:39

ASP.NET MVCPagedList

2012-04-23 15:10:18

ASP.NET

2009-07-27 16:19:59

ASP.NET報(bào)表控件

2009-08-02 11:48:58

ASP.NET水晶報(bào)表ASP.NET

2009-08-12 14:10:37

asp.net分頁代碼

2009-08-04 14:23:36

ASP.NET查詢分頁

2011-07-04 15:41:14

AjaxASP.NET

2009-07-29 09:29:06

ASP.NET水晶報(bào)表

2012-04-13 10:05:24

ASP.NET

2009-08-14 13:37:25

ASP.NET靜態(tài)頁面

2009-08-04 14:36:00

ASP.NET分頁管理

2010-03-19 09:17:16

ASP.NET MVC

2011-07-12 13:53:25

ASP.NETAjax

2009-03-13 09:48:33

ASP.NETAjaxJQuery

2012-05-07 13:23:47

ASP.NET

2009-07-30 13:57:39

ASP.NET水晶報(bào)表ASP.NET
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)