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

问题描述:

我有一个数据窗口,带有复选框和一个按钮'OK'。该按钮被禁用,直到至少有一个复选框被选中。问题是,如果我有多个复选框选中,我想取消选中一个按钮禁用。我在itemchanged事件中编写了代码:如何根据选中复选框powerbuilder的数量启用按钮?

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 

我在做什么错?

谢谢!

您可以在名为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 

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