張曉春
(中石油大慶油田有限責(zé)任公司測試技術(shù)服務(wù)分公司,黑龍江 大慶163453)
隨著油田地質(zhì)對生產(chǎn)測井解釋的時(shí)效性要求越來越高,目前解釋人員手工編制大量測井解釋成果報(bào)告,容易出錯,且需隨時(shí)按照需求修改報(bào)告樣式,工作強(qiáng)度較大。為此,筆者設(shè)計(jì)并實(shí)現(xiàn)了測井解釋成果報(bào)告系統(tǒng)。
系統(tǒng)總體框架圖如圖1所示。
圖1 系統(tǒng)總體框架圖
1)數(shù)據(jù)層 數(shù)據(jù)層主要完成數(shù)據(jù)庫的連接、數(shù)據(jù)訪問等操作。采用本地?cái)?shù)據(jù)和數(shù)據(jù)庫結(jié)合的方式,其中本地?cái)?shù)據(jù)采用CIFLog[1]的Cif Plus文件系統(tǒng),可以與CIFLog數(shù)據(jù)共享[2]。數(shù)據(jù)層提供統(tǒng)一的數(shù)據(jù)訪問接口,在數(shù)據(jù)讀寫中,不必考慮數(shù)據(jù)源自本地文件或是遠(yuǎn)程數(shù)據(jù)庫,因而實(shí)現(xiàn)了本地系統(tǒng)與遠(yuǎn)程數(shù)據(jù)庫的數(shù)據(jù)操作統(tǒng)一。
2)服務(wù)層(業(yè)務(wù)邏輯層) 服務(wù)層隔離表示層與數(shù)據(jù)層,其向上對表示層進(jìn)行業(yè)務(wù)操作處理,包括接口、服務(wù)、組件等,向下對數(shù)據(jù)層進(jìn)行數(shù)據(jù)訪問操作和業(yè)務(wù)處理,并將處理后的結(jié)果返回表示層。同時(shí),該層還提供數(shù)據(jù)維護(hù)、數(shù)據(jù)檢驗(yàn)、數(shù)據(jù)管理、界面組件、參數(shù)配置、報(bào)告及模板的管理服務(wù),以供表示層的各模塊調(diào)用。
3)表示層(應(yīng)用層) 表示層提供界面與用戶之間交互,顯示數(shù)據(jù)處理的結(jié)果。表示層中的各個(gè)功能模塊基于服務(wù)層之上,包括創(chuàng)建井文件、圖頭輸入、成果表輸入、報(bào)告模板設(shè)計(jì)、報(bào)告編輯、報(bào)告輸出和數(shù)據(jù)備份模塊。
1)創(chuàng)建井文件模塊 主要是保存井場基本信息,如測井日期、中文井號、測井項(xiàng)目、所在區(qū)塊、地理位置等。
2)圖頭輸入模塊 主要保存下井的儀器參數(shù)、施工井況、完井?dāng)?shù)據(jù)、測井班組、操作員、解釋人員、解釋說明等。
3)成果表輸入模塊 主要保存測井解釋成果數(shù)據(jù),包括解釋層段信息、產(chǎn)液量、產(chǎn)油量、含水率等。該模塊提供計(jì)算功能,可以根據(jù)解釋公式計(jì)算相關(guān)成果數(shù)據(jù)。操作人員可以通過手工方式錄入數(shù)據(jù),也能從CIFLog平臺的數(shù)據(jù)庫中自動提取相關(guān)數(shù)據(jù)。
4)報(bào)告編輯模塊 主要對解釋成果報(bào)告的數(shù)據(jù)、樣式進(jìn)行編輯。由于用戶要求多種多樣,系統(tǒng)設(shè)計(jì)了可編程式的報(bào)告編輯功能,用戶通過該功能,可直接在報(bào)告編輯器的界面上編寫函數(shù),無需修改軟件系統(tǒng)主程序即可看到修改后的報(bào)告效果。報(bào)告編輯模塊的二次開發(fā)功能是該系統(tǒng)最有特色的功能。
5)報(bào)告輸出模塊 根據(jù)用戶需求,將制作完成的測井解釋成果報(bào)告輸出并最終保存到擴(kuò)展名為.doc的Wor d文檔中。
6)報(bào)告模板設(shè)計(jì)模塊 主要用于設(shè)計(jì)解釋成果報(bào)告的樣式。由于每個(gè)測井項(xiàng)目的解釋成果報(bào)告的樣式相似,為了快速制作測井解釋成果報(bào)告,系統(tǒng)提供了報(bào)告模板設(shè)計(jì)功能,即主要對解釋成果報(bào)告模板進(jìn)行設(shè)計(jì)制作,包括封面、目錄、井場施工概況、成果圖表、解釋結(jié)論及施工建議,用戶只需根據(jù)需求修改相應(yīng)細(xì)節(jié)即可。設(shè)計(jì)完成的模板保存起來,操作人員再編制該測井項(xiàng)目的解釋報(bào)告時(shí),可直接選擇模板生成報(bào)告,這樣可以提高工作效率。
7)數(shù)據(jù)備份模塊 主要功能是對數(shù)據(jù)庫中的數(shù)據(jù)(包括模板和報(bào)告腳本)進(jìn)行備份,以防數(shù)據(jù)丟失。同時(shí)也可將數(shù)據(jù)庫中的模板及報(bào)告下載到本地磁盤,這樣方便操作人員使用。
該系統(tǒng)采用模塊化方法設(shè)計(jì),使用Java的Lookup機(jī)制動態(tài)嵌入報(bào)告編輯、報(bào)告輸出等功能模塊,每個(gè)模塊之間松散耦合[3-4],采用Java調(diào)用COM組件的方式來創(chuàng)建和操作Word文檔[5]。系統(tǒng)流程圖如圖2所示。
圖2 系統(tǒng)流程圖
系統(tǒng)提供報(bào)告腳本編輯器,這樣不必修改主程序,還可提高系統(tǒng)的可維護(hù)性。同時(shí),報(bào)告腳本編輯器支持二次開發(fā),可以在系統(tǒng)界面上編寫函數(shù)和相應(yīng)方法并直接運(yùn)行(見圖3)。此外,系統(tǒng)采用微軟的VBA語言(相當(dāng)于 “Word”或 “Excel”的遙控器)實(shí)現(xiàn)測井解釋成果圖表的繪制,其開發(fā)速度快,不用更改主程序代碼即可運(yùn)行。測井解釋成果報(bào)告表樣式圖如圖4所示。
圖3 報(bào)告腳本編輯器功能界面圖
圖4 測井解釋成果報(bào)告表樣式圖
采用Java和VBA技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了測井解釋成果報(bào)告系統(tǒng)。該系統(tǒng)能根據(jù)用戶需求,自由定制各種樣式的測井解釋成果報(bào)告,并實(shí)現(xiàn)了測井解釋成果報(bào)告的數(shù)據(jù)輸入、報(bào)告編輯、報(bào)告輸出、報(bào)告模板設(shè)計(jì)等功能,提高了測井解釋的時(shí)效。目前,該系統(tǒng)已被大慶油田多個(gè)生產(chǎn)測井解釋單位使用,獲得了用戶的好評,因而具有良好的市場應(yīng)用前景。
[1]李寧,王才志,劉英明,等 .一體化網(wǎng)絡(luò)測井處理解釋軟件平臺CIFLog[J].石油科技論壇,2013,32(3):6-10.
[2]杜冬梅,許彩欣 .三層C/S結(jié)構(gòu)報(bào)刊發(fā)行信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].微型電腦應(yīng)用,2007,23(12):35-36.
[3]夏守姬,李寧,李偉忠,等.Java測井平臺上多語言應(yīng)用集成設(shè)計(jì) [J].石油學(xué)報(bào),2010,31(5):810-814.
[4]Boudreau T,Tulach J.Net Beans富客戶端編程權(quán)威教程 [M].葉亮譯 .北京:清華大學(xué)出版社,2008.
[5]李玉強(qiáng) .基于COM技術(shù)與JNI技術(shù)的通用數(shù)據(jù)交換技術(shù)的研究 [D].武漢:武漢理工大學(xué),2005.