PB中的Describe,Evaluatate,LookUpDisplay小結

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 )+"頁)" 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章