鞠宏軍,杜麗娟,耿子林
(1.華北科技學院計算機學院,北京東燕郊 101601;2.華北科技學院電信學院,北京東燕郊 101601)
基于ASP.NET的復雜表格打印控制及實現(xiàn)①
鞠宏軍1②,杜麗娟2,耿子林1
(1.華北科技學院計算機學院,北京東燕郊 101601;2.華北科技學院電信學院,北京東燕郊 101601)
本文結(jié)合實際應(yīng)用,以班級重修成績單打印為例,詳細闡述了基于ASP.NET的復雜表格打印控制及實現(xiàn)。該打印程序輸出的成績單可以隨意設(shè)置字體字號、表格合并、學生姓名及成績的動態(tài)輸出,有效地提高了教務(wù)管理的工作效率,具有良好的實用性、先進性和推廣價值。該打印控制程序,既可以直接應(yīng)用于其他基于asp.net技術(shù)的管理系統(tǒng)中,也可為Jsp、php等web打印控制實現(xiàn)提供良好的設(shè)計思路。
asp.net;打印控制;Excel;管理系統(tǒng)
Web打印是很多B/S結(jié)構(gòu)管理信息系統(tǒng)必不可少的功能,也是開發(fā)人員所面臨的一個共同難題,因為Web應(yīng)用程序所有數(shù)據(jù)處理是由服務(wù)器腳本在服務(wù)器端執(zhí)行,再將執(zhí)行結(jié)果返回給瀏覽器端顯示出來的,服務(wù)器端的代碼是無法對客戶端的打印設(shè)備進行控制的,而瀏覽器端執(zhí)行的一些腳本程序?qū)蛻舳说脑O(shè)備控制能力也很有限,因此很難像桌面應(yīng)用程序或C/S模式下一樣實現(xiàn)精確的打印控制。
WebBrowser是IE瀏覽器內(nèi)置的打印控件,可以用于調(diào)用或直接手動操作瀏覽器文件菜單中的打印、打印預(yù)覽、頁面設(shè)置功能,將瀏覽內(nèi)容輸出到打印機。此種方法比較簡單,但由于網(wǎng)頁中表格和打印輸出表格的線寬、線型、字體控制有很大差別,打印分頁控制及輸出的效果較差。即使采用CSS技術(shù),對網(wǎng)頁中的表格字體進行打印格式處理,但輸出還是由于瀏覽器版本不同、客戶端機器不同,很難達美觀的打印效果,并且很難實現(xiàn)復雜表格的控制。
采用第三方控件是開發(fā)Web應(yīng)用系統(tǒng)比較好的選擇。由于第三方控件只需安裝、控制打印接口,可以讓編程人員從繁雜的打印編程中解放出來,在較短的時間內(nèi)做出優(yōu)秀的報表打印系統(tǒng)。但此類控件一般都是收費的,如加拿大Crystal Decisions公司出品的水晶報表系統(tǒng),根據(jù)用戶數(shù)和功能不同價格從幾千到幾十萬不等,對于一些單位內(nèi)部使用具有很大的限制。
使用.NET組件方法,通過XML自定義出所有需要的打印格式,從客戶端直接控制。使用.NET Language Runtime控制的打印,不需要客戶端注冊、打印控制功能強大并且與IE兼容性高。但此種打印方式不適合于數(shù)量大的應(yīng)用,如果文件較大時XML的解析速度較慢,并且客戶端需要安裝.NET Framework組件,頁面首次加載會有明顯的延時。
采用這種編程方法,是在服務(wù)器端將從數(shù)據(jù)庫中讀取的數(shù)據(jù)導出到服務(wù)器端的Excel數(shù)據(jù)表中,由于數(shù)據(jù)讀取及導出格式控制在服務(wù)器端,所以可以充分發(fā)揮服務(wù)器腳本的控制功能,像Delphi操作Excel一樣控制打印格式。導出Excel文件后,采用鏈接的方式傳輸?shù)娇蛻舳恕4朔N方法,將Web打印轉(zhuǎn)化為Windows單機版的打印,適應(yīng)性強、易于控制,導出的Excel表可以隨意保存或拷貝到其他機器上輸出。本文主要介紹此種方法。
重修是各班不及格同學的二次學習考試,因此重修成績單和期末成績單不同,如,某教師的某重修任務(wù)100人,可能分布在40個自然班級中,若所有自然班級一份4頁成績單均用手工填寫,工作量極大、且繁瑣容易出錯,急需一種簡單的成績單處理方式。
另一方面規(guī)范的重修成績單要有,表頭:如學年學期、專業(yè)班級、課程等信息;表格:學生姓名及成績;表尾:成績統(tǒng)計信息;表格各部分字體、表格寬度也不同,并且各部分數(shù)據(jù)隨各班是動態(tài)查詢或者計算來的。具體成績單如下圖1。
圖1 班級重修成績單
根據(jù)以上表格需求,打印程序首先從數(shù)據(jù)表中查詢所指定教師的班級重修成績,然后自然班級分別導出到Excel的各工作表中,在Excel表的生成過程中要控制表格各部分的字體字號、合并、姓名成績的動態(tài)計算及輸出,具體實現(xiàn)關(guān)鍵代碼如下:
本文結(jié)合《基于校園網(wǎng)的重修管理系統(tǒng)》、《基于校園網(wǎng)的期末考試考務(wù)管理系統(tǒng)》的實際打印應(yīng)用需求,詳細分析了B/S模式下打印報表的幾種解決方案,最后選擇班級重修成績單導出控制為例,詳細介紹了采用服務(wù)器端腳本將查詢結(jié)果導出到Excel工作表中,并對Excel表進行字體、字號、表格合并、定位、班級分表處理、姓名及成績的動態(tài)輸出控制,再將導出在服務(wù)器端的Excel電子成績單傳輸?shù)娇蛻舳?。該方法有效結(jié)合了服務(wù)器腳本控制Excel表格式及導出功能,操作簡單、格式控制效果好,是Web打印處理比較簡潔實用的方法。開發(fā)美觀實用的班級重修成績單打印控制程序,可以避免教師手寫成績單的重復勞動,極大地提高了我校重修教學管理、期末考試考務(wù)管理的工作效率,具有一定的實用性、先進性及推廣價值。該方案較好地實現(xiàn)B/S模式的表格控制及打印,既可以直接應(yīng)用于其他基于asp.net技術(shù)的管理系統(tǒng)中,也可為Jsp、php等web打印控制實現(xiàn)提供良好的設(shè)計思路。
[1]鄭齊心.ASP.NET項目開發(fā)案例全程實錄(第 2版)[M].北京:清華大學出版社,2010
[2]洪石丹.ASP.NET范例開發(fā)大全[M].北京:清華大學出版社,2010
[3]龐婭娟,房大偉.ASP.NET從入門到精通(第2版)[M].北京:清華大學出版社,2010
[4]炎士濤.ASP.NET項目開發(fā)案例精粹[M].北京:清華大學出版社,2010
[5]張領(lǐng).ASP.NET項目開發(fā)全程實錄[M].北京:清華大學出版社,2008
[6]余金山.ASP.NET 2.0+SQL Server 2005企業(yè)項目開發(fā)與實戰(zhàn)[M].電子工業(yè)出版社,2008
[7]李玉林.ASP.NET 2.0網(wǎng)絡(luò)編程從入門到精通[M].清華大學出版社[M],2006
[8]馬蘇拉.高??荚嚬芾硇畔⑾到y(tǒng)的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2009(10):37-42
[9]馬珊丹.學分制下成人高教課程重修信息管理子系統(tǒng)的設(shè)計[J].湖北大學成人教育學院學報,2010(12):32-34
[10]杜麗娟.基于校園網(wǎng)的實驗課表排課系統(tǒng)的設(shè)計與實現(xiàn)[J].福建電腦,2009(11):20-22
[11]鞠宏軍,杜麗娟,等.基于Web的教學工作量核算系統(tǒng)的設(shè)計與實現(xiàn)[J].華北科技學院學報,2008(1):115-118
[12]鞠宏軍,杜麗娟,等.基于校園網(wǎng)的重修管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技,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-),男,吉林遼源人,華北科技學院計算機系教師副教授,研究方向:計算機應(yīng)用。