Notesdocument.getitemvalue("fieldname")

dimat

Lotus team
31.07.2008
516
0
#1
Редактируемое поле FieldName - DialogList с опцией Allow Multiple Values, в нем отмечены несколько значений.
На LS пытаюсь взять все значения, но берется только первое. как взять все?
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
Редактируемое поле FieldName - DialogList с опцией Allow Multiple Values, в нем отмечены несколько значений.
На LS пытаюсь взять все значения, но берется только первое. как взять все?
Прежде чем задавать такие вопросы, почитайте в справке про NotesDocument, NotesItem и их свойства/методы.
 

xKlonx

Lotus team
10.09.2009
410
0
#3
dimat
Проверил,у меня есть поле "multiply" с опцией Allow Multiple Values
Код:
Dim w As New NotesUIWorkspace	 
Dim uidoc As NotesUIDocument		
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim mult As Variant	


Set db = session.CurrentDatabase
Set uidoc = w.CurrentDocument	
Set doc = uidoc.Document

mult =doc.GetItemValue("multiply")
переменная mult берет все значения
 

dimat

Lotus team
31.07.2008
516
0
#4
Прошу прощенья :rolleyes: , действительно по хелпу разобрался.
Сделал вот так:
Код:
dim rt as notesItem
Set rt= doc.GetFirstItem("FieldName")
print rt.Text
 

morpheus

скриптописец
07.08.2006
3 915
1
#5
dimat
делайте так как указал ув. xRomax

doc.GetItemValue("FieldName")
 

hosm

* so what *
18.05.2009
2 442
6
#8
Я тоже, но вы ж не в курсе, человек с Variant умеет работать?
может, ему все значение в строку слепить надо и в мессаджбокс вывести :rolleyes:
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
dimat
следите за мыслью

doc.GetItemValue("FieldName")(0) - ПЕРВОЕ значение
doc.GetItemValue("FieldName")(1) - ВТАРОЕ значение
...
doc.GetItemValue("FieldName")(N) - N-ное значение

сответственно GetItemValue возвращает массив, и ну ни как не только первое значение
 

xKlonx

Lotus team
10.09.2009
410
0
#10
dimat
Пробовал так, но почему то все равно берет только первое значение
Код:
Dim w As New NotesUIWorkspace	 
Dim uidoc As NotesUIDocument		
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim mult As Variant	

Set db = session.CurrentDatabase
Set uidoc = w.CurrentDocument	
Set doc = uidoc.Document

mult =doc.GetItemValue("multiply")	
Call doc.ReplaceItemValue("result",mult)
Вот вам доказательство что берёт все выбранные значения.Для проверки создайте ещё одно текстовое поле как у меня "result"
и для примера кнопку куда поместите вышеприведённый код
 

dimat

Lotus team
31.07.2008
516
0
#11
то есть:
Код:
dim s as string
s=doc.GetItemValue("FieldName")
в s будет одно значение?

Код:
dim s as Variant
s=doc.GetItemValue("FieldName")
в s будут все значения?

Правильно я думаю?
P.S.: Эти значения я вывожу в ексель
Код:
xlWorksheet.cells(i%,4).value=
 

xKlonx

Lotus team
10.09.2009
410
0
#13
Variant is a special data type: variables of type Variant can hold values of any of the following data types that LotusScript recognizes, except for user-defined data types:

1) A value of any of the scalar data types that LotusScript supports -- Boolean, Byte, Integer, Long, Single, Double, Currency, String
2) A date/time value
3) An array or list
4) An object reference, that is, a pointer to an OLE Automation object or to an instance of a product-defined or user-defined class, or an object
reference to a Java Object.
5)The NULL value
6) The EMPTY value