当前位置: 代码迷 >> VFP >> 关于宏替换与名称表达表的有关问题
  详细解决方案

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

热度:8857   发布时间:2013-02-26 00:00:00.0
关于宏替换与名称表达表的问题
按帮助上说使用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方法给控件属性赋值。
  相关解决方案