曾 倩,袁海文,秦 業
(北京航空航天大學自動化科學與電氣工程學院,北京 100191)
報表自動生成及其在設備檢測系統中的應用
曾 倩,袁海文,秦 業
(北京航空航天大學自動化科學與電氣工程學院,北京 100191)
針對目前設備檢測系統中數據量大,且經常要求以各種報表格式化輸出數據信息的問題,分析了VS.NET開發環境下的報表自動生成機制,并提出了適用于兩種不同情況的報表生成方法,實現了數據報表的自動生成。在VS.NET開發環境中,利用組件對象模型(COM)來控制外部的Excel應用軟件,充分利用計算機強大的數據處理能力,能夠實現電力設備檢測領域專業報表的生成、編輯、顯示和打印等功能。分別以安全閥在線自動調校儀和SF6密度繼電器自動校準儀為例,成功將該方法應用于電力設備檢測系統中。實際應用表明,該方法具有較強的工程實用性和通用性。
組件對象模型;對象鏈接與嵌入;報表;Excel軟件;設備檢測系統
現在電力生產部門對各種數據的統計需求量越來越大,對大量數據的計算和分析更是要求準確與靈活,其最終統計及分析結果都以報表形式輸出,以便交流或決策參考。一些傳統電力設備的檢測校準裝置會自帶液晶顯示屏,但限于功能、成本及控制實現難易程度,一般只用來顯示用戶最為關注的數據,而歷史數據詳細資料、后期分析等大量信息還需通過接口或網絡傳入計算機處理。從國電公司、各省網公司到基層的電廠,按照《報表制度》設計開發的固定樣式報表已經不能適應各級管理部門對統計內容的不斷變化,而且大量的數據內容需要手工輸入,帶來諸多不便,且效率低下[1]。因此,利用計算機強大功能,將在現場檢測得到的電力設備各類相關數據自動整理并生成數據報表輸出,在電力生產領域中具有重要的意義和廣泛的應用。
Visual Studio.NET是微軟推出的一款高效的開發工具,它對數據庫的連接控制十分簡便,Excel也是一個優秀的報表制作工具,通過組件對象模型COM可非常方便地實現VS.NET與數據庫和Excel的結合。由于Excel現在已被大多數人所熟悉,利用Excel制作報表不僅功能強大,而且無須人們再花費時間精力去學習新的報表工具,同時對于常見的數據分析與制圖等功能它也提供支持,因此在很多行業中有著廣泛應用[2-6]。基于VS.NET來控制Excel生成報表還可直接利用其專業的編輯、打印等功能,具有很強的可操作性和實用性。
COM即“組件對象模型(Component Object Model)”,其中“組件”是一組接口的實現,“對象”是組件的實例[7]。COM是軟件組件互相通訊的一種方式,它是說明如何建立可動態互變組件的規范,提供了為保證能夠互操作,客戶和組件服務器應遵循的一些標準。通過這種標準將可以在任意兩個組件之間進行通信而不用考慮其所處的操作環境是否相同、使用的開發語言是否一致以及是否運行于同一臺計算機。COM靠定義對象的二進制接口標準來獨立于編程語言,遵循COM的對象可以相互通信,而不需管各自部件是怎樣執行。OLE(Object Linking and Embedding)意為對象的鏈接與嵌入,是基于COM的接口標準,它提供了對象相互通訊的基本手段,即一種使Windows應用程序之間共享數據和程序的機制。COM使OLE可以對具有對象功能的系統進行重構,極大地擴展了其功能,實現了將它作為系統工具的目的,因此實現用戶可以跨越多個平臺進行應用軟件的開發[8]。
通過在VS.NET中使用Excel提供的OLE(Object Linking and Embedding)對象可以實現數據統計報表的生成。OLE包括客戶和服務器兩方面,所謂的OLE客戶(也稱作OLE容器)是指請求數據或操作其他程序的程序;相應的OLE服務器是指被請求的這個程序,它向OLE客戶提供所需的服務。.NET很好地提供了對OLE技術的支持,這里.NET程序要調用Excel的報表功能,所以.NET程序是OLE客戶,而Excel應用程序是OLE服務器,也是COM對象,它提供COM接口,.NET程序通過調用此COM接口中的方法實現對Excel對象的操作。兩者之間的關系如圖1所示。
圖1 .NET與Excel關系圖
在.NET中首先實現計算機與電力設備檢測校準裝置的通信,進行現場數據的上傳,再利用ADO.NET訪問數據庫,將獲得的數據存入數據庫。當用戶要求以報表形式輸出數據信息時,通過COM技術實現與Excel的結合,將數據庫中的數據檢索得到并輸出至Excel工作簿中,這樣還可利用Excel本身的強大功能來進行報表編輯、數據分析、繪圖打印等操作,提高工作效率。流程如圖2所示。
圖2 報表自動生成流程圖
在.NET平臺下要實現Excel報表的自動生成主要有兩種方法。一種方法是報表直接創建法,適用于文件樣式較簡單時;另一種方法為報表模版填入法,適用于文件樣式較復雜的報表。
利用報表直接創建法生成報表的一般步驟如下:
(1)在.NET工程中引用Excel對象庫,并定義Excel對象;
(2)按要求控制Excel程序生成報表表格;
(3)將數據項填入報表表格中;
(4)保存報表,撤銷對象。
利用報表模版填入法生成報表的一般步驟如下:
(1)先在Excel應用程序中設計Excel報表的模版文件;
(2)在.NET工程中引用Excel對象庫,并定義Excel對象;
(3)將數據項填入報表模版文件中;
(4)保存報表,撤銷對象。
Excel應用程序為.NET提供了OLE對象模型,其中含有5個重要的對象與制作報表有關,分別為Application、Workbooks、Worksheets、Range、Cells。其層次關系及功能描述如圖3所示。
以C#為例,最常用的實現語句有:
(1)引用對象庫
在“Project”中選擇“Add Reference”,然后在“COM”中選擇庫“Microsoft Excel 11.0 Object Library”以添加Excel的對象,接下來才能對Excel對象進行各項操作。
(2)創建Excel對象
//新建一個Excel應用程序對象MyExcel
圖3 Excel對象模型
結合前面提出的兩種實現方法,下面分別以安全閥在線自動調校儀和SF6密度繼電器自動校準儀為實例進行闡述,說明了針對不同實際情況時,采用不同方法自動生成報表的效果。
安全閥在線自動調校儀是一種適用于電力系統發電廠鍋爐壓力容器中安全閥開啟壓力檢測的儀器。它能保證在整定安全閥開啟壓力時,裝置不停車,生產照常進行,從而解決了傳統的同類儀器體積、重量龐大,測量的系統誤差大,尤其是對生產狀況擾動大等缺點。其軟件用于調校儀在現場測試數據的后期分析處理及結果的報表自動化生成,包括將儀器生成的經過加密處理后的數據文件讀入并解密后保存到數據庫中,支持用戶輸入各類查詢條件檢索數據庫,最后根據用戶的不同需求,自動將測試數據結果整理為各類電子報表輸出等。整個流程禁止用戶隨意改動所測的原始數據,保證了校驗結果的真實準確與一致性。
因該報表樣式和內容均較簡單,故采取報表直接創建法生成報表。用戶若查詢數據庫中記錄,在校驗日期欄中填入查詢的日期,確認后系統檢索數據庫,在列表框中排列出與該日期對應的所有庫序號,再雙擊選擇庫序號,系統會自動檢索出庫序號對應的數據信息,并將其在報表預覽欄中對應位置顯示出來,庫序號即對應報表的編號。用戶查看后可補充必要的信息,確定后點擊生成報表按鈕即可。軟件將所生成報表自動保存到相關文件夾中,以供日后查閱或打印。其運行主界面如圖4所示,生成的報表如圖5所示。
SF6密度繼電器自動校準裝置通過測量不同環境溫度下的壓力值,將其換算成對應的20℃時的壓力值,從而對SF6密度繼電器進行校準。它運用精確的SF6氣體壓力和溫度之間關系的數學模型,配合微機技術及全封閉SF6氣體循環系統,與進口數字智能式壓力、溫度傳感器進行通信,解決了目前現場對SF6氣體密度繼電器校準困難的問題。整個系統的結構框圖如圖6所示。
其軟件可進行SF6密度繼電器的性能自動校準、校驗數據的分析以及數據電子報表的自動生成。包括與設備連接后自動讀入SF6密度繼電器校準儀器的各項測試數據,加入數據庫保存管理,支持用戶分類查詢各種數據和儀器設備信息,對測試數據分析后來判斷被測的SF6密度繼電器是否合格,并根據用戶的不同需求自動將各類測試數據及分析結果整理為各類電子報表輸出。
SF6密度繼電器自動校準裝置可以測量待檢密度繼電器的報警值、閉鎖1值、閉鎖2值和超壓值,并生成此密度繼電器的單項檢驗結果表。當完成對所有密度繼電器的檢驗后,還能將數據整理后生成檢驗結果的匯總報表。考慮此處報表的信息量多,且格式也較復雜,故采用報表模版填入法生成報表。
圖6 自動校準系統結構圖
用戶在軟件運行界面中填入檢索條件,選好數據輸出方式,并完善相關資料后點擊“生成單項報表”按鈕,系統就會檢索Access數據庫中的數據,并將所獲數據填入Excel單項報表模版文件,生成的單項檢驗結果報表如圖7所示。
當自動校準裝置對多個密度繼電器進行檢驗之后,可生成一張結果匯總報表,用戶填入相應信息,點擊“生成匯總報表”按鈕,系統將已檢驗的多個密度繼電器的數據進行處理,得出結果后填入Excel匯總報表模版文件,生成完整的產品檢驗結果匯總報表,如圖8示。產品的合格率及不合格產品信息等都會在報表中顯示,以供用戶觀察分析,對產品質量進行評定,得出結論。
最終制作完畢的Excel報表應獨立保存,以區別于模版,因為以后運行程序所得數據都要填入模版文件中,所以報表模版文件不能被任意改動。報表生成后通過Excel軟件可以對該報表進行編輯、保存和打印輸出等操作。在.NET中可以調用打印操作執行直接打印輸出,也可以充分利用Excel強大的數據、表格和圖形處理能力,對報表內容和格式進行修改后直接在Excel中控制是否保存或打印報表。
報表的自動生成是目前包括測試領域在內的眾多領域共同面臨的一個問題。基于VS.NET對COM技術的支持,使軟件開發環境與外部Excel應用程序很好地結合起來,由VS.NET控制Excel程序,對于報表的自動生成、數據信息的填入及后期的修改完善等簡便而高效。在實際應用中,根據報表包含信息量的多少及報表樣式的復雜與否,提出了兩種適合不同情況時的報表生成方法,并以電力系統中的兩個檢測裝置為實例,說明了利用兩種方法生成報表的實際效果。實踐表明,采用了該報表自動生成方法,使相關工作量大大簡少,效率大幅提升。相比于傳統方式,自動化的數據處理過程減少人為干預,也提高了信息的準確和精確度,因此該研究具有較好的工程背景和參考實用價值。
[1]石光亮,王 拓,戈長青,等.電力生產信息統計報表生成器的設計與實現 [J].電力系統自動化,2003,27(21):86-88.
[2]于彩霞,曹偉武,嚴 平,等.天然氣加入爐的熱力計算與分析[J].上海理工大學學報,2008,30(1):59-63.
[3]李海軍,陳朝選,趙教育.光譜分析標準物質均勻性檢驗數據的 Excel處理[J].冶金分析,2006,26(5):94-96.
[4]文靜華,張 梅,田建強.基于Excel的企業通用動態報表生成工具的設計[J].計算機工程,2005,31(4):221-223.
[5]范巧成.Excel在復雜數學模型測量不確定度評定中的應用[J].計量學報,2005,26(24):379-383.
[6]張光臨.對單件小批量鑄造生產作業計劃進行計算機輔助控制[J].鑄造技術,2006,27(2):188-190.
[7]劉 建,劉 丹,李啟彬.Excel VBA實現輸電線下工頻電磁場強度自動化計算 [J].電力學報,2008,23(4):290-293.
[8]林艷華,吳 建,周勝杰.基于Excel的電力監控通用報表系統的設計與實現[J].計算機工程與科學,2008,30(4):124-127.
[9]文建忠.Excel軟件在電量預測中的應用 [J].電力學報,2006,21(2):219-221.
[10]Lowy J.COM與.NET組件服務[M].常曉波,朱劍平,譯.北京:中國電力出版社,2002.
Autom atic report generation and its app lication in equipment testing system
ZENG Qian,YUAN Hai-wen,QIN Ye
(School of Automation Science and Electrical Engineering,Beihang University,Beijing 100191,China)
In order to solve the problem of large volume of data which generally are required to be reported in formatted form in equipment measurement and testing systems,the mechanism of automatic report generation in Visual Studio.NET has been analyzed, and two different report generation methods have also been presented,through which data reports can be generated automatically.In the development platform of Visual Studio.NET the methods utilize COM to control the external Excel program.With the powerful data processing ability of computer,many functions of professional report such as report creating,editing,display,printing and so on can be realized in power equipment testing field with those methods.Automatic report generation methods have been sucessfully applied in some power equipment testing systems such as automatic tester for online safety valves and the SF6 density relay calibration instruments.The results of practical applications prove that the methods possess strong engincering practicability and universality.
COM;OLE;Report;Excel;Equipment testing system
TP274;TP311.52
A
1674-5124(2010)01-0067-05
2009-01-08;
2009-04-12
國家863高新技術研究發展計劃(2007AA04Z215)航空科技基金項目(2008ZD51060)
曾 倩(1982-),女,博士研究生,主要研究方向為檢測技術與自動化裝置。