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

问题描述 投票:-4回答:1

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

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

单击该按钮时,CustGroup表中先前更改的数据必须反映在cust表格中。

我在click事件处理程序的按钮上编写代码,但它没有更新。

怎么做,有什么建议吗?

axapta x++ dynamics-ax-2012
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.