Программное создание папок

Тема в разделе "Lotus - Программирование", создана пользователем lmed, 12 май 2010.

  1. lmed

    lmed Гость

    Добрый день.
    Подскажите пожалуйста: программно создаю папку с помощью EnableFolder.
    Как потом заставить отобразиться эту папку в списке папок/во внедренных видах?

    У меня эта папка показывается после того, как я в дизайнере нажму F9.

    PS. Если эта тема уже обсуждалась, не пинайне, плиз - не нашел..
     
  2. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    F9 - "Обновить" (причем не только в дизайнере). Вот и гляньте всякого рода Refresh method'ы.
     
  3. lmed

    lmed Гость

    Было бы так просто, я бы не спрашивал. ;)
    И F9, и SHIFT+F9, и CTRL+SHIFT+F9 малополезны...
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    lmed
    Вроде же надо было базу переоткрыть, что бы увидеть свежесозданный view/folder.
    А когда сталкивался с этой проблемой, тогда воркараунда не нашёл...
     
  5. lmed

    lmed Гость

    Если просто закрыть/открыть базу - то не помогает.
    А вот если закрыть/открыть клиента - то да, работает! :) Может все же есть более простое решение?
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    :)
    Если она у тебя была открыта в дизайнере, она не будет переоткрытой.
    Я думаю, именно в этом проблема.
     
  7. lmed

    lmed Гость

    Вы оказались правы ;) Действительно, база не переоткрывалась потому что была открыта в дизайнере. Спасибо!
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    [off]Мне можно смело "ты"-кать, если что.[/off]
     
  9. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    А нельзя ли поточнее как именно переоткрыть базу. С Лотусом работаю недавно. Пробовал уже и uidb.close и delete uidb. Все равно не могу увидеть только что созданную view.
     
  10. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    А в чем проблема? Код из хелпа работает на ура:

    Код (LotusScript):
     
    Dim ws As New NotesUIWorkspace
    Dim uidb As NotesUIDatabase
    Set uidb = ws.CurrentDatabase
    Call uidb.Close
     
  11. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    проблема вот в чем создаю программно вид, пытаюсь его открыть для просмотра.
    Set view = db.CreateView(viewname & "_user" ,viewformula,db.GetView(viewname),False)
    Call workspace.CurrentDatabase.OpenView(viewname & "_user") или Call uidb.OpenView(viewname & "_user" , "",True,True)
    Появляется ошибка, что такого вида нет. Поискал в сети - вроде как надо переоткрыть базу. Как вы пишите пробовал - говорит база уже открыта.
    и проблема с видом не решается. Т.е. закрываю как написано выше потом снова открываю базу.
     
  12. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    А база закроется, пока в ней что-то исполняется? =)

    А зачем вообще создавать праграмно новые вьюшки? Не проще формулы менять у существующих(сделав их прайвит он фирст юз)?
     
  13. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Замена структуры коряво происходит и предполагается что вновь созданные и будут приватными, но удаляться после выполнения необходимых действий. А виды нужны для решения задачи фильтрации документов.
     
  14. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Это на каждый чих в фильтре будешь новое представление создавать? Индексер не опухнет?
    Наверное, база маленькая и сервер мощный.
     
  15. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Принцип примерно такой
    1.пользователь запрашивает форму фильтра
    2.вводит необходимые параметры
    3. Создается вид и открывается после выполнения необходимых операций он удаляется.

    Если есть способы проще рад буду услышать, но желательно поконкретнее.
    SetViewInfo не подходит по критериям для отбора.
    Используя метод search результат вывести не могу пробовал через папки - не получилось(скорее всего не хватило опыта и информации).
    поэтому решил остановиться на таком варианте
     
  16. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    точно так же, только вьюшку открываешь один раз и меняешь формулу(view.selectionformula=formula), на закрытии базы ее удаляешь. Если вьюшка шеред, прайвит он ферст юз, то при первом открытии создастся локальная копия без танцев с бубном с переоткрытиями базы.
     
  17. Medevic

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

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

    Examples: PutAllInFolder method
    The following example puts all the documents found through the FTSearch method of NotesDatabase into a folder "Spicy" inside another folder "Recipes."

    Код (Text):
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection
    Set db = session.CurrentDatabase
    Set collection = db.FTSearch( "cayenne", 20 )
    Call collection.PutAllInFolder( "Recipes\Spicy" )
    End Sub
     
  18. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Вот с этого места поподробнее, пожалуйста. Насколько я помню, локальные приватные представления из ЛС недоступны, можно только хитрым образом удалить его. Каким образом пользователь сможет изменить формулу отбора несколько раз в одном сеансе?
     
  19. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    делал тоже самое тоьлко с методом search при перемещении файла в папку выдается ошибка что документ не является родительский необходим родительский документ.
    И по папкам гораздо меньше информации(ее итак мало совсем если честно) например как их отобразить без формы и т.д.
    Это обязательно попробую. Я так понимаю что шеред, прайвит он ферст юз выставляется в свойствах при создании? И не будет ли проблем потомм с заменой структуры(просто порекомендовали именно из-за этого ими не пользоваться).
     
  20. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    В настройках папки надо убрать галку Show response documents in a hierarchy. Или перемещать с родительским.
    Про информацию в папке и форму не понял. Папки практически ничем не отличаются от представления.
     
Загрузка...

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