Document Refresh

Тема в разделе "Lotus - Программирование", создана пользователем Xalet, 20 апр 2009.

  1. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    В БД есть основной документ и ответы(респонсы). В основном документе есть поле, в котором обсчитывается сумма определенных полей в респонсах. Есть эмбедед вьюшка, которая показывает все респонсы. Есть кнопочка добавить респонс. Когда эта кнопочка нажимется, создается соответственно документ, заполняется, сохраняется и закрывается. Как сделать чтобы основной документ рефрешился автоматом после закрытия ответа (сумма пересчитывается при этом)?

    Спасибо.
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну теоретически парент у нас может быть/не быть в EditMode.
    Если он в editMode, то можно пересчитывать на QuerySave или поизвращатся с ui-объектами на закрытии респонса.
    Если он не в editMode, надо взводить какой-то флаг, что бы он при закрытии пересчитался.
    Как-то так :)
     
  3. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Так парент при закрытии пересчитывается, да и не только при закрытии. Можно просто тыркнуть в поле с суммой или нажать рефреш. Парент переводится в эдит мод при нажатии кнопочки создания респонса... Ток вот некоасиво получается, когда добавил ответ, во вьюшке он показывается, в тотал вьюшки сумма одна, а в поле другая. Вот и хотелось бы как-то сделать, чтобы автоматом рефрешился.

    а под этим что имелось ввиду?
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Ну если респонсы создаются на скрипте, то можно попробовать так. Вдруг заработает. :)
    Код (Text):
    ...
    Set uidoc = ws.EditDocument(True, respDoc, False) 'открываем созданный респонс
    On Event QueryClose From uidoc Call Refresh
    Код (Text):
    Sub Refresh(Source As NotesUIdocument, Continue As Variant)
    If parUidoc.EditMode Then parUidoc.Refresh
    End Sub
    Хотя логичнее на PostSave делать рефреш.
    parUidoc - это родительский документ. Придется делать глобальным. :)
     
  5. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Medevic
    Да-да, я такие обороты где-то видел, но, кажется, использвать не приходилось.
     
  6. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Чуть поправил пост.

    Omh
    Я тоже не использовал. Просто помню, что можно. :)
     
  7. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Medevic
    Всё работает. Спасибо.
     
Загрузка...

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