夏立軍,聶吉順
(大連中遠海運重工有限公司,遼寧大連 116113)
船廠的修造船工作具有涉及專業眾多、工程量龐大、設計方案獨立定制等特點,施工現場產生的問題眾多,對這些問題進行排查和處理十分重要。然而,很多船廠對施工現場數據的管理還停留在簡單的工作問題記錄和交接階段,沒有形成一套完整的信息處理流程,既易產生疏漏,也不利于數據的管理。相較于其他計算機語言,Visual Basic 操作簡單,容易上手,尤其適合非計算機專業的人員開發符合需求的軟件。
本文以船廠現場問題排查、記錄及處理(簡稱“現場拉練”)工作為切入點,以Visual Basic 為編程語言,以SQL Server 為后臺數據庫,以ActiveX數據對象(ActiveX Data Objects,ADO)為數據庫訪問技術,開發一套現場拉練信息管理系統,以滿足船企的使用需求。
Visual Basic 擁有圖形用戶界面(Graphical User Interface,GUI)和快速應用程序開發(Rapid Application Development,RAD)系統,不需要編寫大量代碼去描述界面的外觀和位置,僅需使用自帶的各種控件即可實現相應功能。
SQL Server 是當今主流數據庫管理系統之一,具有使用方便、可伸縮性好,以及與其他服務器軟件兼容性高、性價比高等優點。
本系統以Visual Basic 為編程語言,以SQL Server 為后臺數據庫,以ADO 為數據庫訪問技術,實現前端Visual Basic 和數據庫的交互連接。
在進行系統設計前,需要對軟件進行可行性分析,主要包括穩定性、安全性、高效性等方面[1]。
1.2.1 穩定性
對于程序的客戶端使用,應能保證從注冊、登錄到最終退出程序的全過程流暢無故障,不發生報錯及崩潰。
1.2.2 安全性
數據庫有足夠能力接收并儲存數據,且能保證信息的安全。用戶端通過注冊及密碼登錄等方式,確保僅用戶本人可對名下數據進行操控。
1.2.3 高效性
系統的操作界面應清晰明了,使用過程應簡便易行,效率及便捷性能應高出Excel 等傳統的記錄方式。軟件應具備較長的使用生命周期,通過獲得良好的經濟效益以抵消開發軟件的設計成本。
根據實際需求,系統設計以下4 個模塊:系統管理模塊、信息提交模塊、申報預覽模塊、統計及報表導出模塊。
系統管理模塊包含賬戶管理、密碼管理、主要流程控制等3 個部分。用戶在首次使用系統時,需要通過自己的員工編號進行注冊,每個員工編號和員工本人具有唯一對應關系,這樣既能保證每個員工有且僅有唯一的系統登錄賬號,還能規避冗余的賬戶注冊流程。密碼管理可幫助員工在忘記密碼且通過本人驗證的情況下對密碼進行重置。系統管理模塊設計流程見圖1。

圖1 系統管理模塊設計流程
如圖2 所示,信息提交模塊主要包含拉練信息提交、歷史數據預覽、管理和維護等兩部分。拉練信息主要包括項目船號、名稱,項目現狀及問題分析,處理方案及改進措施,提交人和責任人,提出時間和完成時間,配圖及補充說明等。預覽操作可按照時間搜索個人上傳的歷史數據。

圖2 信息提交模塊設計流程
申報預覽模塊從數據庫中調取滿足限定條件的員工,并賦予其預覽查閱的權限。限定條件包括時間和科室。申報預覽模塊設計流程見圖3。

圖3 申報預覽模塊設計流程
統計及報表導出模塊可對科室上報數據和公司匯總數據進行統計分析。科室內部統計每個員工的提交情況,主要包括拉練人次、記錄數量、案例分析數量、閉環數量等信息。公司對各科室的上報數據進行匯總,并進行對比分析。科室上報數據和公司匯總數據均可導出Excel 報表,以便進一步處理。統計及報表導出模塊設計流程見圖4。

圖4 統計及報表導出模塊設計流程
登錄窗體界面是程序運行的第一個窗體界面,也被稱為啟動界面(對象),其主要功能包括首次使用注冊、忘記密碼重置及常規登錄。登錄窗體界面流程圖見圖5[2]。

圖5 登錄窗體界面流程圖
在登錄時需要輸入工號和密碼,只有當工號和密碼文本框內輸入的值能匹配數據庫中的對應字段時才能登錄成功。若服務器中無對應工號,則提示用戶工號輸入錯誤。若數據庫中密碼字段為空,則提示用戶需進行注冊并彈出注冊頁面。注冊窗體界面流程圖見圖6。

圖6 注冊窗體界面流程圖
在進行注冊時,工號的文本框輸入值需要與數據庫對應字段相匹配。在此基礎上,判定密碼的復雜程度是否達標,以及2 次輸入的密碼是否一致。如無問題,則注冊成功。若用戶忘記密碼,則需要進行密碼重置,其邏輯判斷與注冊流程相似。
根據界面布局的不同,上傳主界面窗體可分為菜單欄、工具欄、狀態欄和主窗口;根據功能屬性的不同,上傳主界面窗體可分為個人上傳數據預覽板塊、信息填寫提交板塊、數據匯總統計及報表鏈接入口板塊。
3.2.1 個人上傳數據預覽板塊
個人上傳數據預覽板塊可對近期個人上傳的數據進行預覽查看。個人上傳數據預覽板塊主要借助MSHFlexGrid 控件,可用表格形式顯示數據庫中的數據。MSHFlexGrid 控件中每一個單元格的內容和數據庫中的對應字段均能實現一一映射的關系,并能通過循環語句將滿足條件的信息逐行顯示出來。
3.2.2 信息填寫提交板塊
信息填寫提交板塊的功能在于將用戶填入的信息文本寫入數據庫文件并進行保存。該板塊是整個程序的核心內容,也是后續修改、刪除等操作的基礎。數據信息可分為文本信息和圖片信息等兩種形式。信息填寫提交板塊通過TextBox 控件逐項填寫拉練內容,通過Label 控件給出填寫提示,通過image 控件上傳輔助說明圖片,通過DTPicker 控件記錄時間。信息填寫提交板塊窗體界面見圖7。

圖7 信息填寫提交板塊窗體界面
3.2.3 數據匯總統計及報表鏈接入口板塊
為方便上級部門和科室管理人員進行信息查閱和數據分析,需要整理員工個人的拉練提案,統計數據臺賬,并制作數據匯總報表。
科室數據預覽窗體將科室上報的信息進行整合,可按照時間或科室名稱進行篩選查看。科室數據預覽窗體通過MSHFlexGrid 控件顯示篩選結果,并在數據預覽版塊顯示詳細的文字和圖片信息。可通過點擊“導出到Excel”按鈕將科室數據預覽窗體的顯示內容導出至Excel 文件。
科室上報匯總窗體可通過表格形式展示科室員工的年度、月度數據上傳和提交情況,以便部門領導進行統計、管理、督促和激勵。可通過點擊“導出到Excel”按鈕將員工拉練的情況導出至Excel文件。
技術中心匯總窗體以科室為單位,統計出各科室的拉練工作進展情況,可通過點擊“導出到Excel”按鈕將具體數據導出至Excel 文件。
數據庫主要具有以下2 方面的作用:1)數據儲存;2)在程序打開記錄集,按照條件檢索時,加載和調用相關數據。利用SQL Server 建立數據庫db_sitetrain,在此數據庫下建立拉練數據表tb_sitetrain 和人員信息數據表tb_personinfo。
員工需要正確填寫工號和密碼才能正常登錄系統,只有填寫提交人姓名和科室才能對后續信息進行跟蹤和統計,這些過程都涉及系統和人員數據表的信息傳遞。人員數據表的結構屬性設計見圖8。

圖8 人員數據表的結構屬性設計
拉練信息是數據庫存儲的關鍵數據。數據表的設計宗旨是將用戶上傳的各類信息完整地保留下來,需要設計規范的名稱以及合理的數據類型。拉練數據表的結構屬性設計見表1。

表1 拉練數據表的結構屬性設計
各窗體模塊有一些變量和過程是通用的,程序在運行時需要不斷連接數據庫以調取和儲存數據。為提高編程效率,設計一個類模塊Moudle1.bas 以實現上述功能。
數據庫連接代碼[3]如下所示:

通過ksdm 過程對數據表中科室名稱所對應的代號進行識別和轉化。以舾裝和船體室為例,相關代碼如下所示:

登錄窗體通過設置2 個Label 控件提示用戶輸入指定信息,通過設置2 個TextBox 控件供用戶填寫工號及密碼,通過設置3 個Button 控件用于常規登錄、忘記密碼及注冊的運行情景,通過Image 控件展示背景畫面,通過設置1 個Label 控件顯示軟件版本信息。登錄窗體界面見圖9。

圖9 登錄窗體界面
5.3.1 上傳文字信息
以部分字段為例,上傳文字的主要代碼如下所示:

5.3.2 上傳圖片信息
通過數據流mstream 將CommonDialog 控件收集到的圖片路徑寫入二進制文件,將圖片信息保存到數據庫,并通過Image 控件實時顯示。
1)通過CommonDialog 控件打開一個對話框,用戶選擇需要上傳的圖片文件,主要代碼[4]如下:


2)通過數據流mstream 將CommonDialog 控件收集到的圖片路徑寫入二進制文件,主要代碼如下:

在上述代碼中,FileName2 字段為二進制文件的名稱,FileUploadTime2 字段為保存文件的建立時間,FileNameContent2 字段為二進制文件的內容。
3)將圖片在Image 控件中顯示的代碼如下:

5.3.3 顯示上傳記錄
利用MSHFlexGrid 控件顯示數據庫上傳結果,通過雙重For 循環將數據庫的字段一一呈現在每一個TextMatrix 中,代碼如下:


報表窗體主要包括科室數據報表、科室匯總報表、技術中心報表等內容,既可在軟件上查看,也能導出至Excel 文件。
5.4.1 軟件報表
通過調用數據庫并利用SQL 查詢語言select 檢索指定條件的數據,生成軟件報表。根據實際工作需要,報表可體現科室上報的拉練信息、科室個人數據的上傳統計,以及技術中心各科室月度上傳數據的對比情況。這樣既能獲得現場拉練的完整情況,也能掌握各科室員工的參與程度,便于更好地開展拉練工作。
5.4.2 Excel 文件
依靠Visual Basic 及其宏語言VBA,實現對Microsoft Excel 的控制,包括文本的單元格寫入、圖片文件的對象鏈接與嵌入(Object Linking and Embedding,OLE)對象插入、文字格式的設定、圖片大小及位置的設定等內容。
本文針對船廠現場問題排查、記錄及處理工作,以Visual Basic 為編程語言,以SQL Server 為后臺數據庫,以ADO 為數據庫訪問技術,開發了一套現場拉練信息管理系統。研究表明:該系統可實現相關信息的傳遞、儲存和查閱,方便相關人員進行數據處理與維護。