如何使用公式语言更新后端中的选定文档?

时间:2017-03-31 05:29:44

标签: lotus-formula

在视图中,我创建了一个复选框操作按钮。操作按钮根据我设置的公式显示/隐藏复选框:

Form =“PrfForm”& AllotmentApprovalReq =“是”

此外,我还从视图属性中选中了“为每个文档更改评估操作”。因此,基于所选文档中的“AllotmentApprovalReq”字段,菜单正确显示/隐藏文档选择上的复选框。

现在我想要的是点击这个动作按钮会做两件事:

  • 在所选文档中设置/重置字段“AllotmentApprovalReq”,它本身就是一个复选框,具体取决于之前的状态。

  • 根据其先前的状态,切换复选框菜单的状态,即显示复选框或隐藏它。

任何帮助都将受到高度赞赏。

2 个答案:

答案 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