Lotusscript для l oop не удалось установить переменную - PullRequest
0 голосов
/ 15 февраля 2020

Возможно, это что-то легкое, но я бьюсь головой о стену, пытаясь понять, что я делаю неправильно. Программа читает один документ в локальной базе данных, получает список, сохраненный в поле, просматривает каждую запись в списке и ищет имя в представлении в другой базе данных, как только она находит его, она обновляет документ и сохраняет его. Проблема, которую я вижу, состоит в том, что pdo c (выделено жирным шрифтом ниже) никогда не устанавливается в значение, которое приводит к тому, что остальная часть программы не может обновить какие-либо документы.

Sub Initialize

    Dim db As NotesDatabase
    Dim s As New NotesSession
    Dim pview As NotesView
    Dim ldoc As NotesDocument, pdoc As NotesDocument
    Dim lgroup As Variant, pgroup As Variant, errors As Variant
    Dim collection As NotesDocumentCollection

    Dim nab As New NotesDatabase ("","")
    Call nab.Open( "xxxx/xxx", "names.nsf" )

    Set db = s.currentdatabase
    Set collection = db.unprocesseddocuments
    Set ldoc = collection.getfirstdocument

    Set pview = nab.GetView ("gfmm")

    While Not(ldoc Is Nothing)

        On Error Resume Next

        lgroup = ldoc.groups(0)

        ForAll g In lgroup
            **Set pdoc = pview.GetDocumentByKey( g )**

            pgroup = pdoc.ListName(0)

            If lgroup = pgroup Then 
                pdoc.GroupType = "0"
                Call pdoc.Save(True, True)
            Else 
                errors = errors + g
            End If

        End ForAll

        ldoc.errors = errors
        ldoc.status = "Complete"
        Call ldoc.save(True, True)

        Set ldoc = collection.getnextdocument(ldoc)

    Wend

End Sub

1 Ответ

1 голос
/ 15 февраля 2020

Ошибка довольно проста: lgroups - это не массив, а скалярное значение. Эта строка

lgroup = ldoc.groups(0)

Просто получает первое значение группы элементов в ldo c, а не все значения. Просто измените его на

lgroup = ldoc.groups

Тогда у вас будет массив, через который вы сможете l oop. То же самое верно для pgroup строк вида ниже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...