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

Тема в разделе "Lotus - Программирование", создана пользователем NataliGinger, 29 фев 2008.

  1. NataliGinger

    NataliGinger Гость

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

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

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

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

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    RadioButton: Run Exiting/On change events... (на третьей закладке внизу) + Refresh fields on keyword change
    в купе с
    событием PostRecalc у формы.
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    В свойствах поля поставить галку "Run exiting/onchange events after value change"
     
  4. NataliGinger

    NataliGinger Гость

    спасибо
     
  5. NataliGinger

    NataliGinger Гость

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

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

    soleil Гость

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

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    а как Вам такие варианты:
    1. можно приучить пользователя к тому, чтобы таки выводил фокус оттуда - сложно реализуем :)
    2. можно использовать не editable поле, а компутед и рядом с ним нарисовать кнопочку, на которую и повесить изменение поля и пересчет другого... - ИМХО проще первого варианта
    ...как-то так
     
  9. soleil

    soleil Гость

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    soleil
    Первая закладка свойств поля Style = Calendar/Time control, третья закладка свойств поля - вкл. галку внизу (Run exiting/OnChange...)
     
  11. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Ставишь галочку "Run Exiting/OnChange events..."
    В самом событии OnChange делаешь refresh или меняешь значение поля вручную.
     
  12. soleil

    soleil Гость

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

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    делаешь на этом радиобатоне галочку Refresh fields on keyword change
    теперь до этого поля размещаешь еще одно компутедное поле, которое содержит в себе старое значение
    и при рефреше это сравнивает старое значение с новым и в случае изменения делает определенные, нужные тебе действия, заполняет нужные поля и т.д.
    это поможет тебе избавиться от событии OnChange и прочего мусора :rolleyes:
     
  14. soleil

    soleil Гость

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

    soleil Гость

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

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    1) достаточно просто обновить
    2) @Command( [ViewRefreshFields] ) :rolleyes:
     
  17. soleil

    soleil Гость

    nvy, спасибо.Почему то думала, что ViewRefreshFields это для вида.
     
Загрузка...

Поделиться этой страницей