如何编写代码以使用按钮将数据从一种形式获取到另一种形式?

时间:2019-01-16 06:50:33

标签: axapta x++ dynamics-ax-2012

我已经在CustGroup表单操作窗格中创建了一个命令按钮。

我在CustGroupCustTable表和表格中都添加了一个新的基本枚举edt字段。

单击按钮时,CustGroup表中先前更改的数据必须以客户表形式反映。

我已经在点击事件处理程序的按钮上编写了代码,但是没有更新。

该怎么办,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则希望将客户组中新字段的更改转移给共享该客户组的所有客户。

这种海量数据更新通常不通过表单中的代码来完成,因为该代码在客户端层上执行,这会导致性能下降。相反,您应该创建一个设置为在服务器层上执行的类。如果您为此类创建一个main方法,则可以轻松为其创建一个操作菜单项,这样您就可以轻松地将对调用的调用集成为一个CustGroup表单中的按钮。

main方法中,您可以通过CustGroup对象访问单击了按钮的Args记录。这为您提供了已更改的新字段的值。有了这个值,您就可以使用类似于以下代码的代码来更新您的客户:

public void updateCustomersWithNewCustGroupFieldValue(CustGroup _custGroup)
{
    CustTable custTable;

    ttsBegin;
    while select forUpdate custTable 
        where custTable.CustGroup == _custGroup.CustGroup
    {
        custTable.MyNewEnumField = _custGroup.MyNewEnumField;
        if (custTable.validateWrite())
        {
            custTable.update();
        }
        else
        {
            error('Please implement some error handling');
        }
    }
    ttsCommit;
}