Коллекции документво

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Возможно ли как нибудь быстренько посмотреть что храниться в массиве, не выводя каждый элемент по отдельности а весь вместе. Ну там МеседжБокс например, только не перечисляя на вывод все его элементы)
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Вот ещё вопрос какой. Есть изменяемое текстовое поле, почему если в него ничего не внесено, он не проходит проверку на ""? например ф-я @Elements( список ) где "список" - список как раз этих полей?
Если писать кодом, и по умолчанию в поле ставить какой нибудь символ, то нормально можно определить вводили в поле значение или нет. а с пустым не получается.
 
K

Kee_Keekkenen

для получения коллекции используй db.search(searhFormula, nothing, 0), в searhFormula укажи формулу отбора документов как если бы это была формула отбора во взгляде

массив на то и массив чтобы обращаться к элементу массива как к i-му элементу массива..
если не хочешь проходиться по созданному массиву, то выводи значения когда заносишь их в массив

для ясности приведи код по последнему посту..
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-kizarek+23:08:2007, 13:47 -->
<span class="vbquote">(kizarek @ 23:08:2007, 13:47 )</span><!--QuoteEBegin-->Возможно ли как нибудь быстренько посмотреть что храниться в массиве, не выводя каждый элемент по отдельности а весь вместе. Ну там МеседжБокс например, только не перечисляя на вывод все его элементы)
[snapback]76147" rel="nofollow" target="_blank[/snapback]​
[/quote]
Сделать Join или @Implode.
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Kee_Keekkenen, с этим разобрался, спасибо.
Medevic так и сделал)
Вот ещё непонятная штука, третий час втупляю. Есть ряд полей, значения которых присвоены массиву. В поле встречаются некоторые значения и "-" (с пустым полем вообще не получатется), так вот, нужно следующее, пробежаться по массиву, и если встречаем "-" то изменяем его на значение предыдущего, и так соответственно весь массив будет заполнен.
Код:
For x=1 To 17
If (Sp(x,1) = "-" ) Then 
Sp(x,1) = Sp(x-1,1)
Next
Получается такая штука, работает если встречается не более одного "-" подряд. если больше то не работает, хотя по идее должен.
 
K

Kee_Keekkenen

это опечатка или ты потерял end if после строки Sp(x,1) = Sp(x-1,1)
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Kee_Keekkenen, видимо опечатка. Хотя если действие одно, то End if не нужен)
 
M

morpheus

Для: kizarek
FullTrim function - пробуйте
но надо "-" заменить на пусто
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Morpheus, решил проблемку установкой значения по умолчанию @ThisValue.
Подскажите алгоритм сортировки строкового массива поэффективнее)
Нужно просто сделать чтобы одинаковые строки шли подряд.
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
<!--QuoteBegin-Medevic+23:08:2007, 15:22 -->
<span class="vbquote">(Medevic @ 23:08:2007, 15:22 )</span><!--QuoteEBegin-->Сделать Join или @Implode.
[snapback]76175" rel="nofollow" target="_blank[/snapback]​
[/quote]
Как кстати это работает, смотрел так и не разобрался.
К примеру есть некоторое поле в которое нужно вывести некоторое значение, которое формируется по мере обхода массива.
Код:
		For x=1 To 40
If (SpSert(x,1) =docST.Search_Os1(0) )Then
Dim Str As String
Str = docST.Search_Os2(0) + SpSert(x,1)
docST.Search_Os2 = Str1
End If
Next
Так вылетает ошибка...как заносить в поле несколько значений? (настроить поле на хранение нескольких значений знаю как))
 
M

morpheus

Для: kizarek
Присвойте полю массив вот и всё
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Morpheus, в том то и дело что незнаю как) Надо чтобы если элемент массива соответствует некоторому условию, то он добавлялся в поле.
Код:
		For x=1 To 40
If (SpSert(x,1) =docST.Search_Os1(0) )Then
docST.Search_Os2 = SpSert(x,1)
End If
Next
Так вот не работает)

Выводиться только последнее.

А всё, сделал) Ошибка не там была вовсе) Лепил строку по мере обхода массива, потом ей в поле затолкал.
 
M

morpheus

Для: kizarek
Понтяное дело Вы же каждый раз полностью заменяете значение поля
docST.Search_Os2

зделать так
Код:
Dim doc As NotesDocument
Dim item As NotesItem
Set item = doc.GetFirstItem( "Search_Os2" )

For x=1 To 40
If (SpSert(x,1) =docST.Search_Os1(х) )Then
Call item.AppendToTextList( SpSert(x,1))
Call doc.Save( False, True )
End If
Next
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Как можно скопировать коллекцию документов?
т.е. есть коллекция1, создаём новую коллекцию документов например коллекция2.
и работаем с коллекцией2 уже, первую нетрогаем.
Код:
	Forall x In List1
Set coll1 = coll
Call coll1.FTSearch(Listtag(x),0)
End Forall
если делать так, то coll тоже изменяется...
 
M

morpheus

kizarek
хм... странный способ, а зачем это всё?
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Morpheus
да просто нужно coll разбить на несколько коллекций...чтобы работать с ними...., потом и их ещё разбивать...коллекций должно быть много, и в базе каждый раз искать дольше будет.
 
M

morpheus

ну можно канечно из коллекции просто выделить нужные документы в List или Array .... разбиение на коллекции я бы Вам не советовал... моё субьективное мнение - все эти методы добавления и удаления документов из коллециии - такая медленная и непонятно что делающая штука...
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Morpheus
да добавления и удаления из коллекций и нету. просто вместо того чтобы перебирать все документы базы 50 раз, мы переберем всю базу 1 раз, а потом работать будем работать с коллекциями на порядок меньше чем изначальная.
вопрос то в том как коллекцию скопировать в другую переменную?
Ибо Set coll1 = coll помоему вообще бессмысленная вешь, которая создает не копию коллекции а "ссылку" на неё.

Да кстати, можно и листами сделать, можно ли создать массив листов?) Или как хранить несколько параметров под 1 ключом?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!