我已经在CustGroup
表单操作窗格中创建了一个命令按钮。
我在CustGroup
和CustTable
表和表格中都添加了一个新的基本枚举edt字段。
单击按钮时,CustGroup
表中先前更改的数据必须以客户表形式反映。
我已经在点击事件处理程序的按钮上编写了代码,但是没有更新。
该怎么办,有什么建议吗?
答案 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;
}