1,076
社区成员
发帖
与我相关
我的任务
分享
数据窗口的Describe和Evaluate
在Describe中可以描述某个属性的取值,但是如果想获取数据窗口对象中由属性、函数等构成的表达式的取值时,必须在函数Describe中使用函数Evaluate。
比如,dw_1为一个Freedom类型的数据窗口,每页显示一条记录。下面程序可以显示总页数:
string ls_modstring, ls_rownum
ls_rownum = String(dw_1.GetRow())
ls_modstring = "Evaluate('Page()'," + ls_rownum +")"
Parent.Title = "当前页: "+ dw_1.Describe(ls_modstring)
上面的例子不见得有很大的实用性,但是对于理解函数Describe中使用Evaluate有很大的帮助,而这两个函数的搭配可以提供无与伦比的灵活性。
数据窗口的函数Evaluate
在使用Describe描述数据窗口对象中的相关信息时,有一个非常重要的函数不能不掌握,就是Evaluate。 虽然函数Describe可以获取对象的信息,但是表达式的取值就不能正常读取了,而这又是经常遇到的。所以,函数Evaluate非常重要,它可以使函数Describe获取表达式的取值。该函数的语法是:
Evalute('expression',rowno)
其中,expression是属性表达式,rowno是要描述的行号。该函数放置在Describe的属性列表中。例如,判断第3行的salary工资是否大于1 000,如果大于则返回1,否则返回0,可以使用下面的语句:
dw_1.Describe("Evaluate('If(salary > 1000, 1, 0) ', 3)")
而使用下面的语法就是错误的:
dw_1.Describe("If(salary>1000,1,0) ")