Показать сообщение отдельно
Старый 14.06.2007, 12:52   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Aliaksei_Berkau Посмотреть сообщение
При открытии этой формы в поле "Стоимость" стоит неверное число. Как только начинаешь передвигаться по строкам число пересчитывается верным.
Вычисляемое поле вычисляется по подчиненной таблице, которая связана с главной при помощи Delayed join.

Delayed join выполняет связь не сразу, а через некоторое время.
Это сделано для того, чтобы снизить нагрузку на сервер при перемещении курсора стрелками (попробуйте встать на заказ и нажать стрелку вверх или вниз. курсор по заказам перемещается, а строки обновляются не сразу. это как раз работает Delayed join)

Но при Delayed join происходит неприятная вещь с вычисляемыми полями.
Вычисляемые поля вычисляются при отрисовке окна, ДО того, как установлена связь.

Есть несколько решений.
1. сменить связь с Delayed join на Inner join
2. убрать вычислимое поле (или перенести в отдельное окно)
3. перенести display-метод с таблицы на datasource формы
4. изменить ТЗ

все перечисленные способы обладают своими недостатками.
__________________
полезное на axForum, github, vk, coub.