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