ОБСУЖДЕНИЕ

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

10 ответов 4 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Добрый день коллеги!

Подскажите пожалуйста, мне нужно найти номер ячейки массива поля (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
 
ну? раскрывай тему или написать вместо тебя?
 
ну? раскрывай тему или написать вместо тебя?
так я же все написал, есть два массива в документе "Стадии" и комментарии к этой стадии,мне нужно получить комментарий стадии "На доработке"
 
Код:
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

Сделал вот так, может кому пригодиться
 
Отсортировать документы где на определенной стадии, был пустой комментарий
Если я правильно понимаю, "пустой комментарий" означает, что количество записей 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
 
Сделал вот так, может кому пригодиться
Если doc.MoveName(i) = Null, то Instr вернёт Null, т.е. не равно нулю. В таком случае тут должна выскочить ошибка несоответствия типов.
<> проверять не обязательно, меньше нуля быть не может, достаточно проверить >0
 
Если я правильно понимаю, "пустой комментарий" означает, что количество записей 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
ващще нинада никаких цыклов - инфа жэ из въюшки у него берётся, вот пусть она и считает сортировкой и сразу брать первый (последний) док
 
ващще нинада никаких цыклов - инфа жэ из въюшки у него берётся, вот пусть она и считает сортировкой и сразу брать первый (последний) док
из вьюшки и док не нужен, синхронные поля можно вывести отдельными строками и сформировать "правильный" ключ - просто получим энтрис по ключу
 

Статистика тем

Создано
PeNgViN213,
Последний ответ от
lmike,
Ответы
10
Просмотры
4 045