追加程序的開發(fā)
Q: 單單通過設(shè)定參數(shù),仍然無法實(shí)現(xiàn)的要求怎么辦?
A: 生產(chǎn)計(jì)劃排程軟件啟動時(shí),建議只通過參數(shù)設(shè)定啟動。但是有時(shí)候只通過設(shè)定參數(shù)設(shè)備卻無法滿足用戶要求。那時(shí)候首先研究通過運(yùn)用該軟件是否可以解決該問題。
如果還是不行我們再研究開發(fā)程序。我們?yōu)槭裁赐扑]用戶這樣做呢?那是因?yàn)閰?shù)設(shè)定與程序開發(fā)有很大的不同。程序開發(fā)雖然可以說只要開發(fā)什么都可以做到但是具有如下風(fēng)險(xiǎn):
●除了需要花銷開發(fā)成本(程序開發(fā)員的人工費(fèi))以及需要開發(fā)時(shí)間外,特別在使用當(dāng)初很容易發(fā)生錯(cuò)誤。
●為了在使用后進(jìn)行維護(hù),必須確保程序開發(fā)員不辭職特別是優(yōu)秀的系統(tǒng)工程師與程序開發(fā)員會被互相爭搶很難確保。
等等。如果這樣仍然認(rèn)為有必要時(shí)可以開發(fā)追加程序。追加程序開發(fā)有如下兩種:
① 外部程序開發(fā)
② 插件開發(fā)
關(guān)于這兩種程序開發(fā)方法說明如下:
外部程序開發(fā)
Q: 為了使獨(dú)自開發(fā)的程序與生產(chǎn)計(jì)劃排程軟件進(jìn)行數(shù)據(jù)合并并使其工作,有什么方法嗎?
A: 通過Microsoft Access等的RDB(關(guān)系數(shù)據(jù)庫)及文本文件的合作方法。通過外部程序向生產(chǎn)計(jì)劃排程軟件傳輸數(shù)據(jù),需要使用生產(chǎn)計(jì)劃排程軟件的導(dǎo)入功能。相反,要提取生產(chǎn)計(jì)劃排程軟件的日程表結(jié)果在外部程序中處理時(shí),需要使用生產(chǎn)計(jì)劃排程軟件的輸出功能。例如這樣通過RDB等方式與生產(chǎn)計(jì)劃排程軟件合作方法叫做疏隔合作,也可以說是相對性難易程度較低的程序開發(fā)。
插件開發(fā)
Q: 為了使組字開發(fā)的程序插件編入生產(chǎn)計(jì)劃排程軟件進(jìn)行合作使其運(yùn)行,應(yīng)該怎樣做操作?
A: 如果能夠開發(fā)出插件,那么就幾乎可以直接訪問所生產(chǎn)計(jì)劃管理器內(nèi)部的所有數(shù)據(jù)(對象、屬性),并且可以執(zhí)行參照、補(bǔ)充、變更、刪除與內(nèi)部處理的功能。通過與插件的密切合作,可以開發(fā)出高度且高速的程序。
為了能夠開發(fā)插件,就需要理解與充分利用COM接口這種技術(shù),所以與外部程序的開發(fā)相比,將是一項(xiàng)難度很大的軟件開發(fā)。
'//插件的資源代碼 Visual Basic的例子
'//制作類定義
'// 070327
Public Function CreateNewClass(className As String, classAlias As String, project As ASBProject, args As AsPlugInManager.ASPArgList) As ASOObject
Dim classDef As ASOObject
Set classDef = project.CreateUserClassDef(className, className)
If classDef Is Nothing Then
Set CreateNewClass = Nothing
Exit Function
End If
'制作類定義的別名
classDef.Alias = classAlias
'類途徑的別名
Dim classDef As ASOObject
Set classRoot = project.FindChild(className)
If Not classRoot Is Nothing Then
classRoot.Alias = classAlias
End If
' 返回類途徑。
Set CreateNewClass = Nothing
End Function