【摘要】本文介紹了水晶報表及通信概預算系統(tǒng)的特點以及用Visual C# 2005開發(fā)的參數(shù)化水晶報表在通信概預算系統(tǒng)中的應用實例。
【關鍵詞】水晶報表通信概預算參數(shù)字段
一、引言
近年來,隨著通信產業(yè)的迅猛發(fā)展,工程設計日益增多,而工程設計中很重要的一個環(huán)節(jié)———工程概(預)算多是采用人工編寫Excel表方式編制,該方式編制概(預)算是一項比較繁瑣的工作,不僅花費大量的時間、精力,其數(shù)據(jù)的準確性、規(guī)范性、各表間的聯(lián)接關系也不易保證。概(預)算中的機械使用費、主材等容易遺漏,沒有充分發(fā)揮計算機技術和數(shù)據(jù)庫技術優(yōu)勢。特別是2008年7月新版概預算編制辦法的出臺,使得手工編制概預算表格更加困難,迫切需要有成型的概預算軟件。目前市場已有的商品化軟件雖各有特點,但這些商品化軟件普遍存在通用性較強,對通信行業(yè)概預算編制環(huán)節(jié)的針對性較差等問題。中國通信集團設計院第一分公司,依托于本身的資源優(yōu)勢,充分吸取了各專業(yè)通信專家的概預算編制經驗,考察了市場上常用編制軟件的優(yōu)缺點,并力求與實際的編制工作緊密結合,采用Visual C# 2005語言和ACCESS數(shù)據(jù)庫開發(fā)了通信概預算系統(tǒng)。
二、水晶報表在通信概預算系統(tǒng)的應用
通信概預算系統(tǒng)是以信息產業(yè)部通信行業(yè)標準,《通信建設工程概算、預算編制辦法及費用定額》為依據(jù),并結合當前通信行業(yè)發(fā)展現(xiàn)狀而研制開發(fā)的。系統(tǒng)主要由概預算編制、系統(tǒng)維護及數(shù)據(jù)三部分組成,實現(xiàn)了通信工程設計、施工、竣工驗收等各階段造價管理自動化處理。軟件具有操作方便、計費靈活等特點。廣泛適用于通信線路工程、通信設備安裝工程、通信管道工程等的新建、擴建、改建工程的概算、預算、結算以及決算的編制工作。適用于所有從事通信工程設計、施工、建設的單位及個人使用。
在通信概預算系統(tǒng)的開發(fā)中,經常要對合并計算、多級匯總、制作圖表、條件格式化進行編程。在這種情況下用普通的數(shù)據(jù)控件很難完成,而水晶報表大大簡化了這些工作。用其可以制作非常漂亮的圖表、格式化文本,而且還可以把報表導出為Word、Excel、PDF、HTML等格式。Crystal Reports(水晶報表)是一款商務智能(BI)軟件,主要用于設計及產生報表,是業(yè)內最專業(yè)、功能最強的報表系統(tǒng),它除了強大的報表功能外,最大的優(yōu)勢是實現(xiàn)了與絕大多數(shù)流行開發(fā)工具的集成和接口,作為微軟的圖表合作商,水晶報表以一種自帶的控件被Visual Studio 2005集成在一起。
三、用水晶報表中的參數(shù)字段解決通信概預算系統(tǒng)打印預算表格時的頁碼問題
在通信概預算系統(tǒng)的報表中,要求預算表的頁碼格式為第X頁總第X頁。第X頁是該頁報表在該預算表中排的頁數(shù),只有一頁稱為第全頁;總第X頁,是該頁報表在所有預算表中排的頁數(shù)。
1.新建一個數(shù)字型參數(shù)字段para_noall,用來給總第X頁傳值。(如上圖)
2.新建兩個公式字段pageno,pagenoall分別代表第X頁和總第X頁。其中pagenoall公式中用到了參數(shù)para_noall。(如下圖)
3.代碼中傳遞參數(shù)給報表的代碼為:crystalReportT311.SetParameterValue(\"para_noall\", 2);
注:SetParameterValue后面的幾個參數(shù)依次為:參數(shù)名稱,參數(shù)值,子報表名稱(如果是子報表參數(shù)的話)。結束語:
水晶報表是一個功能強大的報表工具,現(xiàn)在已經被Microsoft Visual Studio 2008與Microsoft Visual Studio 2005集成在一起。除了開發(fā)新程序外,在工作中我們常需要接觸到很多較早的軟件系統(tǒng)報表功能升級的需求,如果能結合水晶報表這一強大的工具,往往能事半功倍。
參考文獻
[1]王小科,徐薇,等. C#從入門到精通(第2版).清華大學出版社,2010.
[2]李建青. C#桌面系統(tǒng)開發(fā)案例教程.機械工業(yè)出版社,2010.
[3]祝軍,等.通信建設工程概預算管理與實務.人民郵電出版社,2010.
[4]阿泰.【水晶報表內功心法】———信手拈來,掌控對象. http://blog.csdn.net/babyt/archive/2009/07/26/4610056.aspx.