• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      地震預(yù)警及烈度速報(bào)信息報(bào)告自動(dòng)生成技術(shù)

      2016-02-05 07:02:00狄國榮潘章容曾文浩田秀豐張衛(wèi)東王燕雷正超張磊王韶鵬
      地震地磁觀測與研究 2016年6期
      關(guān)鍵詞:速報(bào)烈度書簽

      狄國榮潘章容曾文浩田秀豐張衛(wèi)東王 燕雷正超張 磊王韶鵬

      1) 中國蘭州730000甘肅省地震局

      2) 中國甘肅746000隴南中心地震臺

      地震預(yù)警及烈度速報(bào)信息報(bào)告自動(dòng)生成技術(shù)

      狄國榮1)潘章容1)曾文浩1)田秀豐1)張衛(wèi)東1)王 燕1)雷正超2)張 磊2)王韶鵬2)

      1) 中國蘭州730000甘肅省地震局

      2) 中國甘肅746000隴南中心地震臺

      地震預(yù)警系統(tǒng)是一種能夠有效減輕地震災(zāi)害的新手段。中國目前初步研制了地震預(yù)警和烈度速報(bào)軟件系統(tǒng),蘭州市地震預(yù)警示范中心正在實(shí)驗(yàn)運(yùn)行一套軟件系統(tǒng),目前震后利用該系統(tǒng)產(chǎn)出的預(yù)警和烈度速報(bào)信息報(bào)告未實(shí)現(xiàn)自動(dòng)化,本文提出自動(dòng)產(chǎn)出總結(jié)報(bào)告軟件的研制方案。該軟件利用COM技術(shù),調(diào)用Word和Excel自動(dòng)化服務(wù)器中的OLE自動(dòng)化對象,將地震預(yù)警和烈度速報(bào)信息報(bào)告所需文字、圖片、表格等信息自動(dòng)插入,實(shí)現(xiàn)文檔的自動(dòng)生成,為震后快速?zèng)Q策節(jié)省時(shí)間。

      地震預(yù)警和烈度速報(bào);信息報(bào)告自動(dòng)產(chǎn)出軟件;COM技術(shù);OLE自動(dòng)化對象

      0 引言

      地震預(yù)警系統(tǒng)是一種能夠有效減輕地震災(zāi)害的新手段,世界上多個(gè)國家和地區(qū),如日本、墨西哥、美國等均已研發(fā)多個(gè)針對特定設(shè)施、單個(gè)城市甚至更大區(qū)域的地震預(yù)警系統(tǒng),有的已經(jīng)面向公眾發(fā)布,有的在線測試運(yùn)行,在減少人員傷亡、減輕人民財(cái)產(chǎn)損失及依據(jù)系統(tǒng)產(chǎn)出信息進(jìn)行震后決策方面均發(fā)揮了重要作用。中國初步研制了地震預(yù)警和烈度速報(bào)軟件和相應(yīng)實(shí)時(shí)數(shù)據(jù)流、系統(tǒng)測試、信息發(fā)布平臺,系統(tǒng)目前在線測試運(yùn)行。蘭州市地震預(yù)警示范中心正在實(shí)驗(yàn)運(yùn)行一套示范系統(tǒng)。該示范系統(tǒng)由地震預(yù)警觀測平臺、地震預(yù)警信息處理技術(shù)平臺、地震預(yù)警信息服務(wù)平臺組成。地震預(yù)警信息處理技術(shù)平臺主要功能是,依據(jù)觀測平臺數(shù)據(jù)流產(chǎn)出地震預(yù)警和烈度速報(bào)等信息,為服務(wù)平臺提供發(fā)布數(shù)據(jù),并為震后決策提供依據(jù)。但是,該系統(tǒng)震后產(chǎn)出的預(yù)警和烈度速報(bào)信息分散在不同服務(wù)器上,而非整合信息,需要手動(dòng)從不同服務(wù)器下載信息,人工查詢并計(jì)算所需結(jié)果編排整理。手工制作報(bào)告文檔的時(shí)效性較為低下,而震后決策時(shí)間緊迫,需要盡量節(jié)省報(bào)告產(chǎn)出時(shí)間?;诖耍瑢?shí)現(xiàn)地震預(yù)警和烈度速報(bào)信息報(bào)告的自動(dòng)化產(chǎn)出,為震后快速?zèng)Q策節(jié)省時(shí)間。

      采用VC++6.0編程,實(shí)現(xiàn)文字、圖表并茂的Word報(bào)告文檔自動(dòng)生成。在VC++6.0環(huán)境下,將Microsoft Office安裝目錄中的MSWORD.OLB和EXCEL.OLB類庫導(dǎo)入VC++,利用COM技術(shù)編程,在源代碼中調(diào)用OLE自動(dòng)化對象來操作Word和Excel。由于地震預(yù)警和烈度速報(bào)信息報(bào)告文檔的格式相對固定,采用事先設(shè)計(jì)好的模板文件,在需插入內(nèi)容處設(shè)置書簽變量,通過書簽定位和光標(biāo)跟隨相結(jié)合的方法,實(shí)現(xiàn)特定位置的文字、圖表等內(nèi)容的插入,以減少程序代碼,提高程序運(yùn)行效率(金艷等,2015)。

      1 實(shí)現(xiàn)原理

      在VC++6.0中搭建一個(gè)應(yīng)用程序界面,將制作好的Word模板放在應(yīng)用程序同級目錄下,通過COM技術(shù)調(diào)用Word和Excel自動(dòng)化服務(wù)器中的OLE自動(dòng)化對象,如:_Application、_Document、 Range、Selection、Bookmark、InlineShape等,實(shí)現(xiàn)從Excel中讀取數(shù)據(jù),并向Word模板插入所需信息,最終生成地震烈度速報(bào)和預(yù)警信息Word文檔報(bào)告。地震預(yù)警和烈度速報(bào)信息報(bào)告自動(dòng)生成技術(shù)原理見圖1。

      圖1 Word報(bào)告文檔自動(dòng)生成原理Fig.1 word document autogeneration schematics

      2 功能實(shí)現(xiàn)

      2.1 創(chuàng)建OLE自動(dòng)化對象

      (1)在VC++6.0開發(fā)環(huán)境下,建立基于對話框的應(yīng)用程序,命名為EEWDocOutput,在應(yīng)用程序類CEEWDocOutputApp的InitInstance()成員函數(shù)中,通過調(diào)用AfxOleInit()函數(shù)初始化COM(朱敏,2005)。核心代碼如下

      (2)導(dǎo)入Word和Excel中的OLE自動(dòng)化對象。打開VC++6.0的View菜單下ClassWizard向?qū)?,在Automation標(biāo)簽頁下通過add class找到Office安裝目錄下的Word和Excel類型庫文件MSWORD.OLB、EXCEL.EXE,從中添加需要用到的對象類。

      Word對象模型是一個(gè)等級結(jié)構(gòu),主要有:Application對象、Document對象、Range對象、Selection對象、Bookmark對象(吳杰,2009),見圖2。

      Application對象表示W(wǎng)ord應(yīng)用程序,是其他對象的父級。用戶可以利用其屬性或方法來控制應(yīng)用程序的運(yùn)行行為、控制Word環(huán)境;Document對象是Word編程中樞,用戶可以使用Document 對象或Documents集合屬性或方法來打開、創(chuàng)建、保存、啟動(dòng)或關(guān)閉文檔;Range對象表示文檔中的一塊連續(xù)的區(qū)域,由一個(gè)起始字符位置和一個(gè)結(jié)束字符位置定義。在確定Range對象后,即可應(yīng)用該對象的方法和屬性修改區(qū)域內(nèi)容或格式;Selection對象表示當(dāng)前選擇區(qū)域,Selection對象只存在一個(gè)。當(dāng)用戶想要自己的代碼對選定內(nèi)容做出改變,就可以通過Selection對象來完成任務(wù)。 Selection對象可以是一個(gè)插入點(diǎn),也可以是幾個(gè)字符,或文檔的部分內(nèi)容。用戶可以用其方法、屬性來移動(dòng)或擴(kuò)展選定內(nèi)容,本文選用GoTo方法來移動(dòng)光標(biāo);Bookmark對象表示文檔中的連續(xù)區(qū)域,既有起始位置,也有結(jié)束位置。書簽用于在文檔中標(biāo)記一個(gè)位置,或者用做文檔中的文本容器。用戶可以在文檔中定義多個(gè)書簽,把 Bookmark看作是保存在文檔中的一個(gè)指定位置。

      圖2 Word對象模型Fig.2 Word object model

      Excel對象模型亦是一個(gè)等級結(jié)構(gòu),見圖3。一個(gè)Excel應(yīng)用程序就是一個(gè)Application,全局對象如菜單,工具條均屬 于 Application對 象。Application對 象可以包含很多個(gè)Workbook(Workbooks)。具體就是,可以同時(shí)打開很多個(gè)工作簿(Workbooks),但某一時(shí)候只有一個(gè)工作簿(Workbook)處于編輯狀態(tài),叫做活動(dòng)工作 簿 (ActiveWorkbook);Workbook對 象 可以包含很多個(gè)Worksheet(Worksheets)。具體就是,一個(gè)工作簿可以包含很多工作表(Worksheets),某一時(shí)刻只有一個(gè)工作表(Worksheet)處于編輯狀態(tài),稱之為活動(dòng)工作表(ActiveWorksheet)。Workbook獨(dú)享可以包含很多Shapes對象。工作表中還可以包含一些圖表、標(biāo)記、注釋、控件等,浮在Sheet頁上,統(tǒng)稱Shapes,其中我們接觸的最多的是圖表(Charts)。WorkSheet對象可以包含很多個(gè)Range對象。具體而言,一個(gè)工作表里面有很多個(gè)單元格,單元格范圍用Range表示,Range可以是一個(gè)單元格,也可以是多個(gè)單元格,單元格均嵌入Sheet頁。

      圖3 Excel對象模型Fig.3 Excel object model

      由于Word和Excel類型庫好多類命名相同,同時(shí)導(dǎo)入若不加處理,編譯時(shí)會(huì)提示重定義錯(cuò)誤。解決辦法為,使用VC++名字空間。在導(dǎo)入類型庫后生成的excel.h頭文件中,將整個(gè)文件內(nèi)容包含在namespace mexcel{ }的花括號中,在excel.cpp文件中其他引用的最后加上using namespace mexcel,并在EEWDocOutputDlg.cpp文件開始加上using namespace mexcel;,使用時(shí)就不會(huì)發(fā)生錯(cuò)誤。需要注意的是,在需要使用Excel類庫所包含對象時(shí),前面必須加上mexcel::。

      2.2 創(chuàng)建Excel和Word服務(wù)及連接

      VC++調(diào)用文檔生成需要的對象,首先要?jiǎng)?chuàng)建Excel及Word服務(wù)。主要代碼如下

      其次,分別將Workbooks和Documents類對象m_ExcelWorkBooks和m_WordDocs與Idispatch接口關(guān)聯(lián)起來。IDispatch是調(diào)度接口,是支持自動(dòng)化的COM組件必須實(shí)現(xiàn)的接口之一。主要代碼如下

      2.3 讀取Excel文件內(nèi)容,向Word模板寫入信息

      本程序主要利用Selection對象的Goto方法和Word模板中已插入書簽來定位光標(biāo),實(shí)現(xiàn)文字、圖片、表格等的精確插入。通過書簽變量的設(shè)置,在Word模版中能夠準(zhǔn)確地將內(nèi)容插入指定位置(金良鋒等,2007)。而一部分內(nèi)容填寫完畢后,光標(biāo)停留在最后操作處,轉(zhuǎn)到其他位置則采用Goto方法將光標(biāo)移動(dòng)到另一書簽處,實(shí)現(xiàn)圖表等信息插入。

      2.3.1 讀取Excel文件相關(guān)內(nèi)容,因?yàn)榱叶人賵?bào)信息以Excel文件形式產(chǎn)出。

      2.3.2 插入文字。方法:獲得打開模板的書簽集,將書簽與程序界面上的編輯框變量對應(yīng),將編輯框中的文字寫入Word模板中的書簽變量相應(yīng)位置。

      (1)獲得Word模板中的書簽集,主要代碼為

      (2)將Word模板中的書簽變量與對話框界面上的編輯框變量對應(yīng)起來。主要代碼為

      2.3.3 插入圖片。方法:采用Goto方法將光標(biāo)轉(zhuǎn)到需要插入圖片的書簽變量處,然后利用InlineShapes集合的AddPicture方法插入圖片。

      (1)采用Goto方法,將光標(biāo)轉(zhuǎn)到Word模板中的圖片書簽變量“Intensity_jpg”處,代碼如下

      (2)采用InlineShapes集合中AddPicture方法插入圖片,代碼如下

      2.3.4 插入表格。地震預(yù)警和烈度速報(bào)信息報(bào)告里的表格為規(guī)則表格,只是表格的行數(shù)會(huì)隨著預(yù)警報(bào)數(shù)變化而有所變化,可采用書簽定位后逐格光標(biāo)移動(dòng)方法填寫表格內(nèi)容。范例代碼如下

      3 實(shí)際運(yùn)行

      按照上述算法,軟件自動(dòng)生成報(bào)告,界面見圖4。以某次報(bào)告生成為例,操作過程如下。將地震信息,包括時(shí)間地點(diǎn)震級按照要求格式輸入Earthquake Information欄,根據(jù)預(yù)警軟件和烈度速報(bào)軟件的生成結(jié)果選擇相應(yīng)的選項(xiàng),點(diǎn)擊“Produce”按鈕就可直接生成報(bào)告,無需再進(jìn)行繁雜的人工查找和計(jì)算。若需要保存或者打印報(bào)告,直接在生成的Word文檔里操作即可。

      圖4 地震預(yù)警和烈度速報(bào)信息報(bào)告自動(dòng)生成Fig.4 Information document autogeneration software interface of Earthquake Early Warning and Intensity Rapid Report

      4 結(jié)束語

      地震預(yù)警和烈度速報(bào)信息報(bào)告自動(dòng)生成軟件在一定程度上提高了地震預(yù)警和烈度速報(bào)信息報(bào)告的產(chǎn)出效率和準(zhǔn)確性,為震后快速?zèng)Q策節(jié)省了時(shí)間,意義重大;VC++調(diào)用OLE自動(dòng)化對象,實(shí)現(xiàn)自動(dòng)讀取Excel文件并自動(dòng)生成Word報(bào)告文檔的技術(shù),可為同類問題提供參考;在程序中同時(shí)調(diào)用Word和Excel自動(dòng)化對象,利用命名空間解決重定義沖突,值得參考。本文只提供部分核心代碼,如有需要完整代碼者請聯(lián)系作者。

      金良鋒,周文詳.WORD試驗(yàn)報(bào)告的自動(dòng)生成[J].中國測試技術(shù),2007,33(4):112-115.

      金艷,王瑣琛,等.震情編報(bào)自動(dòng)化軟件[J].地震地磁觀測與研究,2015,36(4):135-138.

      吳杰.Word對象模型在操作題自動(dòng)評測中的應(yīng)用[J].現(xiàn)代計(jì)算機(jī),2009,4:104-106.

      朱敏,沈同圣,王學(xué)偉,周曉東.VC++與VBA結(jié)合實(shí)現(xiàn)復(fù)雜報(bào)表[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(2):42-43.

      Automatic generation technology for the information document of earthquake early warning and intensity rapid report

      Di Guorong1), Pan Zhangrong1),Zeng Wenhao1),Tian Xiufeng1),Zhang Weidong1),Wang Yan1),Lei Zhengchao2),Zhang Lei2)and Wang Shaopeng2)
      1)Earthquake Administration of Gansu Province,Lanzhou730000,China
      2)Longnan Center Seismic Station,Gansu Province746000,China

      Earthquake early warning system is a new valid method which could relieve seismic hazard.China has developed some software systems on earthquake early warning and intensity rapid report.A system is running in the earthquake early warning demonstration center of Lanzhou.At present, however, autogeneration of the Earthquake Early Warning and Intensity Rapid Report Information document is not unconsummated.In this paper, the plan of the autogeneration software is introduced.Adopting COM technology to transfer OLE automation objects in Word and Excel automatic server, the characters, pictures, tables etc can be inserted into Earthquake Early Warning and Intensity Rapid Report Information document automatically.It is realized that Earthquake Early Warning and Intensity Rapid Report Information document is automatically generated.It could save time for the decision after earthquakes.

      earthquake early warning and intensity rapid report,information document autogeneration software,COM technology,OLE automation objects

      10.3969/j.issn.1003-3246.2016.06.028

      狄國榮(1981—),男,工程師,從事地震預(yù)警和烈度速報(bào)工作

      中國地震局蘭州地震研究所地震科技發(fā)展基金(項(xiàng)目編號:2015ZB02,2016Q01)

      本文收到日期:2016-02-24

      猜你喜歡
      速報(bào)烈度書簽
      透明書簽
      高烈度區(qū)域深基坑基坑支護(hù)設(shè)計(jì)
      十一月書簽
      文苑·感悟(2019年11期)2019-12-05 02:50:31
      十一月書簽
      文苑(2019年21期)2019-11-04 09:16:40
      高烈度地震區(qū)非規(guī)則多跨長聯(lián)連續(xù)梁抗震分析
      貳月書簽
      文苑·感悟(2019年2期)2019-02-18 02:10:40
      每月速報(bào)
      空中之家(2018年1期)2018-01-31 01:50:30
      每月速報(bào)
      空中之家(2017年11期)2017-11-28 05:27:41
      每月速報(bào)
      空中之家(2016年1期)2016-05-17 04:47:41
      318國道沿線蘆山地震的震害特征與烈度區(qū)劃探討
      肃南| 隆德县| 阳西县| 青岛市| 晋城| 楚雄市| 泗阳县| 射洪县| 响水县| 叙永县| 五家渠市| 泰兴市| 温泉县| 庄河市| 大同市| 禄丰县| 图木舒克市| 弥勒县| 常熟市| 深水埗区| 宝山区| 醴陵市| 丽水市| 本溪| 韶山市| 桂林市| 读书| 庆阳市| 桦川县| 宁蒗| 邹城市| 永兴县| 嵩明县| 隆德县| 微博| 鄯善县| 建始县| 屏南县| 邢台市| 句容市| 玛曲县|