在视图中,我创建了一个复选框操作按钮。操作按钮根据我设置的公式显示/隐藏复选框:
Form =“PrfForm”& AllotmentApprovalReq =“是”
此外,我还从视图属性中选中了“为每个文档更改评估操作”。因此,基于所选文档中的“AllotmentApprovalReq”字段,菜单正确显示/隐藏文档选择上的复选框。
现在我想要的是点击这个动作按钮会做两件事:
在所选文档中设置/重置字段“AllotmentApprovalReq”,它本身就是一个复选框,具体取决于之前的状态。
根据其先前的状态,切换复选框菜单的状态,即显示复选框或隐藏它。
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
设置字段就像
一样简单FIELD AllotmentApprovalReq := "Yes";
或者
FIELD AllotmentApprovalReq := "No";
如果要切换值,则使用
FIELD AllotmentApprovalReq := @If(AllotmentApprovalReq = "Yes";"No";"Yes");
由于您已经为每个文档更改设置了“评估操作”,因此您不必执行任何操作来刷新操作按钮。它应该是自动的。
答案 1 :(得分:0)
我已经找到了完整的解决方案。我使用莲花脚本而不是公式,它现在工作得很好:)无论如何感谢你的帮助。
以下是解决方案:
从View属性中选中“评估每个文档更改的操作”。
将操作按钮设为复选框(type = Checkbox)并设置为此公式以切换检查/取消选中:
Form = "AddCRM" & AllotmentApprovalReq = "Yes"
现在基于此字段AllotmentApprovalReq(所选文档中的复选框),操作菜单按钮将显示为复选框或无复选框,但当然标签将在那里。
现在,此操作菜单的以下Click事件将更新所选文档和操作菜单中的复选框状态:
' In the selected document, toggle AllotmentApprovalReq checkbox value
' depending upon its previous value.
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uiview As NotesUIView
Dim doc As NotesDocument
Dim CheckboxFlag As String
Set db = session.CurrentDatabase
Set uiview = ws.CurrentView
Set doc = db.GetDocumentByID(uiview.CaretNoteID)
CheckboxFlag = doc.GetItemValue("AllotmentApprovalReq")(0)
If CheckboxFlag = "" Then
CheckboxFlag = "Yes"
Else
CheckboxFlag = ""
End If
Call doc.ReplaceItemValue( "AllotmentApprovalReq", CheckboxFlag )
Call doc.Save(True, False)
Call ws.ViewRefresh