Picklist друй базы на лотусях

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

  1. LIGHT

    LIGHT Гость

    Пошскажите как правильно открыть Plist другой базы делаю так:
    Ругается на ForAll


    Код (Text):
        Dim db1 As NotesDatabase
    Dim view As NotesView
    Dim doc1 As NotesDocument
    Dim picklist As Variant
    Set db1 = s.CurrentDatabase

    Set db1 = s.GetDatabase("server", "test\bases")
    Set view = db1.GetView ("PLDatabases" )

    If db1.isOpen = False Then
    Msgbox ("Ошибка")
    Exit Sub
    End If


    Let Prompt = "Выберите"

    If ( Isempty( view ) ) Then
    Messagebox "Отменено" , , "Resource selected"
    Else

    Forall view In picklist
    messagelist = messagelist & plist & Chr(10)
    End Forall
    Messagebox messagelist , , "Resource selected"

    End If
    В конце явно что-то намудрено, дела по хелпу...
    Мне нужно вытянуть пик лист, и выбрать значение в переменную...
     
  2. Hedg

    Hedg Гость

    конечно будет ругаться, типы данных не совпадают.
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-LIGHT+14:06:2007, 15:35 -->
    <span class="vbquote">(LIGHT @ 14:06:2007, 15:35 )</span><!--QuoteEBegin-->Forall view In picklist
    [snapback]69361" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Наверное, так надо? :(
    Код (Text):
    Forall plist In picklist
     
  4. LIGHT

    LIGHT Гость

    Нет, я переменную и "учебника" заменил на view

    Переделал так (по хелпу), теперь ошибка "Не верный тип" (Object variable not set)


    Код (Text):
        Dim db1 As NotesDatabase
    Dim doc1 As NotesDocument
    Set db1 = s.CurrentDatabase
    Set db1 = s.GetDatabase("server", "worck\bases")

    If db1.isOpen = False Then
    Msgbox ("Ошибка")
    Exit Sub
    End If

    Dim picklist As Variant
    Dim messagelist As String
    Dim view As NotesView

    Set picklist = db1.GetView ("PLStructureFlat" )
    Let Prompt = "Выберите"

    If ( Isempty( picklist ) ) Then
    Messagebox "Canceled" , , "Resource selected"
    Else
    Forall plist In picklist
    messagelist = messagelist & plist & Chr(10)
    End Forall
    Messagebox messagelist , , "Resource selected"
    End If
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Попробуй в хелпе посмотреть второй пример.
     
  6. LIGHT

    LIGHT Гость

    Нето, .... тоже самое.
    Я моежт не правильно выразился (постал проблему)
    В итоге мне нужно модальное окошко, в котором выведена вьюшка, юзер тыкает в нужное значение, и оно заносится в переменную.
     
  7. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    Что-то вы совсем заблудились в своих исправлениях.

    forall применяется только для контейнеров.

    если перебирать вьюхи, то надо делать так:
    Код (Text):
    Dim views as Variant
    views = db.Views
    Forall view In views
    End ForAll
    ключевые слова здесь array, list, or collection.
    view ни к одному из них не относится
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: LIGHT
    Я тебе и говорю. Второй пример почти про это:
    Код (Text):
    Sub Click(Source As Button)
    Dim workspace As New NotesUIWorkspace
    Dim picklist As Variant
    Dim messagelist As String
    picklist = workspace.PickListStrings( _
    PICKLIST_CUSTOM, _
    True, _
    "snapper", _
    "ProgWork2", _
    "By Category", _
    "Document picker", _
    "Please select some documents.", _
    4, _
    "Procedures" )
    Forall plist In picklist
    messagelist = messagelist & plist & Chr(10)
    End Forall
    Messagebox messagelist
    End Sub
     
  9. LIGHT

    LIGHT Гость

    Другая затыка, иза чего может вместо нужного PickList открыватся окно выбора пользователей справочника AK?
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Потому что тип указан PICKLIST_NAMES. В хелпе же всё расписано.
     
  11. LIGHT

    LIGHT Гость

    Ребята, спасибочки большое, разобрался пришлось мозг ребутнуть, пока воткнулся что это за хренька:
    Код (Text):
    "snapper", _
    "ProgWork2", _
    "By Category", _
    "Document picker", _
    Истина как всегда лежала на поверхности :)
    Благодарности в виде "реп" роздана :)
    Ну и еще вопрос.

    И этой вьюхи я выбрал документ, и мне вернулся UNID этого дока
    Дальше мне нужно найти этот документ в базе и прочитать пару полей.

    Как будет правильно поступить в этом случае, заново открыть БД и найти документ по UNID дальше работать, или можно как-то сразу открыть выбранный докмент и считать с него нужные поля?
     
  12. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-LIGHT+15:06:2007, 09:55 -->
    <span class="vbquote">(LIGHT @ 15:06:2007, 09:55 )</span><!--QuoteEBegin-->И этой вьюхи я выбрал документ, и мне вернулся UNID этого дока
    Дальше мне нужно найти этот документ в базе и прочитать пару полей.

    Как будет правильно поступить в этом случае, заново открыть БД и найти документ по UNID дальше работать, или можно как-то сразу открыть выбранный докмент и считать с него нужные поля?
    [snapback]69473" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Тогда тебе лучше использовать не notesUIWorkspace.PickListStrings, а notesUIWorkspace.PickListCollection.
    Этот метод сразу вернет коллекцию документов.
     
  13. LIGHT

    LIGHT Гость

    Вопрос усложнаяется, тут нужно нечто рекурсивного перебора.
    Найдя этот документ мне нужно считать поле Pole4ko
    В котором есть UNIDы других документов из этой же БД, типа
    "12312312312312"
    "42312312312112"
    "62412352312116"
    Вот эти документы тоже придется открыть что бы в них считать тоже по одному полю.

    В идеале все это мутиться для того что бы получить запись вида
    Где каждому элементу соответствует UNID изначально известен последний элемент списка из которого я получаю UNIDы родителей, и мне нужно подняться вверх считывая title у предков.
     
Загрузка...
Похожие Темы - Picklist друй базы
  1. OksanaS
    Ответов:
    6
    Просмотров:
    986
  2. Serduko
    Ответов:
    17
    Просмотров:
    2.518
  3. beloff
    Ответов:
    37
    Просмотров:
    5.852
  4. Реник
    Ответов:
    3
    Просмотров:
    1.308
  5. maks00793
    Ответов:
    1
    Просмотров:
    1.137

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