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