Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Берёшь первую попавшуюся вьюху. И дальше GetAllDocumentsByKey с какой-нить дикой строкой. Например, Set doccol=view.GetAllDocumentsByKey("QQQQWWWWWEEEEERRRRR!@#sdsdcdgf",True). Ну и на всякий случай вычищаешь эту коллекцию .
А вот нечего коллекцию лотусиную использовать не по незначению.
Для временного хранения и передачи параметров юзай List або массив динамический
(Redim с перезервом)
</td> [/tr] </table> </td> [/tr] </table> </td> [/tr] </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-left.gif')"></td> <td class="vbquotemain" width="100%" valign="top"></td> <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-right.gif')"></td> [/tr] [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quot-left-bg.gif')"></td> <td class="vbquotemain" width="100%" valign="top"><!--QuoteEBegin-->Как же эту коллекцию вычистить? Как вообще можно удалить документ из коллекции?<!--QuoteEnd--></td> [/tr] [tr] [/tr] </table> </td> [/tr] </table>
<!--QuoteEEnd-->Я это обычно делаю вот так:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Deletes a document from a collection (not from the disk)</div></div><div class="sp-body"><div class="sp-content">
Note This method is new with Release 5.
Defined in
NotesDocumentCollection
Syntax
Call notesDocumentCollection.DeleteDocument( document )
Parameters
document
NotesDocument. The document to be deleted. If you specify Nothing, this method generates an error.
Usage
The specified document must have originated in this collection. If the document does not exist in the collection, or if it was removed from the database by a RemoveAll operation, an error will be raised.
</td> [/tr] </table> </td> [/tr] </table> </td> [/tr] </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-left.gif')"></td> <td class="vbquotemain" width="100%" valign="top"></td> <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-right.gif')"></td> [/tr] [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quot-left-bg.gif')"></td> <td class="vbquotemain" width="100%" valign="top"><!--QuoteEBegin-->А вот нечего коллекцию лотусиную использовать не по незначению.
Для временного хранения и передачи параметров юзай List або массив динамический
(Redim с перезервом)<!--QuoteEnd--></td> [/tr] [tr] [/tr] </table> </td> [/tr] </table>
<!--QuoteEEnd-->Ну, человек же не написал КАК он её пользовать собирается. А у коллекции есть ряд "вкусных" методов. FTSearch, например. Или StampAll тоже интиресная штука. Опять же класс NotesNewsLetter работает с коллекциями.
Иногда приходилось сталкиваться с необходимостью создания пустой коллекции.
В 8ке у notesdatabase появился новый (недокументированный) метод для этого - CreateDocumentCollection.
Мне попалось на глаза
Ссылка скрыта от гостей
.
Привлек внимание интересный коммент к нему (2й) насчет создания пустой коллекции (вольный перевод):
"При использовании db.CreateDocumentCollection () получаем в результате неотсортированную коллекцию. То есть коллекция всегда обрабатывает добавленные в нее документы в порядке их NoteID. Аналогичную коллекцию даст .search().
Однако, если коллекция строится с помощью .GetAllDocumentsByKey, то, даже если результирующий набор пуст, коллекция считается отсортированной, и поэтому документы будут обрабатываться в том порядке, в котором вы их добавите (first-in-first-out). Эта особенность, оказывается, имеет очень важное значение для некоторых видов операций."
Интересно, а вызов
Set notesDocumentCollection = notesDatabase.GetProfileDocCollection("Нет таких профилей в этой базе!")
даст сортированную или несортированную коллекцию?
ToxaRat
Ну, конечно, можно переделать код через списки или массив документов и не морочиться с коллекциями.
но не одна я такая
не один раз в коде встречала, даже как-то давненько прикалывалась с того, кто чего у нас пишет в качестве параметра для GetAllDocumentsByKey (народу много поработало).
Medevic
Да, хелп 7ки вообще практически какую-либо сортировку отрицает, говорит про GetAllDocumentsByKey, что "Documents returned by this method are in no particular order" (в отличие от коллекции энтрисов). nvy
ничего не скажу, надо экспериментировать с GetProfileDocCollection.
И вообще хз, насколько это вообще верно.
Во времена 5-ки была какая-то дока (не помню, но в голове сидит жёстко), что GetAllDocumentsByKey возвращает коллекцию, отсортированную по дате создания документов. Мы тогда наткнулись на это... для одного процесса нам нужна была "своя" сортировка, побороть не смогли, использовать библиотеки, "сортирующие коллекцию", а на самом деле возвращающую массивы или списки - это изврат (зачем лишний перебор?), поэтому остановились тогда на NotesViewNavigator'е.
Что касается использования изначально пустых коллекций и их создания с помощью GetProfileDocCollection, так это не глупость, иногда это удобно. Использую, например, когда получил документ по CaretCategory - засовываю его в коллекцию, - последующий код унифицируется, т.е. я не ставлю потом проверок типа "если был выделен 1 документ, то выполняем опереции с ND, а если несколько, то с NDC", все последующие процедуры работают без этих ненужных условий - по коллекции.
Немного "напрягает" другое... - что у коллекции есть свойство Parent. Никогда не добавлял в коллекцию документы из другой БД; теоретически должно поклинить... если да, то это конечно неприятное ограничение.
Немного "напрягает" другое... - что у коллекции есть свойство Parent. Никогда не добавлял в коллекцию документы из другой БД; теоретически должно поклинить... если да, то это конечно неприятное ограничение.
клинит. даже ошибка есть именная. 4427 Document is from different database
инстанс NotesDatabase - не синглтон, поэтому клинит, даже если document.ParentDatabase фактически совпадает с collection.parent, но ссылаются на разные объекты.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vb'> Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection = db.Search( "" , Nothing , 0 )
Dim sameDb As NotesDatabase
' При получении по replicaID - sameDb - другой объект. ERROR
Set sameDb = New NotesDatabase( "" , "" )
Call sameDb.OpenByReplicaID( db.Server , db.ReplicaID )
' При получении по getDatabase - sameDb - тот же объект. Нормально работает.
' Set sameDb = session.GetDatabase( db.Server , db.FilePath )
Dim doc As NotesDocument
Set doc = sameDb.AllDocuments.GetFirstDocument
Call collection.AddDocument( doc )[/CODE]
В коллекцию, полученую культурными методами - да. Тем более, если там есть уже хоть один док. Просто интересно было, если в пустую, полученную с помощью GetProfileDocCollection, добавить док из др. БД... попробую как-нибудь.
GetDatabase никогда не приходилось использовать, т.к. при подключении к БД у меня они в List записывались, где тэгом был AliasDb, по которому её вызывали в коде. Интересно, спасибо!
В коллекцию, полученую культурными методами - да. Тем более, если там есть уже хоть один док. Просто интересно было, если в пустую, полученную с помощью GetProfileDocCollection, добавить док из др. БД... попробую как-нибудь.
Дык здесь и есть пустая коллекция. db.search("", Nothing , 0 ) - это аналог трюка с GetProfileDocCollection.
т.е. в коллекцию( в т.ч. пустую ) можно добавить документ, у которого parentDatabase ссылается на тот же объект, что и collection.parent.
получается - это необходимое условие.
по вашему, может и дольше, но вот по жизни - быстрее. сишная функция сразу возвращает управление вызывающей при пустой nsfformula - никакого поиска не происходит. а вот процесс Set view = db.getView(...) займет время однозначно.
если хочется проверить - welcome. написание теста займет 5 минут.
Нужно выбрать документы из категории в виде. Все вроде нормально, но где-то слышал что в коллекции сортировка слетает. Это так? Можно как-то отсортировать коллекцию?
Где-то натыкался на классы сортировки коллекции. Принцип действия — если в пустую коллекцию добавлять документы, то они в ней будут отсортированы в порядке добавления.
Сам не пользовал, где может пригодиться, не знаю.
На данном сайте используются cookie-файлы, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших cookie-файлов.