我在CustGroup
表单操作窗格中创建了一个命令按钮。
我在CustGroup
和CustTable
表格和表格中添加了一个新的基本枚举edt字段。
单击该按钮时,CustGroup
表中先前更改的数据必须反映在cust表格中。
我在click事件处理程序的按钮上编写代码,但它没有更新。
怎么做,有什么建议吗?
如果我正确理解您的问题,您希望将客户组中新字段的更改传输给共享此客户组的所有客户。
这种海量数据更新通常不是由表单中的代码完成的,因为该代码在客户端层上执行,这导致性能不佳。相反,您应该创建一个设置为在服务器层上执行的类。如果为这个类创建一个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;
}