回 帖 发 新 帖 刷新版面

主题:请各位老师指教,此段代码错在哪,如何改正,谢谢!

在command中的click中代码如下:
table_name=getfile('dbf','数据表')
if empt(table_name)
  retu
endif
thisform.caption = table_name
n1 = rat('\',table_name)
n2 = rat('.DBF',upper(table_name))
tabname = subs(table_name,n1+1,n2-n1-1)
if !used(tabname)
  use &table_name in 0
endif
sele(tabname)
APPEND BLANK 
*thisform.load
thisform.VfpGrid.init
thisform.refresh
retu
在VfpGrid中的init中的代码如下:
this.columncount = -1
if empt(tabname)
  retu
endif
this.recordsource = tabname
for i = 1 to fcount(tabname)
  cString_i = alltrim(str(i))
  this.column&cString_i..header1.alignment = 2 
endfor

以上代码在编译时不出错,制作成安装程序后,安装到原开发路径下运行正常无错误,但是变路径安装运行就提示:代码错误、找不到别名tabname所代表的表、找不到变量i这几个错误,出错代码应该是这段:
this.columncount = -1
if empt(tabname)
  retu
endif
this.recordsource = tabname
for i = 1 to fcount(tabname)
  cString_i = alltrim(str(i))
  this.column&cString_i..header1.alignment = 2 
endfor
请各位老师指教,此问题该如何解决,如何改正,谢谢!

回复列表 (共6个回复)

沙发

1.建议用JUSTSTEM()获取主文件名
2.建议不用i做循环变量,因为他是9号工作区的别名,容易发生歧义

板凳

是路径问题,试试:
SET PATH TO sys(5)+sys(2003)
如果你的主文件夹下还有子文件夹,例如:“\数据库”、“\备份”
SET PATH TO sys(5)+sys(2003),数据库\,备份\

3 楼


谢谢楼上两位老师,我的问题还没解决,麻烦能说的详细些吗?我的水平真的很差劲。

4 楼

在主程序的开头放2楼的路径设置命令。
如果没有主程序只有表单,则放到表单的load 事件中。

5 楼

tabname,i 都是变量,建议在程序入口处,将这二个变量设置成全局变量看看。
PUBLIC tabname,i

6 楼

VfpGrid的init事件,在表单加载时就执行,当然找不到变量tabname。
在click事件中的tabname的作用域在这个代码段中,vfp.init事件根本看不到它

我来回复

您尚未登录,请登录后再回复。点此登录或注册