![]() |
#5 |
Участник
|
Спасибо за советы, но это не поможет для моего случая.
Попытаюсь объяснить подробнее: Есть стандартная форма LogisticPostalAddress, на которой выставлено св-во UnitOfWork. На форме есть стандартная таблица LogisticsPostalAddress. Я сделал таблицу для хранения различных доп. полей для адреса, назовем ее, MyLogisticsPostalAddressExt. Я присоединяю эту таблицу на форме к таблице LogisticsPostalAddress по InnerJoin. Теперь описание моей проблемы: 1. Если я вызову форму и внесу изменения в поля таблицы LogisticsPostalAddress и в поля моей таблицы MyLogisticsPostalAddressExt, и потом закрою форму при помощи крестика, то форма поймет что на таблице datasource LogisticsPostalAddress произошли изменения и вызовет для него writing и written. Тут все ОК. 2. Теперь если я вызову форму и внесу изменения только в поля моей таблицы MyLogisticsPostalAddressExt и закрою форму крестиком, то на datasource MyLogisticsPostalAddressExtвызовется writing и written, а на datasource LogisticsPostalAddress writing и written не вызываются. Т.е. форма не понимает что данные в LogisticsPostalAddress поменялись. Хотя я вызываю LogisticsPostalAddress.LogisticsPostalAddressMap::formatAddress() в MyLogisticsPostalAddressExt_ds.written(). Т.е. фактически меняю значение поля LogisticsPostalAddress.Address. Но так как эти изменения происходят с помощью программной логики, то форма не понимает что данные в datasource LogisticsPostalAddress изменились и не вызывает для него writing и written. Мой вопрос: какое св-во выставить на datasource, какой метод вызвать из программной логики чтобы "сказать" что данные в datasource поменялись и чтобы при закрытии формы "крестом" на этом datasource вызвались writing и written? В 2009 я бы просто вызвал LogisticsPostalAddress_ds.write() и все. А теперь как? Смотрел метод _ds.forceWrite() - но он работает только при создании новой записи, для уже существующей не работает. Спасибо за внимание ![]() |
|
Теги |
forcewrite |
|
|