Chinaunix首页 | 论坛 | 博客
  • 博客访问: 499602
  • 博文数量: 105
  • 博客积分: 2922
  • 博客等级: 少校
  • 技术积分: 1113
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-02 16:30
文章分类

全部博文(105)

文章存档

2018年(1)

2016年(2)

2015年(3)

2014年(6)

2013年(21)

2012年(10)

2011年(8)

2010年(7)

2009年(31)

2008年(16)

我的朋友

分类: 数据库开发技术

2015-11-18 17:30:17

PB中的Describe,Evaluatate,LookUpDisplay小结

 

一、Describe 可以描述DW中某个对象的某个属性的取值,虽然函数Describe可以获取对象的信息,但是表达式的取值就不能正常读取了,而这又是经常遇到的.

二、在Describe 中添加上Evaluate以后,具备了取值,判断以及计算的功能。 如果想获取数据窗口对象中由属性、函数等构成的表达式的取值时,必须在函数Describe中使用函数Evaluate

语法:Evalute('expression',rowno)
其中,expression是属性表达式,rowno是要描述的行号。该函数放置在Describe的属性列表中。

(1)判断:
例如,判断第3行的salary工资是否大于1 000,如果大于则返回1,否则返回0,可以使用下面的语句:
dw_1.Describe("Evaluate('If(salary > 1000, 1, 0) ', 3)")

(2)取值:
dw_2.Describe("evaluate('column_conn',1)") //
'column_conn'中第一行的值

(3)计算:
dw_1.Describe("Evaluate('SUM((salary)',0)") //
可以避免从数据库中提取数据

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


三、LookUpDisplay 在数据窗口控件上显示的值和字段实际得到的值并不相同,使用函数GetItemX只能读取这样的字段的真实取值,而不是用户看到的值。如何才能读取用户看到的值?可以使用此函数,LookUpDisplay函数不能直接从PowerScript调用,可以在Describe中和Evaluate函数配合使用。因为函数Lookupdisplay不能指定对哪行数据进行操作,它的参数只有一个字段名称,所以必须和Evaluate函数配合使用。该函数的语法是:Lookupdisplay(columnname)参数columnname是字段的名称,而不是一个字符串。函数执行错误则返回空字符串。

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

语法:
value = datawindow.Describe(string ls)

例一:
ls_1 = dw_1.Describe("dw_1.cb_4.text")
ls_2 = This.Describe(dwo.name + ".ColType")

例二:dw_1.Describe("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_1.describe( "Evaluate('lookupdisplay(gxbm)'," + string(1) + ")")

dw_2.Describe("evaluate('LookUpDisplay(column_compare)',1)")

 

总结:单一的用Describe()可以对数据窗口对象的属性取值,加上evaluate后可以对具体哪一行进行操作,加上 lookupdisplay用来取某列某行的displayvalues值。

 

阅读(2453) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~