• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь. Мобильный клиент для IOS находится в itunes по этой ссылке

Номер ячейки в массиве

PeNgViN213

Well-known member
01.07.2017
69
0
#1
Добрый день коллеги!

Подскажите пожалуйста, мне нужно найти номер ячейки массива поля (MoveName) где содержится слово "доработк", и прочитать из документа значение с этим номером из другого поля HistoryComment. Помогите реализовать. Я вот начал, дальше не понимаю как двигаться.
Код:
Sub Initialize
    Dim coll As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim db As NotesDatabase
    Dim ses As New NotesSession
    Dim i As integer

    
    Set db = ses.CurrentDatabase
    Set coll= db.Unprocesseddocuments
    Set doc = coll.Getfirstdocument()
    
    For i = 0 To UBound(doc.HistoryMoveName)
        MsgBox doc.HistoryMoveName(i)
    Next
    

End Sub
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 241
18
#2
ну? раскрывай тему или написать вместо тебя?
 

PeNgViN213

Well-known member
01.07.2017
69
0
#7
Код:
Sub Click(Source As Button)

    Dim ses As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim i,x As Integer
  
    Set db = ses.CurrentDatabase
    Set view = db.GetView("имя текущей View")
    Set doc = view.GetFirstDocument
    x=0
    Do Until doc Is Nothing
        For i=0 To Ubound(doc.MoveName)
            If Instr(doc.MoveName(i),"подписан") <> 0 Then
                If doc.HistoryComment(i) = "-" Then
                    x=x+1
                    Exit For
                End If
            End If
        Next
        Set doc = view.GetNextDocument(doc)
    Loop
    Print x
End Sub
Сделал вот так, может кому пригодиться
 

garrick

Lotus team
26.10.2009
911
62
#8
Отсортировать документы где на определенной стадии, был пустой комментарий
Если я правильно понимаю, "пустой комментарий" означает, что количество записей MoveName не совпадает с количеством HistoryComment. Правильно?
Если же вы уверены, что все комментарии не пустые, т.е. количество MoveName и HistoryComment совпадает, то надо сделать примерно такой цикл
Код:
For i = 0 To UBound(doc.MoveName)
       Dim mn As String
       mn = doc.MoveName(i)
       Dim code As Variant
       code = InStr(mn, "доработк")
       If Not IsNull(code) Then
            If code > 0 Then
                  MessageBox doc.HistoryComment(i)
            End If
       End If
Next
 

garrick

Lotus team
26.10.2009
911
62
#9
Сделал вот так, может кому пригодиться
Если doc.MoveName(i) = Null, то Instr вернёт Null, т.е. не равно нулю. В таком случае тут должна выскочить ошибка несоответствия типов.
<> проверять не обязательно, меньше нуля быть не может, достаточно проверить >0
 

alexas1

Lotus team
10.04.2014
760
154
#10
Если я правильно понимаю, "пустой комментарий" означает, что количество записей MoveName не совпадает с количеством HistoryComment. Правильно?
Если же вы уверены, что все комментарии не пустые, т.е. количество MoveName и HistoryComment совпадает, то надо сделать примерно такой цикл
Код:
For i = 0 To UBound(doc.MoveName)
       Dim mn As String
       mn = doc.MoveName(i)
       Dim code As Variant
       code = InStr(mn, "доработк")
       If Not IsNull(code) Then
            If code > 0 Then
                  MessageBox doc.HistoryComment(i)
            End If
       End If
Next
ващще нинада никаких цыклов - инфа жэ из въюшки у него берётся, вот пусть она и считает сортировкой и сразу брать первый (последний) док
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 696
309
#11
ващще нинада никаких цыклов - инфа жэ из въюшки у него берётся, вот пусть она и считает сортировкой и сразу брать первый (последний) док
из вьюшки и док не нужен, синхронные поля можно вывести отдельными строками и сформировать "правильный" ключ - просто получим энтрис по ключу
 
Вверх Снизу