首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

关于宏替换与名称表达表的有关问题

2012-03-20 
关于宏替换与名称表达表的问题按帮助上说使用evaluate() 或 名称表达式比用宏快,想问一下下面这个表达式应

关于宏替换与名称表达表的问题
按帮助上说使用evaluate() 或 名称表达式比用宏快,想问一下下面这个表达式应如何写?
想将 & 改成 ()名称表达式 或 evaluate()
i = 1 
scan 
ttv = "thisform.text"+trans(i)+".Value = cDate"  
*** cDate 是字段名
&ttv 将这名换成名称表达式或evaluate() 
i = i + 1
endscan 


[解决办法]
Create Cursor t1 (a1 i) 
lcStr1="select * into cursor t2 from t1"+" where a1=0" 
&lcStr1. &&可以运行
Evaluate(lcStr1) &&报错
[解决办法]

探讨
就是如何执行某个控件的方法, 根据传递不同的参数来执行某个控件里的方法;

*** changevalue  &&&&方法名
para cNumber
ttg = "thisform.text"+cNumber+".GotFocus"
*** 这句用只能用 &宏来执行?
&ttg

[解决办法]
1.用名称表达式的地方:固定是各种名称的,如文件名、变量名、字段名、数组名等;
2.用Evaluate()的地方:计算表达式值的地方
3.只能用宏的地方:Set xxx to &a之类个别地方
4.把整条命令用宏替换,这样的用法的人还不少。我强烈建议大家别这么用,应把语句拆了,替换变化的部分,尽量用名称表达式或Evaluate()
5.楼主的问题,楼上都市夜猫已经给出答复了:属性相当于变量,用store就可用名称表达式代替了
6.还有,表单控件也可以用Controls()数组或setall方法给控件属性赋值。

热点排行