документы из View

wowa

Well-known member
01.02.2007
845
0
#1
Подскажите, как забрать все документы из view (как я понимаю, сделать коллекцию)....
Я раньше делал
Set dc = vw.GetAllDocumentsByKey (vListNameDoc, False )
Но это по ключу, а то надо все
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#2
Подскажите, как забрать все документы из view (как я понимаю, сделать коллекцию)....
Я раньше делал
Set dc = vw.GetAllDocumentsByKey (vListNameDoc, False )
Но это по ключу, а то надо все
первый столбец сделай скрытым со значением "1".
А потом: Set dc = vw.GetAllDocumentsByKey("1")

p.s. не забудь сортирнуть его
 

wowa

Well-known member
01.02.2007
845
0
#4
<!--QuoteBegin-DNT+11:04:2007, 17:40 -->
<span class="vbquote">(DNT @ 11:04:2007, 17:40 )</span><!--QuoteEBegin-->первый столбец сделай скрытым со значением "1".
[snapback]62143" rel="nofollow" target="_blank[/snapback]​
[/quote]
А обязательно первый? Мне бы желательно сделать последний, но оно что-то не работает
 

wowa

Well-known member
01.02.2007
845
0
#5
Хотя вроде получилось через notesviewentrycollection
Спасибо!
Но все равно , интересно, насчет первого столбца
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#6
Можно и не первую-

Из хелпа GetAllDocumentsByKey:

Finds documents based on their column values within a view. You create an array of keys, where each key corresponds to a value in a sorted column in the view. The method returns all documents whose column values match each key in the array.

Syntax
Set notesDocumentCollection = notesView.GetAllDocumentsByKey( keyArray [, exactMatch% ] )

keyArray
String (variable-length only), integer, long or double value, or array of string, number, DateTime, or DateRange objects. Each element in the array is compared to a sorted column in the view. The first element in the array is compared to the first sorted column in the view; the second element is compared to the second sorted column; and so on.

Первый элемент в массиве сравнивается с первой сортируемой колонкой в виде; второй элемент сравнивается со второй сортируемой колонкой; и так далее.
 

wowa

Well-known member
01.02.2007
845
0
#7
Для: DNT
Спасибо,

Подскажите еще, хоть и не по теме..
Call db1.Open(stDBServer,stDBFileName )
Я открываю БД...
делаю некоторые действия
потом меняю stDBServer,stDBFileName
и опять хочу Call db1.Open(stDBServer,stDBFileName )
Ну вообщем это в цикле.... И у меня пишет ошибку , типа открыта другая БД.... Что делать???
 

morpheus

скриптописец
07.08.2006
3 915
1
#8
Для: wowa
хм... странно, имхо , Call у Вас лишний

This LotusScript agent opens each database in the AddressBooks property of NotesSession. The NotesDatabase variable, book, must be treated as a Variant to be used as an AddressBooks element.
Код:
Sub Initialize	
Dim s As New NotesSession	
Forall book In s.AddressBooks	 
book.open "", ""	 
Messagebox book.Title,, "Address book"	
End Forall 
End Sub
 

wowa

Well-known member
01.02.2007
845
0
#9
Для: Morpheus
Что-то я не совсем понимаю...
У меня работает
Dim db1 As New NotesDatabase( "", "" )
Call db1.Open(stDBServer,stDBFileName )
Но после того, как я уже открыл.. открыть другую БД, уже не получается.....

Пишет database object is already open as .....................
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#10
Для: Morpheus
Что-то я не совсем понимаю...
У меня работает
Dim db1 As New NotesDatabase( "", "" )
Call db1.Open(stDBServer,stDBFileName )
Но после того, как я уже открыл.. открыть другую БД, уже не получается.....
покажи ошибку, чтоли.
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#13
Для: wowa

database object is already open as ...." --->>> "объект базы данных уже открыт, как ..."

ты уверен что у тебя переменные stDBServer,stDBFileName корректно меняются в цикле?
 

wowa

Well-known member
01.02.2007
845
0
#14
Для: Morpheus
не сохраняет,, пишет ошибку скрипта

Для: DNT
ДА, проверял много раз

Как-н можно обнулить db1?
 

morpheus

скриптописец
07.08.2006
3 915
1
#15
Для: wowa


ну на крайняк Set db1 = Nothing

СТОП!!! а
Dim db1 As New NotesDatabase( "", "" ) происходит в теле ЦИКЛА, или вне его
for i = ...
Dim db1 As New NotesDatabase( "", "" )
db1.Open(stDBServer,stDBFileName )
next

ТАК будет ошибка, а так ошибки не будет
Dim db1 As New NotesDatabase( "", "" )
for i = ...
db1.Open(stDBServer,stDBFileName )
next
 

wowa

Well-known member
01.02.2007
845
0
#16
Поставил Dim db1 As New NotesDatabase( "", "" ) в цикл - и всё заработало.. Большое спасибо...
Хотя раньше ставил в цикл, но что-то не получалось ))
Спасибо!
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#17
Для: wowa

так значит lotus ругался именно на эту строчку??? Dim db1 As New NotesDatabase( "", "" )
 

wowa

Well-known member
01.02.2007
845
0
#18
Для: DNT
выходит да!
Нужно было ее засунуть в цикл перед открытием новой БД
 

wowa

Well-known member
01.02.2007
845
0
#19
<!--QuoteBegin-DNT+12:04:2007, 08:44 -->
<span class="vbquote">(DNT @ 12:04:2007, 08:44 )</span><!--QuoteEBegin-->Set notesDocumentCollection = notesView.GetAllDocumentsByKey( keyArray [, exactMatch% ] )

keyArray
String (variable-length only), integer, long or double value, or array of string, number, DateTime, or DateRange objects. Each element in the array is compared to a sorted column in the view. The first element in the array is compared to the first sorted column in the view; the second element is compared to the second sorted column; and so on.

Первый элемент в массиве сравнивается с первой сортируемой колонкой в виде; второй элемент сравнивается со второй сортируемой колонкой; и так далее.
[snapback]62187" rel="nofollow" target="_blank[/snapback]​
[/quote]

Блин, раньше получилось, а теперь забыл
Подскажите, пожалуйста, как мне забрать документ по второму столбцу, если первый и второй отсортированы?
Что-то типа так?
Set doc = vw.GetDocumentByKey (["", vUnidNameDoc])