張曉春
(中石油大慶油田有限責任公司測試技術服務分公司,黑龍江 大慶163453)
隨著油田地質對生產測井解釋的時效性要求越來越高,目前解釋人員手工編制大量測井解釋成果報告,容易出錯,且需隨時按照需求修改報告樣式,工作強度較大。為此,筆者設計并實現了測井解釋成果報告系統。
系統總體框架圖如圖1所示。

圖1 系統總體框架圖
1)數據層 數據層主要完成數據庫的連接、數據訪問等操作。采用本地數據和數據庫結合的方式,其中本地數據采用CIFLog[1]的Cif Plus文件系統,可以與CIFLog數據共享[2]。數據層提供統一的數據訪問接口,在數據讀寫中,不必考慮數據源自本地文件或是遠程數據庫,因而實現了本地系統與遠程數據庫的數據操作統一。
2)服務層(業務邏輯層) 服務層隔離表示層與數據層,其向上對表示層進行業務操作處理,包括接口、服務、組件等,向下對數據層進行數據訪問操作和業務處理,并將處理后的結果返回表示層。同時,該層還提供數據維護、數據檢驗、數據管理、界面組件、參數配置、報告及模板的管理服務,以供表示層的各模塊調用。
3)表示層(應用層) 表示層提供界面與用戶之間交互,顯示數據處理的結果。表示層中的各個功能模塊基于服務層之上,包括創建井文件、圖頭輸入、成果表輸入、報告模板設計、報告編輯、報告輸出和數據備份模塊。
1)創建井文件模塊 主要是保存井場基本信息,如測井日期、中文井號、測井項目、所在區塊、地理位置等。
2)圖頭輸入模塊 主要保存下井的儀器參數、施工井況、完井數據、測井班組、操作員、解釋人員、解釋說明等。
3)成果表輸入模塊 主要保存測井解釋成果數據,包括解釋層段信息、產液量、產油量、含水率等。該模塊提供計算功能,可以根據解釋公式計算相關成果數據。操作人員可以通過手工方式錄入數據,也能從CIFLog平臺的數據庫中自動提取相關數據。
4)報告編輯模塊 主要對解釋成果報告的數據、樣式進行編輯。由于用戶要求多種多樣,系統設計了可編程式的報告編輯功能,用戶通過該功能,可直接在報告編輯器的界面上編寫函數,無需修改軟件系統主程序即可看到修改后的報告效果。報告編輯模塊的二次開發功能是該系統最有特色的功能。
5)報告輸出模塊 根據用戶需求,將制作完成的測井解釋成果報告輸出并最終保存到擴展名為.doc的Wor d文檔中。
6)報告模板設計模塊 主要用于設計解釋成果報告的樣式。由于每個測井項目的解釋成果報告的樣式相似,為了快速制作測井解釋成果報告,系統提供了報告模板設計功能,即主要對解釋成果報告模板進行設計制作,包括封面、目錄、井場施工概況、成果圖表、解釋結論及施工建議,用戶只需根據需求修改相應細節即可。設計完成的模板保存起來,操作人員再編制該測井項目的解釋報告時,可直接選擇模板生成報告,這樣可以提高工作效率。
7)數據備份模塊 主要功能是對數據庫中的數據(包括模板和報告腳本)進行備份,以防數據丟失。同時也可將數據庫中的模板及報告下載到本地磁盤,這樣方便操作人員使用。
該系統采用模塊化方法設計,使用Java的Lookup機制動態嵌入報告編輯、報告輸出等功能模塊,每個模塊之間松散耦合[3-4],采用Java調用COM組件的方式來創建和操作Word文檔[5]。系統流程圖如圖2所示。

圖2 系統流程圖
系統提供報告腳本編輯器,這樣不必修改主程序,還可提高系統的可維護性。同時,報告腳本編輯器支持二次開發,可以在系統界面上編寫函數和相應方法并直接運行(見圖3)。此外,系統采用微軟的VBA語言(相當于 “Word”或 “Excel”的遙控器)實現測井解釋成果圖表的繪制,其開發速度快,不用更改主程序代碼即可運行。測井解釋成果報告表樣式圖如圖4所示。

圖3 報告腳本編輯器功能界面圖

圖4 測井解釋成果報告表樣式圖
采用Java和VBA技術設計和實現了測井解釋成果報告系統。該系統能根據用戶需求,自由定制各種樣式的測井解釋成果報告,并實現了測井解釋成果報告的數據輸入、報告編輯、報告輸出、報告模板設計等功能,提高了測井解釋的時效。目前,該系統已被大慶油田多個生產測井解釋單位使用,獲得了用戶的好評,因而具有良好的市場應用前景。
[1]李寧,王才志,劉英明,等 .一體化網絡測井處理解釋軟件平臺CIFLog[J].石油科技論壇,2013,32(3):6-10.
[2]杜冬梅,許彩欣 .三層C/S結構報刊發行信息系統的設計與實現 [J].微型電腦應用,2007,23(12):35-36.
[3]夏守姬,李寧,李偉忠,等.Java測井平臺上多語言應用集成設計 [J].石油學報,2010,31(5):810-814.
[4]Boudreau T,Tulach J.Net Beans富客戶端編程權威教程 [M].葉亮譯 .北京:清華大學出版社,2008.
[5]李玉強 .基于COM技術與JNI技術的通用數據交換技術的研究 [D].武漢:武漢理工大學,2005.