分享

如何控制PB DATAWINDOW的CHECKBOX

 mybook564 2013-09-23

POWER BUILDER中数据窗口DATAWINDOW中的检查框CHECKBOX要实现这样的控制:点一下打勾,再点一下去掉勾。但是在某些时候,点了也不能打勾。这就要求把DATAWINDOW的CHECKBOX字段 TAB ORDER 设置为0,使它在点击时不会自动打勾去勾,而完全用程序来控制。当然,CHECKBOX首先要设置ON的值为Y,OFF的值为N。

控制程序可以象下面这样:


if row <= 0 then return  //如果没有点击到行上,就返回。

dw_bws.Accepttext()
int id,cnt
string status,ftype
id   = getitemnumber(row,"id")
status  = getitemstring(row,"status")
ftype   = getitemstring(row,"ftype")

if dwo.name<>"status" then return

if status="Y" then
 update sv010 set status="N" where id=:id;
 if sqlca.sqlcode <> 0 then goto error //检查存盘是否成功
 dw_bws.setitem(row,"status","N")
end if
if status="N" then
 select count(*) into :cnt from sv010 where ftype=:ftype and status="Y";
 if sqlca.sqlcode <> 0 then goto error
 if cnt>=5 then //已生效的问题不能超过五个
  messagebox("提示","该类型的问题已达到最大数,不能将此条生效!")
  return
 end if
 if cnt<5 then
  update sv010 set status="Y" where id=:id;
  if sqlca.sqlcode <> 0 then goto error //检查存盘是否成功
  dw_bws.setitem(row,"status","Y")
 end if
end if 


if sqlca.sqlcode <> 0 then
error: 
 rollback using sqlca;
 messagebox("警告","保存失败!"+sqlca.sqlerrtext,stopsign!)
 return
else
 commit using sqlca;
 //messagebox("信息","保存成功!")
end if

 

上面标成红色的代码就是控制CHECKBOX打勾与否的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多