以下是对你的代码的改进:
LOCAL lcPath
lcPath = LEFT(SYS(16),RAT("\",SYS(16)))
SET DEFAULT TO (lcPath)
SET PATH TO form,report,menu,data,picture,system,backup
* 是不是应该把所有子目录都加入路径,有待考证!
引用实例:
USE myTable &&可能等价于 USE data\myTable
DO FORM myForm &&可能等价于 DO FORM form\myForm
说明:
也可以明确地加上路径引用,如:REPORT FORM report\myReport ...
有时必须加上路径,如: COPY TO backup\myBakTable
我是这样处理的:
PUBLIC path0,path1,path2,path3,path4,path5,path6,path7,path8
path0=LEFT(SYS(16),RAT("\",SYS(16)))
IF RIGHT(path0,1)="\"
path0=LEFT(path0,LEN(path0)-1)
ENDIF
path1=path0+'\form'
path2=path0+'\report'
path3=path0+'\menu'
path4=path0+'\data'
path5=path0+'\picture'
path6=path0+'\system'
path7=path0+'\temp'
path8=path0+'\backup'
SET PATH TO &path1,&path2,&path3,&path4,&path5,&path6,&path7,&path8
在程序中是: do form &path1\*.scx
现在是用一软件创建安装盘,可安装在其它目录,就是不能安装在 program files下.这是为何?不知各位是如何处理的?
Set hours to 24
set noti on
set clock statu
set cons off
set excl on
set clock on
set exac on
set statu off
set notify off
set safe off
set sysmenu off
_screen.backcolor=9803038
_SCREEN.MOVABLE=.F.
_screen.maxbutton=.t.
_screen.windowstate=2
_SCREEN.AUTOCENTER=.T.
_screen.closable=.f.
_screen.caption=' lp-III ¿¼ÇÚϵͳVER 6.4°æ ·ÉÓ¥¹¤×÷ÊÒ COPYRIGHT(C)ALL RIGHTS RESERVED 2001Äê11ÔÂ'
wait windows 'ÕýÔÚÕûÀíÁÙʱÊý¾Ý,ÇëÉÔºò... ...'timeout 1
set safe on
set cent on
set esca off
LOCAL lcPath
lcPath = SYS(16,0)
lcPath = LEFT(lcPath,RAT("\",lcPath))
SET DEFAULT TO (lcPath)
SET PATH TO form,set PATH TO date,set PATH TO report,set PATH TO system\date\qx
do form kqsystem\system\form\enter
read events
制作安装盘后,安装在c:\program files下
当我在enter登录表单中检测密码时(密码放在kqsystem\system\date\qx\ma
),老是出现 use c:\kqsystem\system\date\qx\ma.dbf不存在。
所搜索的路径总是C:\,而不是 c:\program files\kqsystem\...
针对此,请帮我解决一下此问题?
续:一个比较完整的例子:
lcPath = SYS(16,0)
lcPath = LEFT(lcPath,RAT("\",lcPath))
SET DEFAULT TO (lcPath)
SET PATH TO PROGS,FORMS,DATAS
....
DO ...
DO FORM ...
USE ...