在数据窗口中启用新行PowerBuilder的按钮

时间:2018-10-26 06:29:51

标签: button powerbuilder datawindow

我有一个数据窗口,其中的一行包含一个下拉列表,2个按钮和一些复选框。我要从下拉列表中选择内容后启用按钮。但是我还需要插入新行并启用该行的按钮。我怎样才能做到这一点?我已经尝试过dw_scope.Modify(“ b_yes.Enabled = Yes”),但是当我只想为新行启用时,这将启用所有行的按钮。

谢谢!

2 个答案:

答案 0 :(得分:0)

在数据窗口中添加一个“隐藏”字符串列,我们称之为“启用”。在“已启用” 按钮的属性中,您可以输入类似于以下内容的表达式:

  

if(enable [0] ='Y','是','否')

这将基于同一行中“启用”列的值来启用/禁用按钮。

在您的代码中,您需要根据启用/禁用按钮的条件来设置“启用”列的值。通常,您可以通过SetItem方法或使用点符号来完成此操作。

答案 1 :(得分:0)

尝试使用IsRowNew() DataWindow表达式函数:

dw_scope.Modify("b_yes.Enabled='0~tif(IsRowNew(), 1, 0)'")

这会将Enabled属性默认设置为已禁用(0),并且仅在新行时才启用(1)。在if()中为现有行添加其他任何表达式,即:

dw_scope.Modify("b_yes.Enabled='0~tif( (IsRowNew() ) or ( some_other_column = ~~'some value~~' ), 1, 0 )'")

注意:在选择DDLB值之前,直到选择列焦点后 ,该最后一个表达式都不会“插入”。如果要在不离开DDLB的情况下捕获选择本身,则必须加入selectionchanged事件。