Обновление поля

  • Автор темы NataliGinger
  • Дата начала
N

NataliGinger

#1
Доброго времени суток.

У меня есть поле RadioButton, при изменении значений которого, должно заполняться Text Editable поле.

Если использовать Onchange, то значение Text меняется не сразу, а только после потери фокуса.

uidoc.refresh не помогает.

Может ли значение Тext поля меняться сразу после изменения RadioButton?
 

Omh

Lotus team
04.07.2007
2 210
1
#2
RadioButton: Run Exiting/On change events... (на третьей закладке внизу) + Refresh fields on keyword change
в купе с
событием PostRecalc у формы.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#3
В свойствах поля поставить галку "Run exiting/onchange events after value change"
 
N

NataliGinger

#4
Еще вопрос.
А как быть если нужно менять значение поля по изменению в поле Dialog list без использования Postrecalc?
 
G

Guest

#5
Сделай поле типа Computed и формульно вычисляй значение, только не забудь проставить refresh fields on keyword refresh
 
S

soleil

#6
А как сделать так, чтобы при изменении поля типа Date/Time сразу пересчитывалось другое Computed поле.
Если на Onchange ставить, то оно пересчитывается при потере фокуса. К сожалению, все вышеперечисленные советы не подходят для полей типа Date/Time.
 

alik86

Lotus team
20.11.2008
465
1
#7
а как Вам такие варианты:
1. можно приучить пользователя к тому, чтобы таки выводил фокус оттуда - сложно реализуем :)
2. можно использовать не editable поле, а компутед и рядом с ним нарисовать кнопочку, на которую и повесить изменение поля и пересчет другого... - ИМХО проще первого варианта
...как-то так
 
S

soleil

#8
Но в стандартном календаре лотуса как-то сама изменяется длительность встречи (тип Текст, Computed) при изменении даты (тип Дата/время, Editable). я разбиралась как они это сделали, но так и не поняла.
 

nvyush

Lotus team
22.04.2009
2 317
0
#9
soleil
Первая закладка свойств поля Style = Calendar/Time control, третья закладка свойств поля - вкл. галку внизу (Run exiting/OnChange...)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Ставишь галочку "Run Exiting/OnChange events..."
В самом событии OnChange делаешь refresh или меняешь значение поля вручную.
 
S

soleil

#11
выше же Вы писали про эту галочку, я ее не нашла сначала по невнимательности)спасибо.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#12
делаешь на этом радиобатоне галочку Refresh fields on keyword change
теперь до этого поля размещаешь еще одно компутедное поле, которое содержит в себе старое значение
и при рефреше это сравнивает старое значение с новым и в случае изменения делает определенные, нужные тебе действия, заполняет нужные поля и т.д.
это поможет тебе избавиться от событии OnChange и прочего мусора :rolleyes:
 
S

soleil

#13
ToxaRat, спасибо за еще один совет. а чем опасен onchange?
 
S

soleil

#14
А вот подскажите, пожалуйста, еще момент.
На форме есть Action он изменяет значение Поля_1 (тип Text, Editable). Есть еще одно Поле_2 (тип Text, Computed for display), значение которого вычисляется на основании Поля_2.

Как мне при нажатии Action сделать так, чтобы пересчитывалось Поле_2. Или достаточно просто обновить (кстати, как на собаках сделать Workspace.CurrentDocument.Refresh)?
 

nvyush

Lotus team
22.04.2009
2 317
0
#15
Как мне при нажатии Action сделать так, чтобы пересчитывалось Поле_2. Или достаточно просто обновить (кстати, как на собаках сделать Workspace.CurrentDocument.Refresh)?
1) достаточно просто обновить
2) @Command( [ViewRefreshFields] ) :rolleyes:
 
S

soleil

#16
nvy, спасибо.Почему то думала, что ViewRefreshFields это для вида.