2014-01-08 63 views
1

我有一個可編輯字段。另一個計算字段值取決於可編輯字段的值。Lotus Notes:從字段中刷新表格

在可編輯字段我添加的退出事件:

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

但它仍然沒有工作。如果我檢查表單屬性Automatically refresh fields,它會正常,但表單性能下降,速度很慢。

有什麼建議嗎?謝謝!

+0

「仍然不起作用」不是一個足夠的錯誤消息。我有時使用這些代碼,通常它工作。您是否使用調試器來檢查代碼是否被觸發?計算字段中的公式是什麼?是低於可編輯字段還是高於它? –

+0

感謝您的回覆!計算的字段位於可編輯字段的上方。 –

+2

筆記總是從左到右和從上到下計算...這意味着:如果計算字段高於可編輯的範圍,則需要刷新TWICE。 –

回答

3

Lotus Notes總是從左到右和從上到下計算整個表單。 如果計算字段位於字段上方,則觸發刷新,則無法訪問第一次刷新時可編輯字段的「新」值。

您需要2x Call uidoc.refresh才能使計算字段反映更改。

或者您將可編輯字段的下方的計算字段移動,那麼一次刷新就足夠了。

或者,您可以選擇使用onBlur事件而不是退出事件作爲「on」 - 事件旨在替換自Lotus Domino/Notes第6版以來的「Classic」字段事件。檢查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」

,切換到客戶端/ LotusScript中)和只添加:

notesuiuiworkspace.CurrentDocument.Refresh 

不要忘記刪除退出中的一個。

+0

如果添加關於每個事件是什麼以及爲什麼要使用OnBlur的解釋性說明,這將是一個更好的答案。如果它還包含Torsten關於計算順序的註釋,那將是最好的答案。 –