я тут обленился (лень было класс создавать для элемента)... и на шару запустил подобный код
ожидаемый вариант - получить одно значение для всех, но - НЕТ
каким-то образом я получаю разные значение, а значит - операция присвоения (lst(entry.Columnvalues(columns(NAME_COL)))=(cols)) копирует данные, а не хранит сцылко
idx остался от массива - тоже копирует, если даже убираю получение по значению (cols) - все одно - копирует
мен такое поведение устраивает, но рвет шаблон
проверяю так
вызов
Код:
Sub GetHashMap(lst List As Variant)
Dim routineName As String
routineName="HashMap"
On Error GoTo ErrH
'your code here
Dim entry As NotesViewEntry, cols List As String, cnt As Long
Set entry=first
Do While Not entry Is Nothing
Dim idx As Integer
idx=0
cols(VALUE_COL)=entry.Columnvalues(columns(VALUE_COL))
idx=idx+1
cols(COMMENTS_COL)=entry.Columnvalues(columns(COMMENTS_COL))
idx=idx+1
cols(DOCORDER_COL)=entry.Columnvalues(columns(DOCORDER_COL))
idx=idx+1
cols(UNID_COL)=entry.Columnvalues(columns(UNID_COL))
lst(entry.Columnvalues(columns(NAME_COL)))=(cols)
cnt=cnt+1
Set entry=Me.Getnext(entry)
Loop
Print {hash members Count:} cnt
Quit:
Exit Sub
ErrH:
Error Err, RaiseError
Resume Quit
End Sub
каким-то образом я получаю разные значение, а значит - операция присвоения (lst(entry.Columnvalues(columns(NAME_COL)))=(cols)) копирует данные, а не хранит сцылко
idx остался от массива - тоже копирует, если даже убираю получение по значению (cols) - все одно - копирует
мен такое поведение устраивает, но рвет шаблон

проверяю так
Код:
Function testOut
Dim routineName As String
routineName="testOut"
On Error GoTo ErrH
'your code here
Dim lst List As Variant
Call Me.GetHashMap(Lst)
me.PrintTrace({********************************************})
ForAll cols In lst
If me.debug Then _
me.PrintTrace(ListTag(cols) _
&cols(VALUE_COL) &KEY_SEP _
&cols(COMMENTS_COL) &KEY_SEP _
&cols(DOCORDER_COL) &KEY_SEP _
&cols(UNID_COL))
End ForAll
'testOut=
Quit:
Exit Function
ErrH:
Error Err, RaiseError
Resume Quit
End Function
Код:
Sub Click(Source As Button)
On Error Goto ErrH
Dim lst List As Variant, vnav As New ViewNavFlds(curdoc.UniversalID)
vnav.IsDebug=True
Call vnav.testOut
Call vnav.ShowLog
Quit:
Exit Sub
ErrH:
Error Err, RaiseError
End Sub
Последнее редактирование модератором: