摘 要:本文論述了臺站級氣象雷達業務日基數、日錯情數據錄入和SQL數據庫存儲的方法,研究了雷達基數、錯情數據的查詢、顯示和統計,完成了基于Word的臺站級雷達月報表的自動生成和保存,實現了業務作自動化和信息化,簡化了工作流程,提高了工作效率。
關鍵詞:Word;雷達月報表;自動生成
1 引言
雷達臺站業務工作中,需按月上報個人和臺站的基數、錯情報表,其中日基數統計項目多達22項,日錯情統計項目多達24項,月基數統計項目18項,月錯情統計項目22項,此外還有臺站級基數、錯情統計表。為完成這項業務工作,雷達臺站業務人員每月統計、制作和校對相關報表,工作繁瑣且易出錯。為完成報表自動生成,實現報表制作過程自動化和信息化,簡化業務工作流程,提高業務人員工作效率,特設計并完成了本軟件。
2 設計思路
綜合應用數據庫、word模板操作和軟件編程技術,通過可視化數據交換接口,實現雷達業務基數和錯情數據的人機對接,簡潔顯示基數和錯情數據錄入情況,準確、及時存儲基數和錯情。利用遠程SQL數據庫技術按月查詢統計雷達基數、錯情數據,按業務人員個人姓名累計本月基數、錯情數據,顯示和導出包含基數表和錯情表在內的個人業務質量月報表;按臺站綜合統計全站基數和錯情數據,顯示和導出臺站業務質量月報表。業務人員根據值班記錄對報表各相關數據進行核對和更正,保證報表的準確性;根據業務人員要求歸類保存報表,保證報表存儲的科學性。軟件框圖如圖1所示。
3 日基數、日錯情數據的獲取、存儲和顯示
3.1 日基數的獲取
業務值班人員按小時統計雷達數據生成、產品生成、數據傳輸、產品傳輸和狀態信息的個數,根據相關規定計算出本小時所得各項基數。根據值班人員各項工作情況和相關規定得出雷達基數據保存、雷達維護、雷達維修等項目的基數。
3.2 日基數的顯示
值班人員更改日期或點擊“查詢”后,自動觸發數據查詢功能,使用SQL數據SELECT查詢語句對各項數據進行查詢。如果數據庫中存在當日數據,則顯示當日數據;如果無當日數據,則添加空白數據,供值班人員填寫。
3.3 日基數的修改和存儲
使用遠程SQL數據庫技術,利用INSERT命令語句實現數據的存儲。在存儲前判斷SQL數據庫中是否存在當日基數、錯情數據,如果存在則利用UPDATE命令語句實現數據更新,保證數據庫中數據的準確性。顯示數據時提供更改數據接口,并判斷數據輸入格式是否正確,保證用戶在操作過程中數據的正確輸入。為了保證軟件界面的美觀,降低數據錄入錯誤率,無基數的項保持空白顯示。
日錯情數據和日基數數據類似,這里不再贅訴。
4 月份數據的統計
數據庫中存有日基數、日錯情數據,使用SQL數據庫的SUM(字段名)命令實現月份數據中某個字段數據累計求和。
通過對比分析日基數統計表和月基數據統計表可以發現,兩者統計的項目并不完全一致,比如月基數統計表中“數據與產品”項是由日基數統計表中“數據采集”和“產品生成”兩項累計求和所得。固使用“ISNULL(數據采集,0)+ISNULL(產品生成,0) as 數據與產品”SQL命令統計月報表中“數據與產品”項,“ISNULL(數據采集,0)”命令的使用是為了日基數表中各項數據為空時用0代替,保證該項整月數據都為空時月基數統計表中用0值代替NULL值。
統計月基數累計值的同時,需要按值班人員分別統計該月基數,使用“GROUP BY姓名”實現按業務人員姓名分別累計當月雷達基數值。
定義C#環境下DataTable數據類型變量為dt,將SQL數據查詢結果保存于dt變量中,使用dt.Rows.Add(“合計”)在dt變量中添加一行“合計”值,顯示在DataGridView數據控件中。通過循環DataGridView所有行和列,獲取相同列中所有單元格的數據,并累計求和,顯示在“合計”行相應單元格中,實現“合計”行數據填充。月錯情統計表和臺站月統計表與月基數表類似,這里就不再鰲訴。
5 Word報表導出
5.1 開發環境配置
使用VS2005 c#環境下基于COM組件編程技術,添加COM組件引用Microsoft word 11.0 Object Library類庫,添加代碼“using TestWord;”實現Word相關操作。
5.2 報表模板制作
每個月雷達報表的格式固定,利用Microsoft Office Word 2003按照報表模板設計、制作月基數報表、月錯情報表和臺站月報表,在需要添加姓名、日期、校對人等信息的地方添加書簽,添加書簽如圖2所示。書簽添加完成以后另存為DOT格式的Word模板。
5.3 書簽變量賦值
根據Microsoft word 11.0 Object Library類庫操作命令,編寫Word操作類WordHelper.CS,通過循環執行下面代碼實現書簽的獲取和賦值。
5.4 Word模板中表格數據賦值
Word模板中月基數表格和月錯情表格各為10行(除表頭外),首先判斷DataGridView控件中顯示月基數的總行數,如果大于10行則通過Word._Document.Tables[1].Cell(8, 1).Range.Rows.Add(ref oMissing)語句在表格第8行后面添加行,保證報表中表格行數與DataGridView顯示行數一致。
循環控制并獲取DataGridView控件中各單元格的數據值,通過Word._Document.Content.Tables[1].Cell(i, j).Range.Text語句為Word模板表格中單元格(i, j)賦值,實現報表表格數據的填充。月錯情數據、臺站月數據的導出與此類似。
5.5 報表顯示和保存
導出數據成功后,自動存儲報表至默認目錄,覆蓋原有報表文件。根據用戶不同的存儲要求,軟件將自動打開最新報表,供用戶核對、修改報表數據,重命名報表名,并保存報表至指定目錄,實現報表的科學保存。
6 結語
本軟件利用SQL數據庫技術、word類庫操作技術和軟件編程技術完成了雷達月報表各項數據的查詢、統計、導出和報表的存儲,實現了報表制作過程自動化和信息化,簡化了業務工作流程,提高了業務人員工作效率。報表截圖如圖3所示。
參考文獻
[1]梁麗明.基于.NET的學校辦公自動化系統研究與實現.制造業自動化,2011年,第02期,第33卷.
[2]王 、敖俊、姚愚等.氣象決策短信自動生成系統設計與實現. 電腦編程技巧與維護,2012年,第02期.
[3]楊秋葉、 世麗. EXCEL操作題出題系統設計與實現[J] .新余學院學報,2011年03期.
[4]龍馬工作室. 新編Visual C# 2005程序設計從入門到精通.北京:人民郵電出版社, 2008年.
作者簡介:甄廷忠、1986年生、男、漢族、助理工程師/學士、主要研究方向:氣象雷達資料和計算機技術綜合應用。