14.06.2007, 12:03 | #1 |
Участник
|
В таблицу "Обзор" формы Заказы - Заказ - Склад - Резервирование добавил вычисляемое поле "Стоимость" (метод источника данных).
При открытии этой формы в поле "Стоимость" стоит неверное число. Как только начинаешь передвигаться по строкам число пересчитывается верным. Также при изменении размеров окна в поле вновь появляются не корректные числа. Что это может быть? Как бороться? Спасибо. |
|
14.06.2007, 12:52 | #2 |
Участник
|
Цитата:
Delayed join выполняет связь не сразу, а через некоторое время. Это сделано для того, чтобы снизить нагрузку на сервер при перемещении курсора стрелками (попробуйте встать на заказ и нажать стрелку вверх или вниз. курсор по заказам перемещается, а строки обновляются не сразу. это как раз работает Delayed join) Но при Delayed join происходит неприятная вещь с вычисляемыми полями. Вычисляемые поля вычисляются при отрисовке окна, ДО того, как установлена связь. Есть несколько решений. 1. сменить связь с Delayed join на Inner join 2. убрать вычислимое поле (или перенести в отдельное окно) 3. перенести display-метод с таблицы на datasource формы 4. изменить ТЗ все перечисленные способы обладают своими недостатками. |
|
20.07.2007, 16:12 | #3 |
Участник
|
А возникла ещё одна проблема. И снова в связке ФОРМА-ТАБЛИЦА.
Есть некая форма, на ней таблица. И есть редактируемое поле под названием "масса". Однако, редактируется оно очень странно. Пусть, например, в поле занесено значение "10". Меняем его на "25". При этом число "25" запишется в таблицу, но на форме по-прежнему останеться значение "10". Если форму закрыть/открыть, новое значение "25" будет отображаться на экране. Кстати, поле выводиться не дисплейным методом, а просто, как ссылка на определённый столбец таблицы. Облазил все свойства. Что это может быть? Спасибо! |
|
20.07.2007, 17:00 | #4 |
Участник
|
В метод .modified() на поле формы добавить что-нибудь типа [table_ds].reread().
Проблема в том, что не обновляется отображение на форме. |
|
20.07.2007, 17:22 | #5 |
Участник
|
Тот же эффект...
Забыл сказать, что проблема отсутствует в "толстом клиенте" |
|
26.07.2007, 13:18 | #6 |
Участник
|
Была такая же проблема, только в толстом клиенте не проверял.
Добавления пары строк [table].reread(); [table].refresh(); хватило. (Я их вообще добавил в метод .active() на ds) |
|
27.07.2007, 15:41 | #7 |
Участник
|
Даже уже и не знаю, что делать
Перепробовал все вышеуказанные способы. Делаю, конечно, не очень хороший шаг - выкладываю проект. Возможно, у кого-либо проявиться спортивный интерес, чтобы посмотреть его. В состав входят: 1) две таблицы 2) несколько перечисляемых типов данных 3) собственно форма 4) дамп данных Axapta 2.5 Напомню: в тонком клиенте значения, вносимые в строки реестра накладных, меняются на форме только после перехода в другой реестр, либо открития/закрытия формы. [attachment=654:send.rar] |
|