Показать сообщение отдельно
Старый 21.02.2012, 13:27   #4  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от DmitryK Посмотреть сообщение
Извините, Сергей, попробую подробней.
1) Форма самописная, должна сделать варианты пересчета значения в realControl
2) Контрол связан с источником данных
3) Пользователь вводит/меняет значение в realcontrol.
4) Вызывается lookup, значение введенное пользователем заменяется значением из datasource

Если пользователь после ввода значения переходит на следующее поле (происходит запись в datasource) и после возвращается и вызывает lookup, то соответственно - все хорошо.
Попробывал под отладчиком. В источнике данных 5.5, в realcontrol изменяю на 10, спрашиваю как текст control.ValueStr возвращает 5.5 Соответственно 2 подхода, как мне кажется...
1) Есть ли возможность получить значение В ДАННЫЙ момент введенное в control и еще не синхронизированное с datasourse?
2) Перед вызовом lookup принудительно синхронизировать ТЕКУЩЕЕ значение контрола с datasource?

Мне кажется, что первый вариант лучше, если он возможен...

C уважением, Дмитрий.
конечно данные введенные в поле при открытии lookUp заменяются тем значением что есть в базе, ведь новое введенное значение ещё не сохранено в системе!

если нужно что бы при открытии lookUp введенное значение сохранялось, тогда можете в методе lookUp до вызова super() (ну или до вызова построения и вывода Вашего lookUp) написать ds.write() (только надо учесть, что сохранятся все измененные поля), т.е. принудительно сохранить введенные значения в курсоре.

Единственно мне не очень понятно, зачем открывать lookUp на поле, когда туда введено не сохраненное значение. Какая собственно стоит задача? Может она решается как то по другому?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем