999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對象鏈接與嵌入技術(shù)在產(chǎn)品測試輸出中的應(yīng)用

2020-05-19 05:11:37王炎舜
河南科技 2020年8期

王炎舜

摘 要:在某型產(chǎn)品研制過程中,其性能指標(biāo)需要進行全面測試。過去,測試結(jié)果通常采用手工填寫方式,但是存在效率低、費時費力、容易出錯等問題。本研究采用對象鏈接與嵌入技術(shù),在VC++平臺下操作Excel表格,實現(xiàn)產(chǎn)品測試結(jié)果的批量輸出和圖表繪制功能,大幅度提升某型產(chǎn)品測試數(shù)據(jù)輸出的準(zhǔn)確性,提高產(chǎn)品測試數(shù)據(jù)分析及交付效率。

關(guān)鍵詞:對象鏈接與嵌入技術(shù);VC++;測試數(shù)據(jù)輸出

中圖分類號:TP311文獻標(biāo)識碼:A文章編號:1003-5168(2020)08-0031-03

Application of Object Linking and Embedding Technology

in Product Test Output

WANG Yanshun

(China Air-to-Air Missile Research Institute,Luoyang Henan 471000)

Abstract: During the development of a certain type of product, its performance indicators need to be thoroughly tested. In the past, test results were usually filled in manually, but there were problems such as low efficiency, time-consuming and labor-intensive, and error-prone. This research used object linking and embedding technology to operate Excel tables under the VC ++ platform to realize the batch output and chart drawing functions of product test results, greatly improving the accuracy of product test data output, and improving the efficiency of product test data analysis and delivery.

Keywords: object linking and embedding technology;VC ++;test data output

某型產(chǎn)品具有復(fù)雜的技術(shù)指標(biāo)體系,性能測試期間會產(chǎn)生包含大量參數(shù)的測試文件,人們需要將測試數(shù)據(jù)填寫到測試記錄Excel表格中。針對同一批次產(chǎn)品的測試數(shù)據(jù),人們需要編寫數(shù)據(jù)分析報告;對于各產(chǎn)品某些關(guān)鍵數(shù)據(jù),需要繪制散圖類型的圖表來分析該批次產(chǎn)品質(zhì)量情況。以往采用手動方式將測試數(shù)據(jù)填入測試記錄卡并繪制測試數(shù)據(jù)散點圖,任務(wù)量大,效率低且容易出錯。本文采用對象鏈接與嵌入(Object Linking and Embedding,OLE)技術(shù),最終實現(xiàn)產(chǎn)品測試記錄自動化填寫及測試數(shù)據(jù)圖表生成。

1 OLE技術(shù)簡介

OLE技術(shù)是一種交互進程間的通信技術(shù),可以使開發(fā)者利用封裝好的對象進行程序間的信息傳遞與操作,已逐漸發(fā)展成為一種基于對象的動態(tài)交互組件規(guī)范。該技術(shù)利用組件對象模型(COM)完成不同程序間的訪問與操作,可以使組件自身的對象與其方法被方便地調(diào)用[1]。在該技術(shù)中,被調(diào)用方是OLE服務(wù)器端,調(diào)用方是客戶端(或容器),調(diào)用的各個項目是OLE對象[2]。Microsoft Office的Excel軟件就是一個OLE服務(wù)器,在VC++平臺可以用MFC程序完成對Excel的操作,使其完成測試記錄表的輸出和數(shù)據(jù)對比圖表的生成。

2 測試記錄模板和流程設(shè)計

某型產(chǎn)品測試所保存的測試數(shù)據(jù)為二進制文件,結(jié)合測試數(shù)據(jù)格式和測試項目分類,依據(jù)不同測試數(shù)據(jù)集的文件名稱區(qū)分測試項目,填入預(yù)先設(shè)計好的測試記錄表模板,如圖1所示。

測試數(shù)據(jù)批量自動化輸出的流程為:首先開啟Excel服務(wù)打開模板,之后選取需要填入測試表的測試項目,直到所有需要填寫的項目填寫完畢,隨后進行超差數(shù)據(jù)標(biāo)紅與缺項統(tǒng)計,最后保存輸出完成的測試記錄表。整個測試記錄數(shù)據(jù)輸出操作流程如圖2所示。

3 測試記錄批量輸出實現(xiàn)

Excel作為OLE自動化服務(wù)器,其中有許多OLE對象可以被客戶端應(yīng)用程序調(diào)用。常見的操作對象包括:應(yīng)用對象Application、工作簿對象WorkBook、工作列表對象WorkSheet、單元格對象Range等。

要操縱Excel的對象并調(diào)用其方法,首先需要在工程中添加Excel類庫。在Excel 2013中,類庫文件為默認(rèn)安裝路徑中的Excel.exe文件,即C:\Program Files\Microsoft\Office 15\Excel.exe。通過VC++平臺的類向?qū)В–lassWizard)選擇目標(biāo)類庫后,選擇所要添加的對象類,即可生成包含所選對象類的excel.cpp文件和excel.h頭文件,然后自動添加到開發(fā)工程。完成類庫的添加后,可以進行應(yīng)用程序的工程開發(fā)。

對OLE服務(wù)器(即Excel對象)的調(diào)用分為以下幾個步驟。

3.1 OLE服務(wù)初始化

OLE初始化在CmyApp::InitInstance()中完成,初始化代碼如下:

if (!AfxOleInit())

{

AfxMessageBox(IDP_OLE_INIT_FAILED);

return FALSE;

}

如果OLE服務(wù)初始化成功,則AfxOleInit()返回一個非零值,否則返回值為0。

3.2 創(chuàng)建Excel服務(wù)

操作Excel進行表格填寫和圖表操作需要的對象類為應(yīng)用對象_Application、工作簿集合Workbooks、工作簿_Workbook、工作表單集合Worksheets、工作表單_Worksheet、單元格Range、圖表對象集合ChartObjects、圖表對象_Chart等。使用各對象前需要定義對象實例,同時定義COleVariant類型的默認(rèn)參數(shù)如(covOptional等)和LPDISPATCH類型的接口指針。創(chuàng)建Application對象的代碼如下:

if (!app.CreateDispatch("Excel.Application"),NULL)

{

AfxMessageBox("創(chuàng)建Excel服務(wù)失敗!");

return;

}

app.SetVisible(TRUE);

須使用SetVisible方法設(shè)置,對用戶可見,否則創(chuàng)建的服務(wù)無法正常關(guān)閉,也無法創(chuàng)建新的服務(wù)。

3.3 相關(guān)對象的關(guān)聯(lián)調(diào)用

根據(jù)操作方式的不同,對工作簿book對象的關(guān)聯(lián)分為兩種:一是添加新的工作簿到工作簿集合,即新建空白Excel文檔進行操作;二是打開預(yù)定Excel文檔進行關(guān)聯(lián)操作。前者使用Add方法完成新建文檔并關(guān)聯(lián)的操作,后者使用Open方法打開預(yù)設(shè)路徑的文檔。本文使用后一種方法來打開設(shè)計好的測試記錄表模板進行操作,相關(guān)代碼如下:

books=app.GetWorkbooks();

::GetCurrentDirectory(MAX_PATH,path);

strPath.Format(“%s”,path);

strPath += “\\Template.xlsx”;

lpDisp=books.Open(fileName,

covOptional,covOptional,covOptional,covOptional,

covOptional,covOptional,covOptional,covOptional,

covOptional,covOptional,covOptional,covOptional,

covOptional,covOptional

);

ASSERT(lpDisp);

book.AttachDispatch(lpDisp);

工作表單集合使用工作簿的GetSheets方法得到,工作表單則通過GetItem方法傳入表單頁索引sheetNum獲取,代碼如下:

Sheets =book.GetSheets();

Sheet=sheets.GetItem(COleVariant((short)sheetNum));

獲取單元格range的關(guān)聯(lián)操作可以通過range對象的AttachDispatch方法得到工作表單sheet內(nèi)的所有單元格,也可以通過sheet對象的GetRange方法傳入表格單元格的索引范圍。使用前者方法得到范圍后,使用SetItem方法輸入坐標(biāo)索引和設(shè)定值,可以填寫單元格,后者通過SetValue2方法設(shè)定單元格范圍內(nèi)的值。因為需要填寫固定的單元格,后者更便于格式化表格索引參數(shù),故選用GetRange方法實現(xiàn)單元格的填寫,相關(guān)代碼如下:

//格式化單元格索引

strRange.Format(“I%d”,i);

//設(shè)置單元格

Range=sheet.GetRange(COleVariant(strRange), COleVariant(strRange));

//填寫單元格

Range.SetValue2(COleVariant(m_value));

3.4 釋放各個調(diào)用對象

在對各對象完成操作后,需要依次釋放各個對象,否則會出現(xiàn)無法再次進行Excel服務(wù)注冊的錯誤。

4 數(shù)據(jù)分析圖表生成方法

生產(chǎn)報告所需圖表是一組測試數(shù)據(jù)的針對某些指標(biāo)的散點圖,在選取多組數(shù)據(jù)后,調(diào)用OLE服務(wù)寫入Excel并完成圖表生成。打開文檔,使用CfileDIalog類生成一個模態(tài)對話框來選取多組測試數(shù)據(jù),再將所需指標(biāo)數(shù)據(jù)寫入Excel文檔,操作寫入單元格的方法同上一節(jié)表格輸出。

生成圖表使用ChartObjections、ChartObjection和_Chart類來完成,從工作表單到圖表對象層層關(guān)聯(lián),最后獲得圖表對象的關(guān)聯(lián)[3]。相關(guān)代碼如下:

Double left = 50, top = 100, width = 800, height = 300;//圖表坐標(biāo)與寬高

lpDisp = sheet.ChartObjects(covOptional);

chartobjects.AttachDispatch(lpDisp);

chartobject = chartobjects.Add(left, top, width, height);

chart.AttachDispatch(chartobject.GetChart());

chart.SetChartType(-4169);//散點圖類型常量

關(guān)聯(lián)后,用ChartWizard方法傳入相關(guān)參數(shù)生成圖表,相關(guān)代碼如下:

lpDisp = sheet.GetRange(_variant_t(“D1”0, _variant_t(“D9”));

var.pdisVal = lpDisp;

chart.ChartWizard(var,// Source

covOptional,//Gallery

covOptional,//Format

COleVariant((short)2),//PlotBy

covOptional,//CategoryLabels

covOptional,//SeriesLabels

COleVariant((short)FALSE),//HasLegend

COleVariant(“title”),//Title

COleVariant(“x_title”),//CategoryTitle

COleVariant(“y_title”),//ValueTitles

covOptional//ExtraTitle

);

其中,PlotBy為0按行取值,為1則按列取值;HasLegend表示是否需要圖例,Tile、CategTile和ValueTile可以分別設(shè)置圖表標(biāo)題、[X]軸標(biāo)題和[Y]軸標(biāo)題,其余參數(shù)項填入默認(rèn)參數(shù)。生成圖表效果如圖3所示。

5 結(jié)語

本文通過采用OLE技術(shù)實現(xiàn)了某型產(chǎn)品測試記錄表的自動化輸出和批次測試數(shù)據(jù)的圖表生成。以往依靠手工完成的數(shù)據(jù)填寫和繪制任務(wù)需要耗時幾十分鐘,使用自動化技術(shù)完成僅需數(shù)分鐘,該技術(shù)在某型產(chǎn)品的生產(chǎn)交付測試中得到了良好應(yīng)用,并已推廣到類似產(chǎn)品的測試工作中,工作效率大幅度提升。

參考文獻:

[1]呂靜.基于OLE自動化實現(xiàn)Excel動態(tài)報表[J].電腦知識與技術(shù),2017(9):180-181.

[2]朱晗.基于對象鏈接與嵌入技術(shù)的數(shù)據(jù)校驗系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:華中科技大學(xué),2016.

[3]劉志江,羅欣,周博,等.VC++平臺下基于OLE技術(shù)的Excel圖表自動化輸出[J].煤礦機械,2013(8):272-275.

主站蜘蛛池模板: 日韩毛片在线播放| 国产国产人在线成免费视频狼人色| 91视频精品| 国产成人精品亚洲77美色| 中国一级特黄视频| 97国产在线观看| 99精品免费欧美成人小视频 | 日本精品影院| 久久狠狠色噜噜狠狠狠狠97视色| 国产精品香蕉| 欧美在线网| 亚洲第一成年人网站| 首页亚洲国产丝袜长腿综合| 婷婷在线网站| 久久天天躁狠狠躁夜夜2020一| 亚洲无码电影| 97精品伊人久久大香线蕉| 国产嫖妓91东北老熟女久久一| 91无码视频在线观看| 国产综合精品一区二区| 亚洲愉拍一区二区精品| 美女被躁出白浆视频播放| 国产美女在线观看| 久久九九热视频| 欧美啪啪精品| 特级毛片免费视频| 天天综合亚洲| 一级在线毛片| 亚洲一道AV无码午夜福利| 精品国产电影久久九九| 国产草草影院18成年视频| 手机成人午夜在线视频| 国产又粗又爽视频| 国产麻豆永久视频| 色噜噜中文网| 午夜天堂视频| 毛片在线区| 日韩精品欧美国产在线| 久久人体视频| 三级国产在线观看| 成人免费一级片| 欧美一级在线看| 国产一级毛片yw| 国产视频欧美| 国产欧美一区二区三区视频在线观看| 色噜噜狠狠色综合网图区| 在线人成精品免费视频| 国产白丝av| 国产成人综合日韩精品无码不卡| 国产午夜人做人免费视频中文| 国产av色站网站| 精品国产污污免费网站| 亚洲免费人成影院| 在线观看无码av五月花| 欧美成人a∨视频免费观看| a级免费视频| 国产成人资源| www.99精品视频在线播放| 国产精品亚洲五月天高清| 91在线一9|永久视频在线| 欧美日韩亚洲国产主播第一区| 欧美成人午夜视频免看| 国产乱人激情H在线观看| 国产精品白浆在线播放| 人妖无码第一页| 一本大道香蕉中文日本不卡高清二区| 91色综合综合热五月激情| 日韩123欧美字幕| 午夜性爽视频男人的天堂| 久久公开视频| 亚洲国产天堂久久综合226114| 亚洲AV无码乱码在线观看裸奔| 亚洲精品在线影院| 国产小视频免费观看| 亚洲AⅤ无码日韩AV无码网站| 国产精品无码作爱| 亚洲视频免| 亚洲一本大道在线| 九色视频一区| 亚洲欧美成人在线视频| 99九九成人免费视频精品| 久久综合五月婷婷|