массивы в ЛС можно создавать разными способами и с разными типами содержимого, их DataType будет тоже разными:
а вот где может пригодиться (чтобы эксепшены не ловить)
ЗЫЖ тип возвращаемый из полей документа нотуса будет соответствовать динамическому массиву!
кодV_VARIANT:12
Dynamic array of Variant:8716
Dynamic array of Integer:8706
Dynamic array of Long:8707
Dynamic array of NotesDocument:8739
Dynamic array of NotesViewEntry:8739
Dynamic array of String:8712
Dynamic array of String Initialized:8712
Array of Variant:8204
Array of String:8200
Array of Integer:8194
Array of Long:8195
Array of NotesDocument:8227
Variant empty:0
Variant as String array:8712
Код:
Dim arrV() As Variant, arrI() As Integer, arrL() As Long, arrS() As String _
, arrC (1) As Variant, arrCS (1) As String, v As Variant, v2arr As Variant _
, arrSInit() As String, arrND() As NotesDocument, arrNVE() As NotesViewEntry
v2arr=Split({},{})
ReDim arrSInit(1) As String
MsgBox {V_VARIANT:} &Cstr(V_VARIANT) _
& Chr(10) & {Dynamic array of Variant:} &CStr(DataType(arrV)) _
& Chr(10) & {Dynamic array of Integer:} &CStr(DataType(arrI)) _
& Chr(10) & {Dynamic array of Long:} &CStr(DataType(arrL)) _
& Chr(10) & {Dynamic array of NotesDocument:} &CStr(DataType(arrND)) _
& Chr(10) & {Dynamic array of NotesViewEntry:} &CStr(DataType(arrNVE)) _
& Chr(10) & {Dynamic array of String:} &CStr(DataType(arrS)) _
& Chr(10) & {Dynamic array of String Initialized:} &CStr(DataType(arrSInit)) _
& Chr(10) & {Array of Variant:} &CStr(DataType(arrC)) _
& Chr(10) & {Array of String:} &CStr(DataType(arrCS)) _
& Chr(10) & {Variant empty:} &CStr(DataType(v)) _
& Chr(10) & {Variant as String array:} &CStr(DataType(v2arr))
Код:
Function IsArrayInitialized(arr) As Boolean
Dim routineName As String
routineName="IsArrayInitialized"
On Error GoTo ErrH
Select Case DataType(arr)
Case 8192 To 8227:
IsArrayInitialized = True
Case 8704 To 8739:
Dim idx
idx=-1
On Error 200 Resume Next
idx=UBound(arr)
If idx>=0 Then IsArrayInitialized = True
Case V_VARIANT:
IsArrayInitialized = True
End Select
Quit:
Exit Function
ErrH:
Error Err, RaiseError
Resume Quit
End Function
Ссылка скрыта от гостей
ЗЫЖ тип возвращаемый из полей документа нотуса будет соответствовать динамическому массиву!
Код:
If Not doc Is Nothing Then Print {Notes String field datatype:} CStr(DataType(doc.Getitemvalue({Form})))
'will Print 8712
Последнее редактирование: