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

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 11 апр 2007.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Подскажите, как забрать все документы из view (как я понимаю, сделать коллекцию)....
    Я раньше делал
    Set dc = vw.GetAllDocumentsByKey (vListNameDoc, False )
    Но это по ключу, а то надо все
     
  2. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    первый столбец сделай скрытым со значением "1".
    А потом: Set dc = vw.GetAllDocumentsByKey("1")

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

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    можно использовать notesviewentrycollection
     
  4. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    <!--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]
    А обязательно первый? Мне бы желательно сделать последний, но оно что-то не работает
     
  5. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Хотя вроде получилось через notesviewentrycollection
    Спасибо!
    Но все равно , интересно, насчет первого столбца
     
  6. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Можно и не первую-

    Из хелпа 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.

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

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: DNT
    Спасибо,

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    хм... странно, имхо , Call у Вас лишний

    Код (Text):
     
    Sub Initialize 
    Dim s As New NotesSession  
    Forall book In s.AddressBooks    
    book.open "", ""     
    Messagebox book.Title,, "Address book" 
    End Forall
    End Sub
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    Что-то я не совсем понимаю...
    У меня работает
    Dim db1 As New NotesDatabase( "", "" )
    Call db1.Open(stDBServer,stDBFileName )
    Но после того, как я уже открыл.. открыть другую БД, уже не получается.....

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    покажи ошибку, чтоли.
     
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Пишет database object is already open as .....................
     
  12. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    Dim db1 As New NotesDatabase( "", "" )
    db1.Open(stDBServer,stDBFileName )
     
  13. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: wowa

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

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

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    не сохраняет,, пишет ошибку скрипта

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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: 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
     
  16. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Поставил Dim db1 As New NotesDatabase( "", "" ) в цикл - и всё заработало.. Большое спасибо...
    Хотя раньше ставил в цикл, но что-то не получалось ))
    Спасибо!
     
  17. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: wowa

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

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: DNT
    выходит да!
    Нужно было ее засунуть в цикл перед открытием новой БД
     
  19. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    <!--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])
     
  20. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    как вообщем задать этот массив?
     
Загрузка...

Поделиться этой страницей