我是X++新手,我想在sales header表单(SalesTable)的选项卡上添加一个未绑定的复选框。当销售行的表单的下半部分按下配置行按钮时,我需要让其他类中的代码检查SalesTable表单中未绑定控件的开/关状态,并执行一些操作。我真的不需要数据库来记录状态。
当前状态是我已经在表单上放置了复选框,可以在显示屏上看到它,可以点击它,但不能引用它。
如何从另一个类引用SalesTable窗体中的未绑定控件,这是正确的方法吗?
发布于 2011-06-23 05:46:17
您不能从另一个类引用未绑定的控件,这不是正确的方法。
而是在未绑定的控件发生更改时通知其他类。您可以在checkbox控件的modified方法中执行此操作:
boolean modified()
{
boolean ret = super();
;
salesTableForm.parmSpecialAction(this.value());
return ret;
}在这种情况下,通过调用方法parmSpecialAction (任意选择的名称)来通知SalesTableForm复选框的更改。
另一种方法(您在问题中指出的)是通知类控件的存在,并让类直接调用control.value()。然而,这通常会使窗体和类紧密耦合,这不是我们想要的。这些控件属于它们的出生地,不应该到处传递。
具有讽刺意味的是,SalesTableForm.enableUpdateJournalButtons方法违反了这一规则,因为它接受按钮控件作为参数。正确的方法是计算(和缓存) getter函数中的enableWathever值,然后让表单调用getter并启用或禁用自己的按钮。
https://stackoverflow.com/questions/6441516
复制相似问题