鞠宏軍,杜麗娟,耿子林
(1.華北科技學(xué)院計(jì)算機(jī)學(xué)院,北京東燕郊 101601;2.華北科技學(xué)院電信學(xué)院,北京東燕郊 101601)
基于ASP.NET的復(fù)雜表格打印控制及實(shí)現(xiàn)①
鞠宏軍1②,杜麗娟2,耿子林1
(1.華北科技學(xué)院計(jì)算機(jī)學(xué)院,北京東燕郊 101601;2.華北科技學(xué)院電信學(xué)院,北京東燕郊 101601)
本文結(jié)合實(shí)際應(yīng)用,以班級(jí)重修成績單打印為例,詳細(xì)闡述了基于ASP.NET的復(fù)雜表格打印控制及實(shí)現(xiàn)。該打印程序輸出的成績單可以隨意設(shè)置字體字號(hào)、表格合并、學(xué)生姓名及成績的動(dòng)態(tài)輸出,有效地提高了教務(wù)管理的工作效率,具有良好的實(shí)用性、先進(jìn)性和推廣價(jià)值。該打印控制程序,既可以直接應(yīng)用于其他基于asp.net技術(shù)的管理系統(tǒng)中,也可為Jsp、php等web打印控制實(shí)現(xiàn)提供良好的設(shè)計(jì)思路。
asp.net;打印控制;Excel;管理系統(tǒng)
Web打印是很多B/S結(jié)構(gòu)管理信息系統(tǒng)必不可少的功能,也是開發(fā)人員所面臨的一個(gè)共同難題,因?yàn)閃eb應(yīng)用程序所有數(shù)據(jù)處理是由服務(wù)器腳本在服務(wù)器端執(zhí)行,再將執(zhí)行結(jié)果返回給瀏覽器端顯示出來的,服務(wù)器端的代碼是無法對(duì)客戶端的打印設(shè)備進(jìn)行控制的,而瀏覽器端執(zhí)行的一些腳本程序?qū)蛻舳说脑O(shè)備控制能力也很有限,因此很難像桌面應(yīng)用程序或C/S模式下一樣實(shí)現(xiàn)精確的打印控制。
WebBrowser是IE瀏覽器內(nèi)置的打印控件,可以用于調(diào)用或直接手動(dòng)操作瀏覽器文件菜單中的打印、打印預(yù)覽、頁面設(shè)置功能,將瀏覽內(nèi)容輸出到打印機(jī)。此種方法比較簡單,但由于網(wǎng)頁中表格和打印輸出表格的線寬、線型、字體控制有很大差別,打印分頁控制及輸出的效果較差。即使采用CSS技術(shù),對(duì)網(wǎng)頁中的表格字體進(jìn)行打印格式處理,但輸出還是由于瀏覽器版本不同、客戶端機(jī)器不同,很難達(dá)美觀的打印效果,并且很難實(shí)現(xiàn)復(fù)雜表格的控制。
采用第三方控件是開發(fā)Web應(yīng)用系統(tǒng)比較好的選擇。由于第三方控件只需安裝、控制打印接口,可以讓編程人員從繁雜的打印編程中解放出來,在較短的時(shí)間內(nèi)做出優(yōu)秀的報(bào)表打印系統(tǒng)。但此類控件一般都是收費(fèi)的,如加拿大Crystal Decisions公司出品的水晶報(bào)表系統(tǒng),根據(jù)用戶數(shù)和功能不同價(jià)格從幾千到幾十萬不等,對(duì)于一些單位內(nèi)部使用具有很大的限制。
使用.NET組件方法,通過XML自定義出所有需要的打印格式,從客戶端直接控制。使用.NET Language Runtime控制的打印,不需要客戶端注冊(cè)、打印控制功能強(qiáng)大并且與IE兼容性高。但此種打印方式不適合于數(shù)量大的應(yīng)用,如果文件較大時(shí)XML的解析速度較慢,并且客戶端需要安裝.NET Framework組件,頁面首次加載會(huì)有明顯的延時(shí)。
采用這種編程方法,是在服務(wù)器端將從數(shù)據(jù)庫中讀取的數(shù)據(jù)導(dǎo)出到服務(wù)器端的Excel數(shù)據(jù)表中,由于數(shù)據(jù)讀取及導(dǎo)出格式控制在服務(wù)器端,所以可以充分發(fā)揮服務(wù)器腳本的控制功能,像Delphi操作Excel一樣控制打印格式。導(dǎo)出Excel文件后,采用鏈接的方式傳輸?shù)娇蛻舳恕4朔N方法,將Web打印轉(zhuǎn)化為Windows單機(jī)版的打印,適應(yīng)性強(qiáng)、易于控制,導(dǎo)出的Excel表可以隨意保存或拷貝到其他機(jī)器上輸出。本文主要介紹此種方法。
重修是各班不及格同學(xué)的二次學(xué)習(xí)考試,因此重修成績單和期末成績單不同,如,某教師的某重修任務(wù)100人,可能分布在40個(gè)自然班級(jí)中,若所有自然班級(jí)一份4頁成績單均用手工填寫,工作量極大、且繁瑣容易出錯(cuò),急需一種簡單的成績單處理方式。
另一方面規(guī)范的重修成績單要有,表頭:如學(xué)年學(xué)期、專業(yè)班級(jí)、課程等信息;表格:學(xué)生姓名及成績;表尾:成績統(tǒng)計(jì)信息;表格各部分字體、表格寬度也不同,并且各部分?jǐn)?shù)據(jù)隨各班是動(dòng)態(tài)查詢或者計(jì)算來的。具體成績單如下圖1。

圖1 班級(jí)重修成績單
根據(jù)以上表格需求,打印程序首先從數(shù)據(jù)表中查詢所指定教師的班級(jí)重修成績,然后自然班級(jí)分別導(dǎo)出到Excel的各工作表中,在Excel表的生成過程中要控制表格各部分的字體字號(hào)、合并、姓名成績的動(dòng)態(tài)計(jì)算及輸出,具體實(shí)現(xiàn)關(guān)鍵代碼如下:





本文結(jié)合《基于校園網(wǎng)的重修管理系統(tǒng)》、《基于校園網(wǎng)的期末考試考務(wù)管理系統(tǒng)》的實(shí)際打印應(yīng)用需求,詳細(xì)分析了B/S模式下打印報(bào)表的幾種解決方案,最后選擇班級(jí)重修成績單導(dǎo)出控制為例,詳細(xì)介紹了采用服務(wù)器端腳本將查詢結(jié)果導(dǎo)出到Excel工作表中,并對(duì)Excel表進(jìn)行字體、字號(hào)、表格合并、定位、班級(jí)分表處理、姓名及成績的動(dòng)態(tài)輸出控制,再將導(dǎo)出在服務(wù)器端的Excel電子成績單傳輸?shù)娇蛻舳恕T摲椒ㄓ行ЫY(jié)合了服務(wù)器腳本控制Excel表格式及導(dǎo)出功能,操作簡單、格式控制效果好,是Web打印處理比較簡潔實(shí)用的方法。開發(fā)美觀實(shí)用的班級(jí)重修成績單打印控制程序,可以避免教師手寫成績單的重復(fù)勞動(dòng),極大地提高了我校重修教學(xué)管理、期末考試考務(wù)管理的工作效率,具有一定的實(shí)用性、先進(jìn)性及推廣價(jià)值。該方案較好地實(shí)現(xiàn)B/S模式的表格控制及打印,既可以直接應(yīng)用于其他基于asp.net技術(shù)的管理系統(tǒng)中,也可為Jsp、php等web打印控制實(shí)現(xiàn)提供良好的設(shè)計(jì)思路。
[1]鄭齊心.ASP.NET項(xiàng)目開發(fā)案例全程實(shí)錄(第 2版)[M].北京:清華大學(xué)出版社,2010
[2]洪石丹.ASP.NET范例開發(fā)大全[M].北京:清華大學(xué)出版社,2010
[3]龐婭娟,房大偉.ASP.NET從入門到精通(第2版)[M].北京:清華大學(xué)出版社,2010
[4]炎士濤.ASP.NET項(xiàng)目開發(fā)案例精粹[M].北京:清華大學(xué)出版社,2010
[5]張領(lǐng).ASP.NET項(xiàng)目開發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社,2008
[6]余金山.ASP.NET 2.0+SQL Server 2005企業(yè)項(xiàng)目開發(fā)與實(shí)戰(zhàn)[M].電子工業(yè)出版社,2008
[7]李玉林.ASP.NET 2.0網(wǎng)絡(luò)編程從入門到精通[M].清華大學(xué)出版社[M],2006
[8]馬蘇拉.高校考試管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009(10):37-42
[9]馬珊丹.學(xué)分制下成人高教課程重修信息管理子系統(tǒng)的設(shè)計(jì)[J].湖北大學(xué)成人教育學(xué)院學(xué)報(bào),2010(12):32-34
[10]杜麗娟.基于校園網(wǎng)的實(shí)驗(yàn)課表排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2009(11):20-22
[11]鞠宏軍,杜麗娟,等.基于Web的教學(xué)工作量核算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華北科技學(xué)院學(xué)報(bào),2008(1):115-118
[12]鞠宏軍,杜麗娟,等.基于校園網(wǎng)的重修管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技,2011,7(19):4586-4588
ASP.NET-based printing control and implementation of complex forms
JU Hongjun1,DU Lijuan2,GENG ZiLin1
(1.Department of Computer Science,North China Institute of Science and Technology,Yanjiao Beijing-East 101601,
2.Department of Telecom,North China Institute of Science and Technology,Yanjiao Beijing-East 101601)
Combined with practical application of printing class rehabilitation transcripts,ASP.NET-based printing control and implementation of complex forms are introduced in detail.The transcripts outputed by printing program is free to set font,size,table merging,student names and dynamic output.The printing program improves effciency of educatonal administration,together with good usability,advancement and promotional value.It can be directly applied to other asp.net-based management system,but also offer design ideas for Jsp,php related printing control.
asp.net;printing control;Excel;management system
TP311.52
A
1672-7169(2011)04-0059-04
2011-09-21
鞠宏軍(1973-),男,吉林遼源人,華北科技學(xué)院計(jì)算機(jī)系教師副教授,研究方向:計(jì)算機(jī)應(yīng)用。