陽(yáng)躍圖,石啟亮,鄧振興
(中國(guó)衛(wèi)星海上測(cè)控部,江蘇 江陰214431)
遠(yuǎn)望號(hào)船通用設(shè)備種類多、數(shù)量大、技術(shù)含量高,船員流動(dòng)快,采取傳統(tǒng)的管理模式很難適應(yīng)工作需要。采用現(xiàn)代計(jì)算機(jī)管理技術(shù)是實(shí)現(xiàn)科學(xué)、高效地管理船用設(shè)備的良好途徑。為此開發(fā)了船用設(shè)備信息管理系統(tǒng),該系統(tǒng)的開發(fā)主要包括數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序兩個(gè)方面。同時(shí)根據(jù)設(shè)備使用情況,不斷更新對(duì)設(shè)備的管理檔案,能夠?yàn)榇迷O(shè)備管理人員簡(jiǎn)化管理模式,并提供充足的信息和快捷的查詢手段。
船用設(shè)備信息管理系統(tǒng)的設(shè)計(jì)思想必須符合船用設(shè)備管理規(guī)范的工作流程,可以引導(dǎo)設(shè)備管理人員在使用軟件時(shí)自然遵循船用設(shè)備管理標(biāo)準(zhǔn)模式,提高設(shè)備信息管理的效率。本系統(tǒng)是由滿足船用設(shè)備管理所需要的、彼此互相聯(lián)系的所有船用設(shè)備信息有機(jī)構(gòu)成的一個(gè)能經(jīng)濟(jì)有效地實(shí)現(xiàn)船用設(shè)備管理功能的整體,同時(shí)能根據(jù)需要將數(shù)據(jù)以word或excel文檔的形式導(dǎo)出。船用設(shè)備信息管理系統(tǒng)的功能模塊組成見(jiàn)圖1。
圖1 系統(tǒng)功能模塊
①基本信息模塊,主要完成系統(tǒng)基本信息以及各種信息的查詢;②設(shè)備管理模塊,主要完成設(shè)備信息、線纜連接等信息的管理;③故障管理模塊,主要完成故障信息、船用設(shè)備自修、故障歸零、應(yīng)急措施等信息的管理;④人員管理模塊,主要完成人員信息、工作記錄等信息的管理;⑤備件管理模塊,主要完成備件、工具等信息的管理;⑥維修管理模塊完成待維修設(shè)備、送修設(shè)備等信息的管理;⑦系統(tǒng)服務(wù)模塊,主要完成數(shù)據(jù)庫(kù)文件備份、恢復(fù)、壓縮以及系統(tǒng)幫助等管理;⑧系統(tǒng)維護(hù)模塊,主要完成人員權(quán)限、系統(tǒng)初始化設(shè)置等管理。
系統(tǒng)維護(hù)方面根據(jù)需要將用戶分為兩種:普通用戶及系統(tǒng)管理員。其中,普通用戶能進(jìn)行查詢,生產(chǎn)word和excel文檔以及各種原始數(shù)據(jù)的錄入。而系統(tǒng)管理員能對(duì)系統(tǒng)所有功能進(jìn)行操作并進(jìn)行系統(tǒng)維護(hù)。
在Windows XP操作系統(tǒng)下,采用delphi開發(fā)界面程序,數(shù)據(jù)庫(kù)由Microsoft Access生成。數(shù)據(jù)庫(kù)方面的應(yīng)用歷來(lái)是Delphi的優(yōu)勢(shì),Delphi中含有豐富的控件,能夠快速方便地連接數(shù)據(jù)庫(kù)和讀寫數(shù)據(jù)庫(kù)內(nèi)容。在系統(tǒng)中,使用TTable和TQuery組件來(lái)連接數(shù)據(jù)庫(kù),兩者在使用上很相似。TTable處理一個(gè)表很方便,不能進(jìn)行多表處理,但TQuery組件可以進(jìn)行多表處理,因?yàn)門Query組件可以使用SQL語(yǔ)法作為獲取數(shù)據(jù)源的根據(jù),TQuery組件的核心是SQL語(yǔ)言,它通過(guò)執(zhí)行SQL語(yǔ)句來(lái)實(shí)現(xiàn)程序功能。使用Query最大的優(yōu)點(diǎn)是它的靈活性,而使用變量進(jìn)行動(dòng)態(tài)查詢時(shí)是它靈活性的最大體現(xiàn)。在程序中,可以使用(:)在SQL中設(shè)置變量,TQuery組件便會(huì)將這些變量存入TParams中,TParams以數(shù)組的形式保存變量,賦值的操作主要通過(guò)Params或ParamByName來(lái)實(shí)現(xiàn)。
根據(jù)船用設(shè)備管理的普遍特點(diǎn)和特有的管理模式,主要的業(yè)務(wù)流程見(jiàn)圖2。
采用Microsoft Access數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名為zbxx.mdb,數(shù)據(jù)庫(kù)中包含設(shè)備信息表、設(shè)備故障表、歸零報(bào)告表、船用設(shè)備自修表、應(yīng)急措施表、備件信息表、人員基本信息表等總共52個(gè)表。
啟動(dòng)主程序,驗(yàn)證操作員名稱和密碼后,進(jìn)入系統(tǒng)主界面。系統(tǒng)主界面主要實(shí)現(xiàn)的功能有:通過(guò)菜單和工具欄快速調(diào)用相應(yīng)子程序;操作具有權(quán)限的業(yè)務(wù);顯示單位、操作員和日期時(shí)間等狀態(tài)信息;顯示事項(xiàng)公告以及在指定時(shí)間提醒設(shè)備借用信息。
項(xiàng)目文件是在設(shè)計(jì)時(shí)所創(chuàng)建的,為主程序文件,是主窗體以及其它自動(dòng)創(chuàng)建的窗體實(shí)例化的地方,一般不需要編輯項(xiàng)目文件,除非要執(zhí)行程序初始化例程、顯示啟動(dòng)畫面或執(zhí)行其它必須在程序啟動(dòng)時(shí)執(zhí)行的例程。系統(tǒng)的項(xiàng)目文件為main.dpr,因?yàn)橐獔?zhí)行程序初始化例程、顯示啟動(dòng)動(dòng)畫,所以需要編輯項(xiàng)目文件。
系統(tǒng)中Word文檔導(dǎo)出主要采用的方法是事先按要求構(gòu)造好Word模板文件,然后將數(shù)據(jù)庫(kù)中的信息導(dǎo)出到Word文檔。主要過(guò)程如下。
1)在USES單元中加入WordXP,OleServer;
2)數(shù)據(jù)發(fā)送到Word,如果及其沒(méi)有Word,則提示信息。使用函數(shù)CreateOleObject(‘Word.Application’);
3)以指定的模板文件template.res創(chuàng)建新Word文檔,wordApp.Documents.AddOld(templateName,newTemplate);然后取得取文檔中的第1張表vTable:=wordApp.ActiveDocument.Tables.Item(1);最后通過(guò)循環(huán)語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)庫(kù)字段輸出到word文檔中指定位置vTable.Cells(Row,Col).Range.Text:=DataSet.fieldbyname('FieldName').asstring。
為實(shí)現(xiàn)導(dǎo)出到Excel功能,定義一個(gè)過(guò)程DriverToExcel,該過(guò)程實(shí)現(xiàn)DBGrid控件所顯示的數(shù)據(jù)轉(zhuǎn)入到Excel中,當(dāng)其它模塊有需要實(shí)現(xiàn)這一功能的,引入這個(gè)過(guò)程即可。
1)在USES單元中加入ExcelXP,OleServer;
2)數(shù)據(jù)發(fā)送到Excel,如果及其沒(méi)有Excel,則提示信息。使用函數(shù)CreateOleObject(‘Excel.Application’)、CreateOleObject(‘Excel.Sheet’);
3)過(guò)程實(shí)現(xiàn)如下:首先添加工作簿,使用WorkBook:=ExcelApp.WorkBooks.Add;然后建表名稱ExcelApp.Cells(2,Col):=Title;設(shè)置數(shù)據(jù)源DataSet:=DBGrid.DataSource.DataSet;通過(guò)循環(huán)語(yǔ)句實(shí)現(xiàn)導(dǎo)入所有DBGrid顯示的字段名FieldName:=DBGrid.Columns[I].Title.Caption;ExcelApp.Cells(Row,Col):=FieldName;然后將DBGrid的值傳給EXCEL,F(xiàn)ieldName:=Columns[J].FieldName;ExcelApp.Cells(Row,Col):=″+DataSet.FieldByName(FieldName).AsString+″。
由于使用Access作為數(shù)據(jù)庫(kù)時(shí),隨著使用時(shí)間的增加,Access數(shù)據(jù)庫(kù)文件會(huì)不斷增加容量,因此需要對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行壓縮。
在程序中只要先斷開數(shù)據(jù)庫(kù)連接,確保無(wú)其他用戶打開或使用數(shù)據(jù)庫(kù)文件,然后調(diào)用上述函數(shù),就實(shí)現(xiàn)指定數(shù)據(jù)庫(kù)文件的壓縮。
在遠(yuǎn)望號(hào)船船用設(shè)備中,存在元件較為復(fù)雜、連接線纜多的實(shí)際困難,備品備件管理和維護(hù)檢修要求高,新崗位人員可通過(guò)系統(tǒng)快速查詢?cè)O(shè)備狀況,以對(duì)設(shè)備有全面的了解和評(píng)估。
1)在相應(yīng)的部門下,輸入設(shè)備的基本性能、管理人員和設(shè)備組成等資料,在日常管理使用中,可對(duì)設(shè)備的使用情況進(jìn)行適時(shí)更新,不斷完善設(shè)備檔案資料,參見(jiàn)圖3。
圖3 船用設(shè)備信息錄入
2)當(dāng)需要對(duì)設(shè)備使用情況進(jìn)行查詢時(shí),進(jìn)入查詢界面,把需要的有用信息導(dǎo)出打印;特別是崗位人員變動(dòng)時(shí),新上船人員可以對(duì)設(shè)備基本情況、性能快速查詢,參見(jiàn)圖4、5。
圖4 船用設(shè)備信息瀏覽查詢
3)在相關(guān)航運(yùn)企業(yè)內(nèi)部,沒(méi)有較為全面的設(shè)備管理系統(tǒng),大型公司一般為使用設(shè)備的簡(jiǎn)要目錄,調(diào)撥管理使用時(shí)主要是根據(jù)相關(guān)部門的庫(kù)管員根據(jù)自身的日常管理接觸加以分類,缺乏科學(xué)詳細(xì)的質(zhì)量管理要求。而這個(gè)研發(fā)管理系統(tǒng),較好地解決了此類問(wèn)題,提高了工作效率和管理質(zhì)量,使船用設(shè)備管理高效率運(yùn)轉(zhuǎn)、確保各項(xiàng)工作順利開展。
圖5 船用設(shè)備信息查詢導(dǎo)出
1)系統(tǒng)具有檢索迅速、查找方便、存儲(chǔ)量大、可靠性高等特點(diǎn),在日常工作中,提高了工作效率。
2)系統(tǒng)把以往大量的Word、Excel文檔錄入到數(shù)據(jù)庫(kù)中,通過(guò)對(duì)數(shù)據(jù)庫(kù)中設(shè)備故障等信息的檢索,能為系統(tǒng)管理者掌握設(shè)備信息、設(shè)備故障、技術(shù)狀況等提供了全方位的動(dòng)態(tài)信息,有利于開展船用設(shè)備信息的分析和研究。
3)系統(tǒng)還處在初步試運(yùn)行階段,下一步研究發(fā)展方向主要是拓展功能,完善系統(tǒng)運(yùn)行,包括系統(tǒng)與設(shè)備的包容性,系統(tǒng)與局域網(wǎng)的互通性等,使之具備遠(yuǎn)程查詢功能。