Joh*_*wan 1 lotus-notes lotusscript
这个问题与我原来的问题有关
我想跟随肯的建议.所以我只想知道如果原始和上次保存的值相同,我是否至少可以弹出一个消息框.以下是我设置的内容.
Global declaration
Dim originalValues(2) As Variant
Dim lastValues(2) As Variant
Run Code Online (Sandbox Code Playgroud)
然后在queryopen上:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
现在谈到这条线
如果lastValues(i)= originalValues(i)那么
我收到错误'Type Mismatch',我不明白为什么.我调试了代码,数组中的值都是一样的.该数组也具有Variant数据类型.我在这做错了什么?
使用便捷属性(即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)
Run Code Online (Sandbox Code Playgroud)
和
lastValues(0) = doc.QCR_No(0)
lastValues(1) = doc.QCR_Mobile_Item_No(0)
lastValues(2) = doc.QCR_Qty(0)
Run Code Online (Sandbox Code Playgroud)
那么你应该在PostSave中进行比较时比较相似的类型
| 归档时间: |
|
| 查看次数: |
2546 次 |
| 最近记录: |