Как получить значение из других выбранных документов и отобразить значение в одном документе - PullRequest
1 голос
/ 31 мая 2019

У меня есть список документов в поле зрения. У меня также есть кнопка внутри просмотра, где я могу создать новый документ со значением из существующего документа. Для этого нового документа я буду использовать другую форму для нового созданного документа. На мой взгляд, документ делится по статусу. У меня также есть dialogBox, чтобы я мог установить batchNo для новых документов.

Итак, процесс выглядит так:

  1. Сначала я выберу документ на основе его статуса. Допустим, у меня есть 5 документов в статусе «Испорченный», я могу выбрать, сколько документов я хочу. Поэтому я выбираю только 2 документа.
  2. После того, как документ выбран, я нажму кнопку, чтобы создать один новый документ с использованием lotusscript. После нажатия кнопки появится DialogBox. Я вставляю пакет № и нажимаю ОК.
  3. Затем код проверит этот статус документов и создаст новый документ, получив значение из 3 документов и отобразив его в новом документе.
  4. Например, мне нужно получить значение из полей "PSerialNo" и "PType" из 2 документов. Как вы можете видеть ниже. Значение из документа1 и документа2 я хочу вставить в новый документ. Так что, если document1, PSerialNo в WSerialNo1 и PType в WType1. И если document2, PSerialNo в WSerialNo2 и PType в WType2 и т. Д.

Документ 1
doc1
Документ 2
doc2
Новый документ
newdoc

Это мой код для создания нового документа.

Set doc = dc.GetFirstDocument()

While Not (doc Is Nothing)
    If doc.PStatus(0) = "Active" Then
        Set newdoc = New NotesDocument(db)
        newdoc.Form = "WriteOff"            

        newdoc.WABatchNo = wDialogDoc.WBatchNo(0)
        newdoc.WType = doc.PType(0)
        newdoc.WSerialNo = doc.PSerialNo(0)

        newdoc.ComputeWithForm(False,False)
        newdoc.save(True,False)

    End If
    doc = dc.GetNextDocument(doc)
Wend

Моя проблема сейчас, если я создаю новый документ и хочу получить значение из двух документов, он не вставляется в один новый документ, а вставляется в два разных новых документа. Как я могу это исправить. Любой совет или помощь, я ценю. Спасибо!

1 Ответ

1 голос
/ 31 мая 2019

Прошло уже более 10 лет с тех пор, как я написал LotusScript, поэтому я могу ошибаться.

Set doc = dc.GetFirstDocument()
Dim docCreated As Boolean 'flag a document was created
Dim i As Integer 'index for each document

docCreated = False
i = 0
While Not (doc Is Nothing)
    If doc.PStatus(0) = "Active" Then
        If Not docCreated Then 'only create a document for first doc
            Set newdoc = New NotesDocument(db)
            newdoc.Form = "WriteOff"
            docCreated = True
        End If
        i = i + 1

        newdoc.WABatchNo = wDialogDoc.WBatchNo(0)
        ' not sure about this part, but the idea is to set WType1 for first doc, WType2 for 2nd doc, and so on
        Call newdoc.ReplaceItemValue("WType" & i, doc.PType(0))
        Call newdoc.ReplaceItemValue("WSerialNo" & i, doc.PSerialNo(0))
    End If
    doc = dc.GetNextDocument(doc)
Wend

If docCreated Then
    Call newdoc.ComputeWithForm(False,False)
    Call newdoc.save(True,False)
End If
...