• 
    

    
    

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

      城軌列車模擬運行報告的自動生成研究

      2013-11-26 07:11:02王永剛錢雪軍葉華平
      鐵路計算機應用 2013年8期
      關鍵詞:城軌表格內(nèi)存

      王永剛,錢雪軍,葉華平,姚 軍

      (1.同濟大學 電氣工程系,上海 200331;2.上海軌道交通培訓中心,上海 201100)

      城軌列車模擬運行報告是了解和改善列車運行性能的一個重要工具。報告涵蓋列車模擬運行的各個方面,使工程人員能夠獲得更多的列車信息以便進行列車運行的優(yōu)化。城軌列車模擬運行報告的內(nèi)容包括3個方面:(1)文字:通過程序代碼控制報告中文字的字體、顏色、大小以及對齊方式等;(2)圖形:在城軌列車模擬運行期間會產(chǎn)生大量的圖形且需要橫向顯示,這就涉及到圖形的插入存儲以及圖形的橫向設置;(3)表格:需要在報告中插入行駛數(shù)據(jù)的表格,這就涉及到表格插入、數(shù)據(jù)填充以及部分單元格合并。對城軌列車模擬運行報告自動生成進行研究,應確定報告格式,本軟件采用Word報告的形式。

      1 Word自動化對象

      自動生成城軌列車模擬運行報告要先了解如何生成文檔,Word中的每一個操作都是對其對象的操作。Word中包括很多對象,如文檔、對話框、圖表、文本框和圖形等,而Word本身也是對象。這些對象都有自己的方法和屬性。由于Word本身是一個實現(xiàn)自動化的COM組件,因此可以通過COM接口使用編程的方式來訪問這些對象,改變它們的屬性以完成對Word文檔的自動化操作及一些特殊的應用,從而最終生成運行報告。需要用到的Word對象如表1所示。

      表1 Word對象

      2 自動生成報告的實現(xiàn)

      有了上述了解,通過添加Word類型庫,將表1中的全部對象添加至工程,并聲明要用到的類對象,啟動Word應用程序,新建一個空白的文檔,就可以進行城軌列車模擬運行報告自動生成的實現(xiàn)了。

      2.1 文字

      在創(chuàng)建了新空白文檔后,利用Word類對象進行編程,自動化控制Word的內(nèi)容。本文以北京地鐵8號線為例,首先在Word文本的第1行,用3號字、粗體、居中顯示文本標題“北京地鐵8號線下行性能計算”。實現(xiàn)方法是用Paragraphs類設置對齊方式,用Selection類加載文字內(nèi)容,用Font類設置字體格式和大小,如:

      strcpy_s(text, "北京地鐵8號線下行性能計算");

      paragraphs.SetAlignment(0);//設置文本格式左對齊

      font=selection.GetFont();//Font的聲明對象font.SetBold(true);//設置字體為粗體font.SetSize(16);//設置文字大小selection.SetFont(font);//應用格式

      接下來的正文部分主要包括列車線路、運營路線、列車編組、車輛自重等,與上述方法基本相同,只需改變相應的參數(shù)即可。

      2.2 圖形

      本文采用先將運行圖保存為本地位圖文件,然后再將本地位圖文件插入到文檔報告指定位置中的方法,實現(xiàn)了圖形的插入。

      2.2.1 保存為本地位圖文件(.bmp)

      位圖文件由4個部分組成,分別是:文件頭、信息頭、色彩表和像素陣列,要將一個屏幕圖形保存為位圖文件,首先要獲得它的如上信息,這一過程稱為位圖的“捕獲”,實質上就是在內(nèi)存中創(chuàng)建屏幕圖像的一個副本。在這之前需要先獲得內(nèi)存的設備環(huán)境DC,然后把所有圖形內(nèi)容復制過來,從而實現(xiàn)位圖的捕獲。接下來將位圖的信息寫入,按照BMP文件格式要求將內(nèi)存位圖保存為本地位圖文件。關鍵代碼如下:

      CDC MemoryDC;//定義內(nèi)存DC

      CBitmap bitmap;//定義位圖對象

      MemoryDC.CreateCompatibleDC(pDC);//創(chuàng)建與屏幕DC相兼容的內(nèi)存DC

      bitmap.CreateCompatibleBitmap(pDC,bmpWi dth,bmpHeight);//創(chuàng)建兼容的內(nèi)存位圖

      MemoryDC.SelectObject(&bitmap);//將新建位圖選入內(nèi)存DC

      MemoryDC.BitBlt(O,O,bmpWidth,bmpHidth,pDC,lUPOint.x,lUPOint.y,

      SRCCOPY);//復制位圖

      2.2.2 插入本地位圖文件

      有了本地位圖文件,只需創(chuàng)建一個嵌入式圖片對象,將其插入到報告中指定位置即可。這里需要用到的類對象為Inlineshapes,關鍵代碼如下:

      CnlineShapes simbmp;//創(chuàng)建一個嵌入式圖片對象

      simbmp.AddPicture(pic,&LinkToFile,&Save WithDocument, &RangT); //加載圖片到文檔中。

      2.2.3 圖形設置為橫向

      通常城軌列車模擬運行圖都是橫向顯示,而默認的Word頁面設置為縱向,因此要將頁面設置為橫向。此處要用到的類對象為CpageSetup、Csections和Cscetion,通過分節(jié)符控制頁面方向,關鍵代碼如下:

      CPageSetup PS;//定義對象進行頁面設置

      CSections sections;

      CSection section;

      COleVariant wdSectionBreak(short(2));

      sel.InsertBreak(wdSectionBreak);//分節(jié)符,控制頁面方向

      sections = sel.get_Sections();

      section =sections.get_Last();

      PS=section.get_PageSetup();

      PS.put_Orientation(1);//設置1為橫向,為縱向

      2.3 表格

      城軌列車模擬運行報告中通常使用表格顯示站間信息,包括發(fā)到站名稱、站間距離、運行時間等。這些信息都是從數(shù)據(jù)庫中取得的,每次選擇的站點不同,相應的信息也隨之變化。

      首先插入一個新的空表格,通過調用Word類對象設置這個表格的基本屬性,包括行數(shù)、列數(shù)等。

      para = paras.Item();//獲取表格所在段落

      range = para.get_Range();

      CTable0 tab = tabs.Add(range, row, col, &Ne wTemplate,&DocumentType);

      添加完空表格之后,就可以從數(shù)據(jù)庫中讀取數(shù)填充表格了。填充表格需要用到的類對象是Cell和Range,關鍵代碼如下:

      CCell cell;//創(chuàng)建Cell對象

      CRange range;

      cell = ptable->Cell(1, i);//獲取表格行第 i格

      range = cell.get_Range();

      range.InsertAfter(); //填寫該列的名稱

      有的列車運行報告中還有可能要求表格中的單元格合并,關鍵代碼如下:

      CCells cells;

      cell=tab.cell(2,1);//合并第1列中的第2行和第3行

      cell.Merge(tab.cell(3,1));

      至此,就完成了城軌列車模擬運行報告的自動生成,最后通過程序自動保存文檔即可。在編程過程中有3點需要注意:

      (1)表格一定要在文字和圖片都插入完畢后才能插入,否則會引起排版混亂,在插入文字和圖片的同時要預留出插入表格的段落。

      (2)在頁面橫向或縱向設置發(fā)生變化時,要注意段落的變化,否則也會引起排版混亂。

      (3)由于表格的插入,每一個單元格都是一段,所以原來的段落N會變?yōu)榈冢∟+行數(shù)*(列數(shù)+1)-1)段。

      3 運行結果

      通過在Visual C++6.0和Office 2003、2007環(huán)境下運行軟件,自動生成了城軌列車模擬運行報告,且文字、圖片、表格排版正常,存儲路徑正常,界面如圖1所示。

      圖1 城軌列車模擬運行報告界面圖

      4 結束語

      本文介紹了在Visual c++環(huán)境中調用Word自動生成城軌列車模擬運行報告的實現(xiàn)方法,在實際應用中可以極大地提高工作效率。

      [1]張 南,李玉山.用vc控制word生成仿真報告[J]. 電腦編程技巧與維護,2011(7).

      [2]黃智敏,孫建雄,李建羽.城規(guī)列車運行仿真算法研究[J].電力機車與城軌車輛,2007,30 (3).

      [3]姜照林.用vc實現(xiàn)word文檔自動化[J].嘉興學院學報,2007,19(3).

      猜你喜歡
      城軌表格內(nèi)存
      《現(xiàn)代臨床醫(yī)學》來稿表格要求
      統(tǒng)計表格的要求
      統(tǒng)計表格的要求
      統(tǒng)計表格的要求
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      漫說城軌
      漫說城軌
      漫說城軌
      漫說城軌
      基于內(nèi)存的地理信息訪問技術
      台前县| 嵊泗县| 卓资县| 常熟市| 莱州市| 长武县| 广州市| 安国市| 大同市| 安徽省| 巫山县| 东港市| 田阳县| 南昌县| 长白| 鄂托克旗| 准格尔旗| 乾安县| 丹寨县| 榆树市| 五指山市| 扎囊县| 托里县| 高台县| 沁水县| 五家渠市| 仁布县| 通榆县| 咸丰县| 拜城县| 成都市| 方正县| 江华| 荆州市| 怀柔区| 科技| 崇明县| 金川县| 民县| 石狮市| 溧阳市|