• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于VB的氣田報表核查核算及數(shù)據(jù)整理

    2021-03-07 12:36:37王博學(xué)王少奇張建忠張小鳳
    電腦知識與技術(shù) 2021年36期

    王博學(xué) 王少奇 張建忠 張小鳳

    摘要:該文介紹了基于Visual Basic語言程序開發(fā),該程序從氣田工區(qū)數(shù)據(jù)核算、氣井單井?dāng)?shù)據(jù)核查、不同時期報表數(shù)據(jù)核算對比入手,實(shí)現(xiàn)問題輸出、相關(guān)數(shù)據(jù)整理。該程序高效核查核算數(shù)據(jù),有效減少異常數(shù)據(jù)、錯誤數(shù)據(jù)傳播帶來的危害,為后續(xù)氣田開發(fā)分析提供更高質(zhì)量的數(shù)據(jù)。

    關(guān)鍵詞:Visual Basic編程;數(shù)據(jù)核算核查;氣田報表

    中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A

    文章編號:1009-3044(2021)36-0100-03

    開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

    1 背景

    油氣田開發(fā)生產(chǎn)過程中產(chǎn)生很多報表,各類報表數(shù)據(jù)需要檢查審核,由于數(shù)據(jù)量大,人工檢查審核耗時、煩瑣,甚至需要多人的合作才能完成。鑒于此,借助于計算機(jī)的強(qiáng)大數(shù)據(jù)處理功能,來處理重復(fù)煩瑣耗時的數(shù)據(jù)檢查審核、整理工作,具有相當(dāng)大的優(yōu)勢。為此基于Visual Basic(VB)語言編制、生成了針對本單位氣田采氣日報檢查、整理的應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)對比、報告生成、數(shù)據(jù)簡單匯總整理的功能。采氣日報表樣表如圖1。

    Visual Basic語言在程序編寫方面具有較為廣泛的應(yīng)用,其具有可視化集成開發(fā)環(huán)境、以事件驅(qū)動、用戶界面圖形化等特點(diǎn),在設(shè)計實(shí)現(xiàn)中小型系統(tǒng)方面有著特有的優(yōu)勢[1-3]。RojasSola José Ignacio等人[4]將Visual Basic結(jié)合CATIA軟件實(shí)現(xiàn)產(chǎn)品設(shè)計制造,Arun Datta[5]將Visual Basic應(yīng)用在工藝工程設(shè)計中,陳麗秀[6]將其應(yīng)用在實(shí)驗(yàn)數(shù)據(jù)處理中,Yong Wang等人[7]將VISUALBASIC與FORTRAN混合語言編程在水文氣象模型可視化技術(shù)中應(yīng)用?;?Visual Basic(VB)發(fā)展而來的VBA,內(nèi)嵌于Office 辦公軟件,為辦公帶來了許多便利[8-9]。

    2 程序功能需求

    通過VB語言編寫程序,主要實(shí)現(xiàn)以下五個功能:

    1) 工區(qū)產(chǎn)氣數(shù)據(jù)、產(chǎn)水?dāng)?shù)據(jù)、壓力數(shù)據(jù)等的核算及問題輸出;

    2) 氣井單井產(chǎn)氣數(shù)據(jù)、產(chǎn)水?dāng)?shù)據(jù)、壓力數(shù)據(jù)、溫度數(shù)據(jù)等的核查及問題輸出,如,核查誤填數(shù)值、異常數(shù)值;

    3) 氣井狀態(tài)核查及問題輸出;

    4) 前日、當(dāng)日日報表中數(shù)據(jù)對比、核算及問題輸出;

    5) 對復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行重構(gòu),實(shí)現(xiàn)數(shù)據(jù)整理。如,將圖1中的數(shù)據(jù)提取整理成圖2所示格式的數(shù)據(jù)。根據(jù)圖2中的數(shù)據(jù)便很容易在Excel中繪制單井生產(chǎn)動態(tài)曲線,如圖3。

    需要說明的是,核查是指核對兩個數(shù)據(jù)是否一致,核對數(shù)據(jù)與正確數(shù)據(jù)的一致性。主要對溫度、壓力、產(chǎn)氣、產(chǎn)水、注醇數(shù)據(jù)進(jìn)行核查,實(shí)現(xiàn)對異常數(shù)據(jù)、非正常數(shù)值字符進(jìn)行篩選,并按要求輸出。

    核算是指重新計算并判斷計算結(jié)果與報表給出的數(shù)值是否一致。主要對井區(qū)平均溫度、平均壓力數(shù)據(jù)及井區(qū)累產(chǎn)氣、累產(chǎn)水、累注醇數(shù)據(jù)進(jìn)行重新計算。計算結(jié)果與報表中給出的數(shù)值進(jìn)行對比,若兩個數(shù)值不一致則數(shù)據(jù)“異?!被颉安灰恢隆?,并按要求輸出。

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

    3.1 設(shè)計思路

    報表核查核算及數(shù)據(jù)整理主要包括:數(shù)據(jù)調(diào)入、數(shù)據(jù)核查核算、結(jié)果輸出、數(shù)據(jù)整理。首先實(shí)現(xiàn)數(shù)據(jù)調(diào)入,然后通過計算機(jī)分別對單井、井區(qū)相關(guān)數(shù)據(jù)進(jìn)行核查核算并輸出結(jié)果形成報告。最后,對相關(guān)數(shù)據(jù)進(jìn)行提取整理。設(shè)計思路圖見圖4。

    3.2 程序介紹

    本文介紹部分關(guān)鍵程序。點(diǎn)選調(diào)入數(shù)據(jù)文件程序、數(shù)據(jù)核算核查程序、檢查結(jié)果輸出程序、數(shù)據(jù)整理程序等四部分程序介紹如下:

    1)點(diǎn)選調(diào)入數(shù)據(jù)文件程序

    ...

    CommonDialog1.Filter = "所有文件(*.*)|*.*"

    CommonDialog1.ShowOpen

    strPath = CommonDialog1.FileName

    ...

    通過通用對話框點(diǎn)選需要檢查的日報表,并加載到檢查程序,然后開展后續(xù)操作。

    2)數(shù)據(jù)核算對比、核查(以產(chǎn)氣數(shù)據(jù)為例)程序

    ①氣井單井?dāng)?shù)據(jù)核查

    ...

    If Cells(i, 6).Value = "" Then Else If Cells(i, 6).Value > 30 Then Print #1, Cells(i, 2).Value; Tab(40); "套壓大于30MPa";

    If Cells(i, 10).Value = "" Then Else If Cells(i, 10).Value > 150000 Then Print #1, Cells(i, 2).Value; Tab(40); "日產(chǎn)氣大于15萬立方米";

    ...

    其中,變量i為for語句中進(jìn)行循環(huán)計數(shù)的循環(huán)變量, Cells(i, 6)、 Cells(i, 10)分別為報表中給出的單井套壓、日產(chǎn)氣數(shù)據(jù),Cells(i, 2)為單井井號所在單元格。若套壓大于30MPa,輸出井號和壓力數(shù)值到輸出文件中;若日產(chǎn)氣大于15萬立方米,輸出井號和壓力數(shù)值到輸出文件中。

    ②工區(qū)產(chǎn)氣數(shù)據(jù)核算對比

    ...

    If Abs(Cells(ii + 2, 5).Value - Qgr) < 0.01 Then Else Print #1, "日產(chǎn)氣不匹配"

    If Abs(Cells(ii + 2, 6).Value - Qgy) < 0.01 Then Else Print #1, "月產(chǎn)氣不匹配"

    If Abs(Cells(ii + 2, 7).Value - Qgn) < 0.01 Then Else Print #1, "年產(chǎn)氣不匹配"

    ...

    其中,變量ii為for語句中進(jìn)行循環(huán)計數(shù)的循環(huán)變量,變量Qgr、Qgy、Qgn分別為程序核算的工區(qū)日產(chǎn)氣、月產(chǎn)氣、年產(chǎn)氣,Cells(ii + 2, 5)、Cells(ii + 2, 6)、(Cells(ii + 2, 7)分別為報表中給出的日產(chǎn)氣、月產(chǎn)氣、年產(chǎn)氣所在單元格。核算的數(shù)據(jù)與報表給出數(shù)據(jù)進(jìn)行對比,如果兩個數(shù)據(jù)超出誤差范圍,便在輸出報告中寫入"月產(chǎn)氣不匹配"。

    ③工區(qū)前日、當(dāng)日數(shù)據(jù)對比

    ...

    Write #1, "工區(qū)月累產(chǎn)氣核查對比:當(dāng)日累產(chǎn)氣-前日累產(chǎn)氣-當(dāng)日產(chǎn)氣:" & Worksheets(M).Cells(ii + 2, 6).Value - Worksheets(M - 1).Cells(ii + 2, 6).Value - Worksheets(M).Cells(ii + 2, 5).Value

    ...

    其中,Cells(ii + 2, 6)、Cells(ii + 2, 5)分別為報表中給出的工區(qū)月累產(chǎn)氣數(shù)據(jù)、工區(qū)日產(chǎn)氣數(shù)據(jù),M為按照日期排列的表單總數(shù)。當(dāng)日累產(chǎn)氣數(shù)據(jù)與前日累產(chǎn)氣數(shù)據(jù)對比,如果當(dāng)日累產(chǎn)氣數(shù)據(jù)與前日累產(chǎn)氣數(shù)據(jù)之差等于今日產(chǎn)氣數(shù)據(jù),則說明數(shù)據(jù)計算正確。

    3)輸出報告程序

    數(shù)據(jù)對比后,需要將對比結(jié)果按順序輸出形成報告。首先,通過程序Open "C:\RESULT.txt" For Append As #1在電腦C盤下的虛擬存儲文件夾建立txt文件。然后,通過Print函數(shù)或者Write函數(shù)將數(shù)據(jù)核算對比、核查程序運(yùn)行結(jié)果寫入“RESULT.txt”文件,形成報告。

    例如:

    If Abs(Cells(ii + 2, 6).Value - Qgy) < 0.01 Then Else Print #1, "月產(chǎn)氣不匹配"

    該語句將程序核算的月產(chǎn)氣量與報表給出的月產(chǎn)氣量進(jìn)行對比,如果兩個數(shù)據(jù)超出誤差范圍,便在輸出報告中寫入"月產(chǎn)氣不匹配"。

    If Cells(i, 13).Value = "" Then Else If Cells(i, 13).Value > 50 Then Print #1, Cells(i, 2).Value; Tab(40); "日產(chǎn)水大于50立方米"

    該語句將核查單井的日產(chǎn)水量,如果日產(chǎn)水量數(shù)據(jù)超出50立方米,便在輸出報告中寫入井號及"日產(chǎn)水大于50立方米"。

    4)數(shù)據(jù)整理

    通過將需要的數(shù)據(jù)從日報表中提取到新建表單,并按照一定格式、計量單位進(jìn)行排列、換算,實(shí)現(xiàn)數(shù)據(jù)整理,此過程應(yīng)用賦值運(yùn)算符“=”。

    3.3 可視界面制作

    可視化操作界面有利于操作、人機(jī)互動。利用VB語言面向?qū)ο?、可視化的特點(diǎn)制作如下界面:

    1)文件點(diǎn)選界面。通過文件選擇框點(diǎn)選文件,避免直接向程序段寫入文件名稱、路徑,如圖5。

    界面制作過程中用到commondialog控件、command控件,其中,command控件,賦值為“點(diǎn)擊,選擇文件,并開始檢查”??丶荲isualBasic中預(yù)定義的對象,是由系統(tǒng)設(shè)計好提供給用戶使用的對象[10],方便編程使用。

    2)信息輸出界面。通過MsgBox 提示輸出文件存儲路徑 “C:/用戶/.../AppData/Local/VirtualStore/RESULT”,方便查找輸出文件,如圖6。通過MsgBox在程序末尾彈出“檢查結(jié)束”,如圖7,提示檢查程序運(yùn)行結(jié)束。

    3.4 運(yùn)行結(jié)果輸出

    運(yùn)行程序后生成的輸出結(jié)果示例如圖8:

    運(yùn)行結(jié)果給出了異常數(shù)值、錯誤數(shù)值及部分?jǐn)?shù)據(jù)的對比結(jié)果,為后續(xù)數(shù)據(jù)分析提供了更高質(zhì)量、更為可靠的數(shù)據(jù)。

    4 結(jié)束語

    本文介紹了基于VB編寫的程序在氣田生產(chǎn)數(shù)據(jù)檢查及數(shù)據(jù)整理的應(yīng)用。所編寫的程序能夠?qū)蟊頂?shù)據(jù)進(jìn)行核查、核算,有效提高報表審核效率,簡單明了地處理相關(guān)復(fù)雜煩瑣的工作。在實(shí)際應(yīng)用工作中可以根據(jù)需要擴(kuò)充程序,使程序功能更加豐富,報表檢查更加細(xì)致、高效。

    參考文獻(xiàn):

    [1] 高春艷,李賀.Visual Basic 項(xiàng)目開發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社,2013.

    [2] 海濱,關(guān)媛.Visual Basic 程序設(shè)計教程[M].南京:南京大學(xué)出版社,2014.

    [3] 馬赫,馮思度,張紅偉.學(xué)生成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].電腦知識與技術(shù),2019,15(6):61-62.

    [4] Rojas-Sola J I,del Río-Cidoncha G,Ortíz-Marín R,et al.Design and development of sheet-metal elbows using programming with visual basic for applications in CATIA[J].Symmetry,2020,13(1):33.

    [5] Datta A.Process engineering and design using visual basic[M].Boca Raton:CRC Press,2013.

    [6] 陳立秀.基于Visual Basic的試驗(yàn)數(shù)據(jù)處理[J].山東工業(yè)技術(shù),2017(13):17.

    [7] Wang Y,Ding Y Y,Shi L.Application of visual basic and FORTRAN mixed-language programming to visualization technology for hydro-meteorological model[J].Applied Mechanics and Materials,2012,263/264/265/266:1352-1355.

    [8] 李小遐.Excel VBA在辦公自動化中的應(yīng)用[J].電子測試,2014(22):105-106,95.

    [9] 王淏,亢娟娜.Excel VBA在測評成績計算中的應(yīng)用[J].辦公自動化,2021,26(2):63-64,26.

    [10] 劉炳文.Visual Basic 程序設(shè)計教程[M].4版.北京:清華大學(xué)出版社,2009:13.

    【通聯(lián)編輯:謝媛媛】

    茌平县| 昆山市| 定边县| 潼南县| 安阳市| 青冈县| 西和县| 奉新县| 永仁县| 临海市| 故城县| 安阳市| 镇沅| 筠连县| 岢岚县| 大冶市| 葵青区| 清新县| 杭州市| 尉犁县| 金门县| 松原市| 塘沽区| 南部县| 中方县| 丰镇市| 罗平县| 长岛县| 额济纳旗| 贡嘎县| 萍乡市| 屯昌县| 稻城县| 托克逊县| 武义县| 江源县| 新民市| 肃宁县| 潢川县| 荣成市| 商河县|