admin 管理员组

文章数量: 1086019


2024年3月21日发(作者:蔚来董事长车祸身亡)

PB中的Describe,Evaluate,LookUpDisplay小结

一、Describe 可以描述DW中某个对象的某个属性的取值,虽然函数Describe可以

获取对象的信息,但是表达式的取值就不能正常读取了,而这又是经常遇到的.

二、在Describe 中添加上Evaluate以后,具备了取值,判断以及计算的功能。 如

果想获取数据窗口对象中由属性、函数等构成的表达式的取值时,必须在函数Describe

中使用函数Evaluate。

语法:Evalute('expression',rowno)

其中,expression是属性表达式,rowno是要描述的行号。该函数放置在Describe

的属性列表中。

(1)判断:

例如,判断第3行的salary工资是否大于1 000,如果大于则返回1,否则返回0,

可以使用下面的语句:

dw_be("Evaluate('If(salary > 1000, 1, 0) ', 3)")

(2)取值:

dw_be("evaluate('column_conn',1)") //取'column_conn'中第一行的值

(3)计算:

dw_be("Evaluate('SUM((salary)',0)") //可以避免从数据库中提取数据

注意:表达式要有引号,Evaluate()也要有引号。

三、LookUpDisplay 在数据窗口控件上显示的值和字段实际得到的值并不相同,使

用函数GetItemX只能读取这样的字段的真实取值,而不是用户看到的值。如何才能读取

用户看到的值?可以使用此函数,LookUpDisplay函数不能直接从PowerScript调用,可

以在Describe中和Evaluate函数配合使用。因为函数Lookupdisplay不能指定对哪行数

据进行操作,它的参数只有一个字段名称,所以必须和Evaluate函数配合使用。该函数的

语法是:Lookupdisplay(columnname)参数columnname是字段的名称,而不是一个字

符串。函数执行错误则返回空字符串。

注意:LookUpDisplay()要有引号,Evaluate()也要有引号。

语法:

value = be(string ls)

例一:

ls_1 = dw_be("dw__")

ls_2 = be( + ".ColType")

例二:dw_be("Evaluate('Lookupdisplay(column)'," + string (row number)

+ ")")

在dw_1 里面有一个gxbm字段的edit属性页下

面:dataWindow:d_dmzd_gxbm,Display Column:dmmc,data Column:gxbm.

在显示时:不是显示gxbm的值,而是显示dmmc的值,但我们用

getitemstring(row,"gxbm")时,得到的是gxbm的值,而不是显示的dmmc值,如果我们

想得到显示的dmmc值,那就用lookupdisplay来用:ls_1 =

dw_be( "Evaluate('lookupdisplay(gxbm)'," + string(1) + ")")

dw_be("evaluate('LookUpDisplay(column_compare)',1)")

总结:单一的用Describe()可以对数据窗口对象的属性取值,加上evaluate后可以对

具体哪一行进行操作,加上 lookupdisplay用来取某列某行的displayvalues值。


本文标签: 函数 取值 属性 字段 对象