楊 春,張 馳,黃廬敏,何小健
(泰州口岸船舶有限公司,江蘇 泰州 225321)
船舶設計零件分類統計系統設計與實現
楊 春,張 馳,黃廬敏,何小健
(泰州口岸船舶有限公司,江蘇 泰州 225321)
針對船舶企業設計過程中要利用Excel文件來描述不同子系統的零部件相關信息,而采購部門需要匯總這些信息的情況。設計配置方式的不同Excel來源格式的自適應處理方法,并利用.net平臺結合OLE技術開發實現船舶設計零部件統計系統,該統計方法支持自定義層級,具有良好的推廣應用性。
船舶設計;.net;零件;分類統計
隨著船舶行業轉型升級的壓力越來越大,通過信息技術手段改善業務流程處理的環節,提高處理效率成為信息化與工業化深度融合應用的現實需要,其中,零部件的分類統計是船舶相關行業的一類典型的信息化應用需求。在信息處理系統中,從Excel導入數據是一類非常普遍的需求,為此,嘗試實現從Excel讀入數據時的來源格式配置,從多個WorkSheet中采用配置方式分別讀入數據,形成靈活的處理方法。
目前,船舶企業的設計過程基本上已經完全采用信息化手段了,CAD、TRIBON軟件等行業應用軟件已經非常普遍[1-4]。但國內的大多數中小船舶企業,都存在設計任務外包的情況。在外包設計任務后,外協的設計單位會根據船舶管系子系統將該子系統中涉及到的“閥件、附件、管件”等按照規格、材料等進行統計,并提供給船廠多份Excel格式的統計文件,一般一艘船舶最少都有幾十份這樣的文件,多的達到上百份。

圖1 來源Excel文件格式示例
圖1給出的是船舶的艉管滑油系統所涉及的相關零部件情況。船舶企業在拿到這樣的文件后,需要進一步統計全船一共需要的相同規格、材料的閥件、附件的數量,以提供給采購部門進行訂購。這個過程是一個比較繁瑣的事情,因為數據多,為了防止人為統計的失誤,最少需要統計2遍。最終需要形成的統計效果見圖2。

圖2 最終的統計目標效果示例
傳統上,依靠人工統計的方式,一艘船舶的數據統計需要一個人接近30個工作日的統計,才能形成最終的結果,而且還不能保證萬無一失。在這個背景下,開發了“船舶設計零件分類統計系統”,通過該系統,只需要不到5 min的時間,就可以完成一艘船舶的數據統計。
2.1 配置式Excel來源格式的實現
通過OLE技術可以實現從Excel文件中讀入需要的信息,但比較困難的是不同外協單位設計的Excel文件在格式上會有差異。比如,列的排列順序、列的標題文字、數據區域與標題區域的間隔等。如果程序無法實現對來源Excel格式的適應,將無法真正實用。為解決格式適應問題,設計了一個關鍵信息的配置文件,該文件的內容見圖3。
其中實現從Excel配置式讀入數據的關鍵配置信息說明如下。
1)讀入數據列的長度配置。從Excel讀入的數據,需要保存到內存的DataTable對象中去,該對象對字符類型的對象列需要設定每列的允許長度,對數值類型的字段則不需要。而且,因為來源Excel格式不固定,就需要該DataTable對象是根據配置信息動態創建的,可能為10列,也可能為12列。為實現指定列的長度,采用的配置設定信息為
列長度=100,20,100,100,200,20,20,100,-1,-2,200,100,400
每列之間用“,”符號進行分隔,對大于0的值,則表示該列為字符類型,長度為設定值,對小于0的值,則表示其為數值類型,其中“-1”表示對應的是整數列,“-2”對應的浮點數列。
2)讀入數據的列名稱設置。從Excel讀入的數據,需要保存到內存的DataTable對象中去,因為該對象是動態創建的,因此,該對象的每一列表示什么含義,也是需要配置的。相應的配置語句示例為
列名稱=系統名稱,編號,標準號,圖號,名稱,通徑,壓力,材料,數量,重量,銘牌刻字內容,供貨,備注等。
3)來源Excel列與目標表的列對應配置。Excel文件中信息是以列來分隔的,在讀入數據時,Excel來源文件的某列對應目的表的那一列,這個是最可能發生變化的,其配置語句為
Excel列編號=1,2,2,3,4,5,6,7,8,9,11,12
結合上面的列名稱配置,該語句表示的含義為Excel文件中的第1列(A列)的數據讀入后對應內存表的第2個字段(因為內存表的索引是從0開始的),而內存表中的第1個字段來源于Excel文件的表頭區域,而不是來源于數據表體區域。
4)其他相關配置信息。“系統名稱與編號所在行間距差=2;系統名稱所在列=1;關鍵定位字符=號”這3個配置信息是用于確定在Excel標題區域保存“系統名稱”這個信息的單元格的位置。
“閥件WorkSheet名稱=VALVE;附件WorkSheet名稱=ACCESSORY”這2個配置信息是在Excel文件采用多個WorkSheet的情況下,每個WorkSheet中對應的是什么內容。以圖2所示為例,其中WorkSheet名稱為“VALVE”的表示其下存儲的是該管路子系統的閥件信息。如果不同的設計單位提供的Excel來源文件格式變動,只需要修改這些配置信息就可以完全適應,非常靈活。
“必須有信息的列=3,7”這個配置信息定義的是從excel中讀入信息時,哪些列是必須輸入,如果沒有輸入則報警提示。“只需要中文信息的列=3,6”這個信息設定了如果某些列同時提供了中英文,可以設定只需要中文信息,以加快信息獲取的準確度。
2.2 數據讀入過程
數據讀入的流程見圖4。

圖4 數據讀入流程
在讀入過程中,比較關鍵的是允許設定只讀入Excel來源文件中的一類信息,比如只讀入閥件或只讀入附件等;同時,可以分批次讀入,即在已經讀入幾份文件的基礎上,追加文件的讀入。因此,必須具備讀入信息的保存功能。文中采用xml文件的方式來保存數據,在下次追加讀入時可以從xml文件中加載到內存DataTable對象,然后再按照圖5所示流程讀入新的來源數據。
2.3 分類統計的實現
為實現支持分類層次的自定義,開發設計了一個統計控件,支持以拖拽的方式設定分組統計的層次。實現的軟件界面見圖5。

圖5 軟件界面示例
圖5是已經從選定的多份Excel文件中讀入信息到內存DataTable表對象后的效果。
圖6是在讀入數據的基礎上,進行分層次統計匯總分析后的效果。分組統計的第1層次是根據“閥件名稱”,第2層次是根據“通徑”,即從左到右,層級依次細化。通過拖拽方式改變列的排列順序,就可以實現統計層級的修改。
本文所開發的船舶設計零件分類統計系統,實現了根據需要從Excel來源文件中進行信息分層次匯總的功能,其中的來源文件格式信息配置,自動創建內存表,分層次匯總控件設計,統計數據信息導出等功能等對其他類似系統開發有比較強的借鑒作用。本文所開發的這套系統已經在相關船舶企業及設計單位推廣應用,取得了良好的應用效果。

圖6 信息統計效果示例
[1] 程慶和.船舶工業的新型工業化道路與船舶企業信息化建設[J].信息化縱橫,2008(9):34-38.
[2] 劉 杰. 基于OLE技術的造船廠信息一體化研究[J].船海工程,2007,36(4):86-88.
[3] 姚玉南.船舶信息管理系統開發研究[J].船海工程,2006,30(4):110-113.
[4] 姚競爭.數字化造船一體化數據平臺關鍵技術研究[D].哈爾濱:哈爾濱工程大學,2011.
Design and Realization of Classified Summarizing System forMachine Parts of Ship Design
YANG Chun, ZHANG Chi, HUANG Lu-min, HE Xiao-jian
(Taizhou Kou′an Shipbuilding Co., Ltd., Taizhou Jiangsu 225321, China)
During ship design procedure, Excel files may be used to describe the information related to the machine parts of different subsystems, but purchasing department needs the summary information. To make the automatic summery of information possible, a machine parts summarizing system with self-adaptive method to match different configured Excel source formats for ship design is developed based on the.net platform.The system supports customizing levels and has good popularization and applicability.
ship design; .net; machine parts; classified summarizing
10.3963/j.issn.1671-7953.2015.01.026
2014-09-28
江蘇省科技支撐計劃項目(BE2013107)
楊 春(1973-),男,碩士,高級工程師
U662
A
1671-7953(2015)01-0100-03
修回日期:2014-10-28
研究方向:船型研發及船舶企業信息化應用
E-mail:yangc@cnkasc.com