徐煒東
摘要:計(jì)量檢定工作中,平板平面度需處理的數(shù)據(jù)較多,人工計(jì)算尤為不便。文章依據(jù)國(guó)家頒布的最新平板檢定規(guī)程,開(kāi)發(fā)了基于VC++設(shè)計(jì)工具和Access數(shù)據(jù)庫(kù)技術(shù)平板平面度計(jì)量檢定軟件系統(tǒng)。
關(guān)鍵詞:平板平面度;VC++;數(shù)據(jù)庫(kù);計(jì)量檢定
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)01-0108-03
在平板平面度計(jì)量檢定中,檢定人員根據(jù)平板尺寸選擇相應(yīng)的測(cè)量點(diǎn)數(shù)。依據(jù)國(guó)家質(zhì)監(jiān)總局頒布的最新平板檢定規(guī)程,平板工作面測(cè)量點(diǎn)數(shù)與平板尺寸關(guān)系如表1[1]??梢钥闯?,當(dāng)平板尺寸越大,所需測(cè)量點(diǎn)數(shù)越多,需要處理的數(shù)據(jù)也就越多。檢定規(guī)程中所給出的計(jì)算公式較為復(fù)雜,采用人工計(jì)算方式不僅工作效率低,而且有可能損失數(shù)據(jù)精度。通過(guò)計(jì)算機(jī)軟件進(jìn)行處理,能有效克服人工計(jì)算方式中的諸多缺點(diǎn),提高工作效率。
表1 平板工作面測(cè)量點(diǎn)數(shù)
[平板尺寸/mm\&測(cè)量點(diǎn)數(shù)\&≤(400×400)\&≥9\&(630×400)~(1600×1000)\&≥25\&>(1600×1000)\&≥49\&]
1 開(kāi)發(fā)環(huán)境及工具
本文基于微軟公司的Visual Studio 2005 集成開(kāi)發(fā)環(huán)境開(kāi)發(fā),采用VC++設(shè)計(jì)工具和Access數(shù)據(jù)庫(kù)技術(shù)。
VC++是微軟公司開(kāi)發(fā)的面向?qū)ο蟮膚indows應(yīng)用程序可視化編程工具,封裝了大部分windows應(yīng)用程序開(kāi)發(fā)過(guò)程中所需用到的C++類,開(kāi)發(fā)人員可根據(jù)需要從這些類派生相應(yīng)的類。通過(guò)VC++開(kāi)發(fā)的應(yīng)用程序具有執(zhí)行效率高、可移植能力強(qiáng)等特點(diǎn)[2-3]。VC++通過(guò)API接口和COM控件可以方便地訪問(wèn)各種數(shù)據(jù)庫(kù),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的編輯、更新等操作。
Access數(shù)據(jù)庫(kù)是微軟公司推出的一種桌面數(shù)據(jù)庫(kù)系統(tǒng),操作簡(jiǎn)單,能方便的被各種編程工具訪問(wèn)。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)構(gòu)成及工作流程
本軟件實(shí)現(xiàn)了平板平面度準(zhǔn)確度等級(jí)的評(píng)定,采用模塊化設(shè)計(jì)思想,系統(tǒng)結(jié)構(gòu)如圖1所示,主要由五個(gè)模塊構(gòu)成,分別為參數(shù)設(shè)定模塊、數(shù)據(jù)輸入模塊、數(shù)據(jù)處理模塊、結(jié)果顯示模塊和數(shù)據(jù)庫(kù)模塊。其中,參數(shù)設(shè)定模塊由用戶設(shè)定所檢定平板相關(guān)參數(shù);數(shù)據(jù)輸入模塊是系統(tǒng)和用戶數(shù)據(jù)交互接口,由用戶輸入相關(guān)測(cè)量數(shù)據(jù);數(shù)據(jù)處理模塊對(duì)用戶輸入的數(shù)據(jù)進(jìn)行處理;結(jié)果顯示模塊用來(lái)顯示已經(jīng)檢定的平板的相關(guān)信息,方便操作人員查詢相關(guān)信息;數(shù)據(jù)庫(kù)模塊實(shí)現(xiàn)對(duì)所檢定平板信息的保存。
圖1 系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)工作流程如圖2所示。軟件啟動(dòng)后,用戶需要先設(shè)定相關(guān)參數(shù),根據(jù)用戶設(shè)定的參數(shù),會(huì)彈出相應(yīng)的交互界面。在交互界面中,用戶需要輸入相應(yīng)的測(cè)量數(shù)據(jù),輸入數(shù)據(jù)完畢后,用戶即可點(diǎn)擊相應(yīng)按鈕進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)處理結(jié)束后,相應(yīng)的評(píng)定結(jié)果會(huì)顯示在交互界面中。用戶可以通過(guò)點(diǎn)擊菜單彈出相應(yīng)界面顯示所檢定平板信息,并將該信息保存到系統(tǒng)數(shù)據(jù)庫(kù)中。
圖2 系統(tǒng)工作流程圖
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)及訪問(wèn)
常見(jiàn)的數(shù)據(jù)庫(kù)有Access、SQL Server、Oracle等,不同的數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)合不同。Access數(shù)據(jù)庫(kù)是微軟公司推出的office辦公軟件套件中的重要一員,主要用于日常工作中的一些小型數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)合,易于使用且界面友好;SQL Server數(shù)據(jù)庫(kù)具有良好的兼容性,能夠進(jìn)行聯(lián)機(jī)分析處理,能夠很好地適應(yīng)在線應(yīng)用程序部署,主要用于一些中大型數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)合;Oracle數(shù)據(jù)庫(kù)具有高效率、可靠性好的優(yōu)點(diǎn),能夠很好的應(yīng)用于一些大數(shù)據(jù)場(chǎng)合。由于本系統(tǒng)所需要處理的數(shù)據(jù)量較小,綜合考慮采用Access數(shù)據(jù)庫(kù)。
VC++中提供了多種數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),常見(jiàn)的有ODBC API、MFC ODBC、DAO、OLE DB、ADO等。ODBC API數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)是一種底層訪問(wèn)技術(shù),能夠進(jìn)行異步處理、事務(wù)管理,但使用起來(lái)較復(fù)雜,所需編寫代碼工作量大;MFC ODBC以類的形式封裝了ODBC API函數(shù),操作起來(lái)相對(duì)簡(jiǎn)便[4];DAO提供了一種通過(guò)程序代碼創(chuàng)建和操縱數(shù)據(jù)庫(kù)的機(jī)制;OLE DB是VC++數(shù)據(jù)庫(kù)開(kāi)發(fā)中提供的新技術(shù),基于COM接口,對(duì)關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)提供了統(tǒng)一的接口,同ODBC API一樣,屬于一種底層訪問(wèn)技術(shù);ADO訪問(wèn)技術(shù)基于OLE DB的訪問(wèn)接口,繼承了OLE DB訪問(wèn)技術(shù)的優(yōu)點(diǎn),將OLE DB接口進(jìn)行封裝,定義了ADO對(duì)象,因而能夠很方便的操作數(shù)據(jù)庫(kù)[5-6]。基于此,本文采用ADO數(shù)據(jù)庫(kù)訪問(wèn)方式。
通過(guò)ADO方式訪問(wèn)Access數(shù)據(jù)庫(kù),其編程步驟如下:
1)為使用ADO中封裝各種操作數(shù)據(jù)庫(kù)的類,需要在工程頭文件stdafx.h中加入動(dòng)態(tài)鏈接庫(kù),同時(shí)為避免命名空間沖突,需要重命名名空間,代碼如下:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" \ no_namespace,rename("EOF","adoEOF") //鏈接動(dòng)態(tài)庫(kù),重命名名空間
2)由于ADO基于OLE DB技術(shù),因此需要初始化COM接口,代碼如下:
AfxOleInit();//初始化COM接口
3)為了能夠單獨(dú)操作數(shù)據(jù)庫(kù),可在工程中添加類,通過(guò)在類中編寫相關(guān)函數(shù)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,其中連接數(shù)據(jù)庫(kù)代碼實(shí)現(xiàn)如下:
_ConnectionPtr m_pConnection; //定義Connection指針
HRESULT hr; //創(chuàng)建句柄對(duì)象
hr = m_pConnection.CreateInstance("ADODB.Connection"); //創(chuàng)建Connection對(duì)象
if (SUCCEEDED(hr)) //判斷Connection對(duì)象是否創(chuàng)建成功
{
hr = m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\database\\DetectData.accdb;","","",adModeUnknown); //連接數(shù)據(jù)庫(kù)
MessageBox("連接數(shù)據(jù)庫(kù)成功!");
}
2.3 系統(tǒng)界面設(shè)計(jì)
系統(tǒng)的主要任務(wù)是實(shí)現(xiàn)平板平面度等級(jí)的評(píng)定以及相關(guān)信息的保存,啟動(dòng)界面如圖3所示。用戶可以根據(jù)窗口中的提示來(lái)操作軟件。當(dāng)用戶在菜單中選擇檢測(cè)類型后,會(huì)彈出參數(shù)選擇窗口,用戶選定好完整的參數(shù)后,點(diǎn)擊“確定”按鈕數(shù)據(jù)交互窗口彈出,圖4是某種平板尺寸下系統(tǒng)的界面。
圖3 啟動(dòng)界面
圖4 工作界面
用戶輸入測(cè)量數(shù)據(jù)后,即可點(diǎn)擊“計(jì)算”按鈕 ,系統(tǒng)進(jìn)行數(shù)據(jù)處理;點(diǎn)擊“數(shù)據(jù)”按鈕,系統(tǒng)計(jì)算所得的相關(guān)參數(shù)會(huì)在編輯框中顯示;點(diǎn)擊“結(jié)果”按鈕,系統(tǒng)會(huì)依據(jù)平板檢定規(guī)程給出平板平面度的檢定結(jié)果。
得到檢定結(jié)果信息后,用戶點(diǎn)擊菜單“檢定信息”,會(huì)彈出如圖5所示對(duì)話框,用戶填寫完整相關(guān)信息后,點(diǎn)擊“確定”按鈕即可將檢定信息保存到數(shù)據(jù)庫(kù)中,如圖6所示。
圖5 檢定信息窗口
圖6 檢定信息數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)
3 結(jié)束語(yǔ)
本文設(shè)計(jì)的平板平面度檢定系統(tǒng)界面簡(jiǎn)潔,易于操作,解決了人工計(jì)算的諸多不便,符合中華人民共和國(guó)國(guó)家計(jì)量平板檢定規(guī)程JJG 117-2013。通過(guò)在我站日常檢定工作中的應(yīng)用,極大地提高了工作人員的工作效率。
參考文獻(xiàn):
[1] 中華人民共和國(guó)國(guó)家計(jì)量檢定規(guī)程JJG 117-2013[S].北京: 中國(guó)質(zhì)檢出版社, 2013.
[2] 賀軍,高勝友,蔣方帥,等.Visual C++ 6.0技術(shù)內(nèi)幕[M].北京: 北京希望電子出版社, 1999.
[3] Jeffrey Richter著. Windows高級(jí)編程指南[M].王書洪, 劉光明,譯. 北京: 清華大學(xué)出版社, 1999.
[4] 劉銳,寧梁水,宋坤. Visual C++程序開(kāi)發(fā)范例寶典[M].北京:人民郵電出版社, 2009.
[5] 姚領(lǐng)田.精通MFC程序設(shè)計(jì)[M].北京: 人民郵電出版社, 2006.
[6] 四維科技,劉煒,徐慧.Visual C++數(shù)據(jù)庫(kù)編程技術(shù)與實(shí)例[M].北京: 人民郵電出版社, 2005.