Несоответствие типов при сравнении значения с lotusscript - PullRequest
1 голос
/ 25 января 2012

Этот вопрос относится к моему первоначальному вопросу

Я пытаюсь следовать предложению Кена. Поэтому я просто хочу посмотреть, смогу ли я хотя бы всплыть в окне сообщения, если исходное и последнее сохраненное значение совпадают. Вот то, что я настроил.

Global declaration  
Dim originalValues(2) As Variant
Dim lastValues(2) As Variant

Тогда по запросу открыть:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
' Current document
    Dim doc As NotesDocument
    Set doc = Source.Document

' Array containing original value
    originalValues(0) = doc.QCR_No
    originalValues(1) = doc.QCR_Mobile_Item_No
    originalValues(2) = doc.QCR_Qty
End Sub

PostSave

Sub Postsave(Source As Notesuidocument)
    ' Current document
    Dim doc As NotesDocument
    Set doc = Source.Document

    ' Load fields value to the array
    lastValues(0) = doc.QCR_No
    lastValues(1) = doc.QCR_Mobile_Item_No
    lastValues(2) = doc.QCR_Qty

    ' Compared each value in the array to see if there is any difference
    Dim i As Integer
    For i = 0 To 2
        If lastValues(i) = originalValues(i) Then
            Messagebox "Same", MB_OK            
        End If
    Next
End Sub

Теперь, когда дело доходит до этой строки

Если lastValues ​​(i) = originalValues ​​(i), то

Я получил ошибку «Несоответствие типов», которую я не понимаю, почему. Я отлаживал код и значения в массиве все одинаковые. Массив также имеет тип данных Variant. Что я тут не так делаю?

1 Ответ

5 голосов
/ 25 января 2012

Когда вы получаете доступ к элементам с помощью вспомогательных свойств (например, doc.ItemName), вы фактически получаете доступ к массиву значений.В 99% случаев вы просто хотите получить первое значение в этом массиве, поэтому вам нужно указать его как doc.ItemName (0), например:

originalValues(0) = doc.QCR_No(0)
originalValues(1) = doc.QCR_Mobile_Item_No(0)
originalValues(2) = doc.QCR_Qty(0)

и

lastValues(0) = doc.QCR_No(0)
lastValues(1) = doc.QCR_Mobile_Item_No(0)
lastValues(2) = doc.QCR_Qty(0)

тогда вы должны сравнивать подобные типы, когда проводите сравнение в PostSave

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