В моем приложении Lotus Notes (классическое, не использующее XPages) пользователь не сможет редактировать документы напрямую.
Вместо этого изменения будут происходить на основе диалога и инициироваться через действия в форме.
Например, у меня есть код вызова действия, подобный следующему:
Dim ws As New NotesUIWorkspace
Dim result As String
Dim document As NotesDocument
Dim options(1 To 6) As String
'... - Fill options
Set document = ws.CurrentDocument.Document
result = ws.Prompt(PROMPT_OKCANCELCOMBO, "New Value", "Please choose the new value", document.Foo(0), options)
If result <> "" Then
document.Foo = result
Call document.ComputeWithForm(False, True)
Call document.Save(True, False)
End If
Обновляет значение Foo
до значения, выбранного пользователем в диалоговом окне.
Однако это новое значение не показывается пользователю - форма, похоже, не обновляется.
Повторное открытие и закрытие формы показывает новое значение; это определенно обновляется.
Самым близким, что я мог получить, был следующий код (внутри блока if):
ws.CurrentDocument.EditMode = True
document.Foo = result
Call ws.CurrentDocument.Save()
ws.CurrentDocument.EditMode = False
Тем не менее, это решение кажется мне немного неоптимальным, так как я должен войти в режим редактирования.
Как я могу обновить форму, используя Notes Script, чтобы отразить изменение поля без необходимости входа в режим редактирования?
Такие методы, как ws.CurrentDocument.Refresh
, либо не показывают никакого эффекта, либо вызывают ошибки, так как их нельзя использовать вне режима редактирования.
Заранее большое спасибо за ваши идеи, советы и решения!