1

このコードが機能しない理由を誰かが説明できます。[作成者]フィールドに値が表示されず、何も出力されません。

Sub Querysave(Source As Notesuidocument, Continue As Variant)

    ' Add users with role R* to Authors
    Dim s As New NotesSession
    Dim e As NotesACLEntry
    Dim it As NotesItem

    Set it = Source.Document.GetFirstItem("Authors")

    Set e = s.CurrentDatabase.ACL.GetFirstEntry
    While Not e Is Nothing
        Print e.Name
        If e.IsRoleEnabled("R1") Then it.AppendToTextList(e.Name)
        If e.IsRoleEnabled("R2") Then it.AppendToTextList(e.Name)
        Set e = s.CurrentDatabase.ACL.GetNextEntry(e)
    Wend

End Sub

データベースはサーバー上にあり、ACLにエントリがあります。

4

2 に答える 2

1

コードを少し変更すると、機能します。

Sub Querysave(Source As Notesuidocument, Continue As Variant)

    ' Add users with role R* to Authors
    Dim s As New NotesSession
    Dim acl As NotesACL
    Dim e As NotesACLEntry
    Dim it As NotesItem

    Set it = Source.Document.GetFirstItem("Authors")

    Set acl = s.CurrentDatabase.ACL
    Set e = acl.GetFirstEntry
    Print e Is Nothing
    While Not e Is Nothing
        Print e.Name
        If e.IsRoleEnabled("R1") Then it.AppendToTextList(e.Name)
        If e.IsRoleEnabled("R2") Then it.AppendToTextList(e.Name)
        Set e = acl.GetNextEntry(e)
    Wend

End Sub

これはどこかに文書化されていますか、それとも単純に壊れていますか。

于 2012-05-04T15:17:02.627 に答える
1

LotusScriptには、そのような個別の変数を作成する必要がある場所が他にもあると思います。すべての例はそのように書かれています。これは間違いなくバグであり、文書化されているとは思えません。

于 2012-05-04T22:46:48.570 に答える