X ++未绑定控件

时间:2011-06-22 14:24:29

标签: x++ axapta

我是X ++的新手,我想要一个未绑定的 销售标题表单中的选项卡上的复选框 (SalesTable)。当配置行按钮是 按下表格的下半部分进行销售 我需要在其他类中使用代码 检查未绑定控件的开/关状态 SalesTable表单并做一些事情。我真的 不需要数据库来记录状态。

当前状态是我已经打开了复选框 表格,在显示屏上看到它,然后点击它, 但不能参考它。

我如何参考未绑定的内容 从另一个类控制SalesTable表单 这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

你没有从另一个类引用未绑定的控件,这不是正确的方法。

当未绑定的控件发生更改时,通知另一个类。您可以在复选框控件的修改方法中执行此操作:

boolean modified()
{
    boolean ret = super();
    ;
    salesTableForm.parmSpecialAction(this.value());
    return ret;
}

在这种情况下,SalesTableForm会通过调用方法parmSpecialAction(任意选择的名称)来通知复选框的更改。

另一条路线(您在问题中指出)将告知班级控件的存在,并让班级直接调用control.value()。然而,这通常会使表格和类紧密耦合,这不是我们想要的。控件属于它们诞生的形式,不应该传递。

具有讽刺意味的是,SalesTableForm.enableUpdateJournalButtons方法违反了此规则,因为它接受按钮控件作为参数。正确的方法是计算(和缓存)getter函数中的enableWathever值,然后让表单调用getter并启用或禁用它自己的按钮。