2014-01-08 5 views
1

У меня есть редактируемое поле. Другое значение вычисленного поля зависит от значения редактируемого поля.Lotus Notes: обновить форму из поля

В Exiting случае редактируемого поля я добавить:

Dim workspace As New NotesUIWorkspace 
    Dim uidoc As NotesUIDocument 
    Set uidoc = workspace.CurrentDocument 
    Call uidoc.Refresh 

Но это еще не работает. Если я проверю свойство формы Automatically refresh fields, все идет хорошо, но производительность формы уменьшается, она очень медленная.

Любые предложения? Благодаря!

+0

«все еще не работает» не является достаточным сообщением об ошибке. Иногда я использую этот код, и обычно он работает. Вы использовали отладчик для проверки, если код запускается? Какова формула в вашей вычисленной области? Является ли оно ниже редактируемого поля или над ним? –

+0

Спасибо за ваш ответ! Вычисленное поле находится над редактируемым полем. –

+2

Примечания ВСЕГДА вычисляет слева направо и сверху на Buttom ... Это означает: если вычисленное поле ВЫШЕ редактируемое, вам нужно обновить TWICE. –

ответ

3

Lotus Notes всегда вычисляет всю форму слева направо и сверху вниз. Если вычисленное поле находится над полем, которое запускает обновление, то оно не имеет доступа к «новым» значениям редактируемого поля при первом обновлении.

Вам понадобится 2x Call uidoc.refresh, чтобы вычисленное поле отражало изменения.

Или вы перемещаете вычисленное поле НИЖЕ редактируемое поле, тогда будет достаточно одного обновления.

В качестве альтернативы вы можете использовать onBlur- Event вместо события ex-event, поскольку «on» - события предназначены для замены «классических» событий Field с версии 6 Lotus Domino/Notes. Проверьте this link to Designer Help, чтобы увидеть намеки как
The corresponding LotusScript-only events still occur, but their continued use in Release 6 applications is discouraged.
onBlur: New for LotusScript with Release 6 и
Exiting: Preferred is onBlur

1

в случае редактируемое поле в "ONBLUR", переключитесь Client/LotusScript) и только добавить:

notesuiuiworkspace.CurrentDocument.Refresh 

Не забудьте чтобы удалить тот, который выйдет.

+0

Если вы добавите пояснительную записку о том, что такое каждое событие и почему использовать OnBlur, это будет лучшим ответом. Если бы это ТАКЖЕ включало примечание Торстена о порядке расчета, это был бы лучший ответ. –

Смежные вопросы