Если я правильно понимаю ваш вопрос, вы хотите передать изменение нового поля в группе клиентов всем клиентам, которые разделяют эту группу клиентов.
Этот вид массового обновления данных обычно не выполняется кодом в форме, поскольку этот код выполняется на уровне клиента, что приводит к снижению производительности. Вместо этого вы должны создать класс, настроенный для выполнения на уровне сервера. Если вы создадите метод 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;
}