国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET之Web打印-終極解決篇

2024-07-10 12:56:52
字體:
供稿:網(wǎng)友

做過bs開發(fā)的同志應(yīng)該都深有體會,在web程序中打印不再象應(yīng)用程序中那樣便于控制了,web程序天生的一些特性造成了這個缺點(diǎn),如:打印機(jī)在本地,而文件確可能在服務(wù)器上;格式如何控制和定制等等。都給我們開發(fā)中帶來了很多問題,雖說有水晶報表等控件來解決但總歸是不方便。當(dāng)然有了問題就會有人來研究解決,這里我先對目前流行的幾種方式做個簡單介紹:

1、ie直接打印

這個不用多說,直接調(diào)用window.print或者webrower控件的execwb方法來打印。方便快捷,客戶端無需任何設(shè)置即可。利用一些辦法也可以實(shí)現(xiàn)簡單的定制,比如做一個模板htm文件,然后在js中動態(tài)創(chuàng)建一個隱藏幀來,用腳本來生成其中的數(shù)據(jù),再把最后的結(jié)果文件寫入到隱藏幀打印處理。如果處理的好,實(shí)際上效果也是不錯。對于簡單的打印需求應(yīng)該是夠了。這里我舉個實(shí)際中的例子來說明這種方式:
開發(fā)中經(jīng)常需要打印一些統(tǒng)計(jì)的結(jié)果給用戶,比如說一個常見的功能是營業(yè)報表類的打印:操作員先輸入查詢條件,然后提交得到查詢的結(jié)果,點(diǎn)擊打印后,按照定義好的格式打印報表。
我們實(shí)現(xiàn)上大部分情況會把查詢的結(jié)果綁定到datagrid上來,然后打印datagrid。這種情況的打印一般來說格式比較固定簡單,確定后基本不會再作更改。所以可以采用ie直接打印,但若直接調(diào)用window.print來打印頁面,頁面上別的元素也會被打印處理,頁頭頁尾的格式也不好控制。


2、activex控件

自己開發(fā)控件。這種方式很多商用軟件采用這種方式,寫成控件后已經(jīng)無所謂是在web中使用還是應(yīng)用程序中使用了。打印方式非常靈活,基本上程序能做到的web也能做得到。但客戶端需要安裝組件,部署不是很方便。

3、.net組件

盧彥寫過一篇很好的文章《利用xml實(shí)現(xiàn)通用web報表打印》,相信大家都看過了。思路新穎,實(shí)現(xiàn)簡單,確實(shí)不失為一種通用web打印解決辦法,尤其利用xml來描述打印文件的方法給以后的格式的拓展留下很好的接口,非常容易擴(kuò)充。這種打印方式對于格式變化大,數(shù)據(jù)量小的應(yīng)用來說非常合適。這種思路也給了asp.net上打印的一種新的思路:自定義一些組件來實(shí)現(xiàn)靈活的打印功能。當(dāng)然缺點(diǎn)也是顯而易見:1、需要客戶端安裝net framework1.0組件。2、xml的解析上,如果文件較大速度上不是很理想。3、頁面首次加載時會有明顯的延時。



先列個條目,明天繼續(xù)寫


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴仁县| 枣庄市| 宜兰市| 武义县| 易门县| 崇仁县| 安国市| 玉门市| 肇源县| 丰原市| 三穗县| 商洛市| 尼玛县| 宜宾县| 宜都市| 漳州市| 房产| 南华县| 信丰县| 海城市| 柳林县| 门源| 靖西县| 永年县| 枣强县| 承德市| 广平县| 白沙| 易门县| 宝兴县| 梅州市| 淮阳县| 石首市| 准格尔旗| 沁源县| 板桥市| 延长县| 土默特右旗| 丰台区| 台前县| 龙州县|