如何根据已选中复选框的数量启用按钮powerbuilder?

时间:2017-08-21 09:15:42

标签: checkbox powerbuilder datawindow

我有一个带有复选框和“确定”按钮的数据窗口。该按钮被禁用,直到选中至少一个复选框。问题是,如果我选中了多个复选框,并且我想取消选中一个按钮,则禁用该按钮。我在itemchanged事件中编写了代码:

int li_ind
long    ll_row

choose case dwo.name
    case "ind"
        for row = 1 to this.RowCount()
            if  data ='1' then      
                li_ind++
            end if
        next

        if li_ind <> 0 then
            parent.cb_ok.enabled = true
        else
            parent.cb_ok.enabled = false
        end if

end choose

我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

变量'data'仅适用于当前行。你需要使用getitemstring。

答案 1 :(得分:1)

您可以将隐藏的计算字段放在数据窗口的详细信息区域中,名为cf_ind_count。

定义cf_ind_count

sum( if( ind = '1', 1, 0 ) )

替换你的脚本
long ll_count
long ll_rows
boolean lb_enable = false

ll_rows = this.rowcount()

if ll_rows < 1 then
    lb_enable = false
else
    ll_count = long( this.object.cf_ind_count[1] )
    if ll_count > 0 then
        lb_enable = true
    else
        lb_enable = false
    end if
end if

parent.cb_ok.enable = lb_enable