Describe 可以描述DW中某個對象的某個屬性的取值,雖然函數Describe可以獲取對象的信息,但是表達式的取值就不能正常讀取了,而這又是經常遇到的. Evaluate 如果想獲取數據窗口對象中由屬性、函數等構成的表達式的取值時,必須在函數Describe中使用函數Evaluate,LookUpDisplay 在數據窗口控件上顯示的值和字段實際得到的值並不相同,使用函數GetItemX只能讀取這樣的字段的真實取值,而不是用戶看到的值。如何才能讀取用戶看到的值?可以使用此函數,LookUpDisplay函數不能直接從PowerScript調用,可以在Describe中和Evaluate函數配合使用。因爲函數Lookupdisplay不能指定對哪行數據進行操作,它的參數只有一個字段名稱,所以必須和Evaluate函數配合使用。該函數的語法是:Lookupdisplay(columnname)參數columnname是字段的名稱,而不是一個字符串。函數執行錯誤則返回空字符串。
例一:
ls_1 = dw_1.Describe("dw_1.cb_4.text")
ls_2 = This.Describe(dwo.name + ".ColType")
語法: value = datawindow.Describe(string ls)
例二:
判斷第3行的sex是否爲1,如果是則返回男,否則返回女
dw_1.Describe("Evaluate('If(sex = 1, 男, 女) ', 3)")
語法: Evalute('expression',rowno)其中,expression是屬性表達式,rowno是要描述的行號。該函數放置在Describe的屬性列表中。
例三: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) + ")")
另: 在用代碼學PB中有這樣一段代碼,值得關注:
integer li_PageCount
*******分頁
li_PageCount = integer(dw_1.describe("evaluate('pagecount()',1)"))
i_int_currentpage = integer(dw_1.describe("evaluate('page()',1)"))
st_page.Text = "第"+String( i_int_currentpage ) + "頁(共" + String( li_PageCount )+"頁)"