我有一個使用表單的程序。這些表單指向main.prg(set defa,set path)中設置的c:\ filepath1中的文件。我製作了這些文件的測試副本,在main.prg中更改路徑,這些表單仍然引用舊路徑中的文件。我不想重新創建所有表單中的所有數據環境。我怎樣才能避免這樣做?任何幫助,將不勝感激。更新程序目錄
大小姐。
我有一個使用表單的程序。這些表單指向main.prg(set defa,set path)中設置的c:\ filepath1中的文件。我製作了這些文件的測試副本,在main.prg中更改路徑,這些表單仍然引用舊路徑中的文件。我不想重新創建所有表單中的所有數據環境。我怎樣才能避免這樣做?任何幫助,將不勝感激。更新程序目錄
大小姐。
當使用Dataenvironment並且DataEnvironment表中記錄的路徑存在時,則無論當前路徑是什麼,都會使用該路徑。如果你不想觸摸Dataenvironment(甚至是編程),那麼你必須刪除該路徑(例如重命名)。
作爲一個方面說明:我有:
UpdateDE(this)
我DataEnvironment.BeforeOpenTables方法
。在UpdateDE.prg中,我有代碼在DE中循環所有遊標,並將它們的路徑設置爲我想用作「當前」的路徑。
編輯:這裏是一個示例UpdateDE.prg:
Lparameters toDE
Do setups && prg keeping common "set" entries
Local Array aDEMembers[1]
Local lnMembers,ix,lcMembers
If !(Type('oApp')='O' And !Isnull(m.oApp))
Public oApp
oApp = Createobject('myApp')
Endif
lnMembers = Amembers(aDEMembers,m.toDE,2)
For ix=1 To m.lnMembers
With Evaluate('toDe.'+aDEMembers[m.ix])
If Lower(.BaseClass) == 'cursor'
If Atc(oApp.cAppDBC,.Database) > 0
.Database = Addbs(oApp.cAppDataPath)+oApp.cAppDBC
Else
.CursorSource = Addbs(oApp.cAppDataPath)+Justfname(.CursorSource)
Endif
Endif
Endwith
Endfor
Define Class myApp As Custom
cAppDBC = 'myDatabase.dbc'
cAppDataPath=Fullpath('data')
cCurPath = ''
Procedure Init
This.cCurPath = Set('path')
If File('dbparam.dbf') && a small dbf that holds path to current data folder
Select dataLoc From dbparam Where locType == 'DATABASE' Into Array arrDataLoc
If _Tally > 0
This.cAppDataPath = arrDataLoc
Set Path To (arrDataLoc[1]+';'+This.cCurPath)
Endif
Use In 'dbparam'
Endif
Endproc
Procedure Destroy
Set Path To (This.cCurPath)
Endproc
Enddefine
我結束了重命名,則默認路徑通過所有的屏幕會在程序然後重新編譯。感謝您的幫助。我確實瞭解它,可能是另一個好的解決方案。
切廷 - 你當然愛福克斯:) – Missy
雖然我也與其他語言一起工作,但是我確實:)順便說一句,我通過編程方式向所有窗體添加這樣的東西。如果你需要它通知我。 –