Наверное я не понимаю сам процесс - ну никак не удается добиться правильной работы.
Если упростить задачу до минимума, то выглядит она так:
есть две таблицы:
TmpDelivery
- DeliveryId
- Var
TmpDeliveryOrder
- SalesId
- DeliveryId
Есть форма Delivery, состоящая из двух гридов, заполняемых значениями из этих датасурсов.
Необходимо, чтобы при изменении в поле 2-го грида значения DeliveryId
происходило изменение поля Var таблицы TmpDelivery для записи TmpDelivery.DeliveryId == DeliveryId
И обновление первой формы.
Делаю так:
init () - заполнение обеих таблиц значениями
setDeliveryId датасурса TmpDeliveryOrder:
PHP код:
edit DeliveryId setDeliveryId(boolean set, TmpDeliveryOrder _TmpDeliveryOrder, DeliveryId _deliveryId)
{
TmpDelivery _TmpDelivery;
if (set)
{
DeliveryId = _deliveryId;
// изменение Var таблицы TmpDelivery
TmpDelivery_ds.executeQuery();
}
else
DeliveryId = _TmpDeliveryOrder.DeliveryId;
return DeliveryId;
}
И для StringEdit'a второй формы в качестве метода указываю setDeliveryId
Ну не понимаю я почему, после правильной обработки измененного значения DeliveryId на TmpDelivery_ds.executeQuery(); управление снова передается setDeliveryId с установленным set (true)/
В результате происходит повторное изменение значения таблицы.
Почему!!!