亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

        1 Word自動化對象

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

        表1 Word對象

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

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

        2.1 文字

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

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

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

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

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

        2.2 圖形

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

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

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

        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);//復(fù)制位圖

        2.2.2 插入本地位圖文件

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

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

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

        2.2.3 圖形設(shè)置為橫向

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

        CPageSetup PS;//定義對象進(jìn)行頁面設(shè)置

        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);//設(shè)置1為橫向,為縱向

        2.3 表格

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

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

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

        range = para.get_Range();

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

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

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

        CRange range;

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

        range = cell.get_Range();

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

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

        CCells cells;

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

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

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

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

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

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

        3 運行結(jié)果

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

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

        4 結(jié)束語

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

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

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

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

        猜你喜歡
        城軌表格內(nèi)存
        《現(xiàn)代臨床醫(yī)學(xué)》來稿表格要求
        統(tǒng)計表格的要求
        統(tǒng)計表格的要求
        統(tǒng)計表格的要求
        “春夏秋冬”的內(nèi)存
        漫說城軌
        漫說城軌
        漫說城軌
        漫說城軌
        基于內(nèi)存的地理信息訪問技術(shù)
        久久精品国产亚洲av无码偷窥| 亚洲一区精品无码色成人| 国产精品爽黄69天堂a| 亚洲男同志网站| 欧美在线视频免费观看| 久久精品国波多野结衣| 亚洲一区丝袜美腿在线观看| 国产精品久久久看三级| 日韩在线一区二区三区中文字幕 | 99在线无码精品秘 入口九色 | 亚洲成人欧美| 国产激情视频在线| 亚洲精品中文字幕不卡| 日本一二三区视频在线| 国产无套内射久久久国产| 91视频免费国产成人| av手机天堂| 国产精品久久久黄色片| 国产精品一区二区久久国产| 99久久精品日本一区二区免费| 啪啪无码人妻丰满熟妇| 精品黄色av一区二区三区| 日本在线无乱码中文字幕| 中文有码无码人妻在线| 亚洲综合精品成人| 国产欧美日韩网站| 日韩av中文字幕少妇精品| 最新中文字幕日韩精品| 在厨房拨开内裤进入毛片| 国产成+人+综合+亚洲欧美丁香花| 丰满人妻在公车被猛烈进入电影| 91福利国产在线观看一区二区| 大量老肥熟女老女人自拍| 精华国产一区二区三区| 成人丝袜激情一区二区| 和外国人做人爱视频| 久久国产亚洲精品超碰热| 日本女优爱爱中文字幕| 人妻久久一区二区三区蜜桃| 国产精品扒开腿做爽爽爽视频| 国产人妖视频一区二区|