打开AX表单时编辑FormBuildControl

问题描述 投票:1回答:2

我尝试了以下内容:AX2009 Loop through all the controls in the form on init,并且能够在打开时循环遍历表单中的所有表单控件。

但是,出于某种原因,当我尝试编辑表单控件时,它无法正常工作。我有一个像这样的switch语句:

switch ( control.handle() )
{
    case classnum(FormBuildButtonControl):
        formBuildButtonControl = control;

        formBuildButtonControl.enabled(false);
    break;
 }

然后打开表单时,仍然启用按钮控件。我已经尝试在run方法中的super之前和之后以及init中的super方法之前和之后调用循环方法,并且它在任何一个中都不起作用。虽然,在init方法中调用super之前它不起作用,因为我必须使用来自初始化表单控件的一些属性。

axapta dynamics-ax-2009
2个回答
2
投票

您应该将控件的AutoDeclaration设置为Yes。然后,您可以通过其名称访问该控件:

controlName.enabled(condition);

对于绑定到表字段的控件,通常最好更改数据源字段:

datasource.object(fieldNum(table,fieldName)).enabled(condition);

因为字段可能有几个控件。


1
投票

好的,我想通了。以下可以使用控件ID而不是使用FormBuildButtonControl类来调用控件来进行更改:element.control(control.id()).enable(false);

编辑:也可以在运行中的super之前或之后或init方法中的super之后调用循环。

© www.soinside.com 2019 - 2024. All rights reserved.