2008-06-05

[PB]读取下拉框的显示值

关键字: 下拉数据窗口 dddw displayvalue

DW(数据窗口)作为下拉方式存在,可以设置datavalue和displayvalue。

datavalue是column的实际数值,而我们看到的是displayvalue,当然可以设置两个都相同

 

如果要取得datavalue很简单,dw_control.getItemXXX(row, column_name)

(XXX为column的类型,比如String, Number等等)

 

如果要取得显示值得时候就相对麻烦些(datavalue跟displayvalue不一样)

方法有两种,一种是getChild方法取得下拉句柄,并顺藤摸瓜取得。这个方法略显麻烦,但结果是肯定的

DataWindowChild ldw_child
String ls_dataCol, ls_displayCol
String ls_dataValue, ls_displayValue
long ll_row

if dw_control.getChild(col_name, ref ldw_child) = 1 then
    // 取得当前行的datavalue
    ls_dataValue = dw_control.getItemString(dw_control.getRow(), col_name)
    
    // 取得下拉dw对应的datacolumn和displaycolumn
    ls_dataCol = dw_control.describe(col_name + ".dddw.datacolumn")
    ls_displayCol = dw_control.describe(col_name + ".dddw.displayColumn")

    // 查找对应资料的位置
    ll_row = ldw_child.find(ls_dataCol + " = '" + ls_dataValue + "'", 1, ldw_child.rowCount())

    // 取得显示值
    if ll_row > 0 then
        ls_displayValue = ldw_child.getItemString(ll_row, ls_displayCol)
    end if

end if
 

 

 

另外一种利用dw内部函数取得,这个就显得相当简洁

long ll_row

ll_row = dw_control.getRow()
dw_control.Describe("Evaluate('lookupdisplay(col_name)',"+String(ll_row)+")")
 
评论
发表评论

您还没有登录,请登录后发表评论

Ben.Sin
搜索本博客
存档
最新评论