• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы lmed
  • Дата начала Дата начала
L

lmed

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

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

PS. Если эта тема уже обсуждалась, не пинайне, плиз - не нашел..
 
F9 - "Обновить" (причем не только в дизайнере). Вот и гляньте всякого рода Refresh method'ы.
 
Было бы так просто, я бы не спрашивал. ;)
И F9, и SHIFT+F9, и CTRL+SHIFT+F9 малополезны...
 
lmed
Вроде же надо было базу переоткрыть, что бы увидеть свежесозданный view/folder.
А когда сталкивался с этой проблемой, тогда воркараунда не нашёл...
 
lmed
Вроде же надо было базу переоткрыть, что бы увидеть свежесозданный view/folder.
А когда сталкивался с этой проблемой, тогда воркараунда не нашёл...

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

Вы оказались правы ;) Действительно, база не переоткрывалась потому что была открыта в дизайнере. Спасибо!
 
[off]Мне можно смело "ты"-кать, если что.[/off]
 
А нельзя ли поточнее как именно переоткрыть базу. С Лотусом работаю недавно. Пробовал уже и uidb.close и delete uidb. Все равно не могу увидеть только что созданную view.
 
А нельзя ли поточнее как именно переоткрыть базу. С Лотусом работаю недавно. Пробовал уже и uidb.close и delete uidb. Все равно не могу увидеть только что созданную view.

А в чем проблема? Код из хелпа работает на ура:

Код:
Dim ws As New NotesUIWorkspace
Dim uidb As NotesUIDatabase
Set uidb = ws.CurrentDatabase
Call uidb.Close
 
проблема вот в чем создаю программно вид, пытаюсь его открыть для просмотра.
Set view = db.CreateView(viewname & "_user" ,viewformula,db.GetView(viewname),False)
Call workspace.CurrentDatabase.OpenView(viewname & "_user") или Call uidb.OpenView(viewname & "_user" , "",True,True)
Появляется ошибка, что такого вида нет. Поискал в сети - вроде как надо переоткрыть базу. Как вы пишите пробовал - говорит база уже открыта.
и проблема с видом не решается. Т.е. закрываю как написано выше потом снова открываю базу.
 
проблема вот в чем создаю программно вид, пытаюсь его открыть для просмотра.
Set view = db.CreateView(viewname & "_user" ,viewformula,db.GetView(viewname),False)
Call workspace.CurrentDatabase.OpenView(viewname & "_user") или Call uidb.OpenView(viewname & "_user" , "",True,True)
Появляется ошибка, что такого вида нет. Поискал в сети - вроде как надо переоткрыть базу. Как вы пишите пробовал - говорит база уже открыта.
и проблема с видом не решается. Т.е. закрываю как написано выше потом снова открываю базу.

А база закроется, пока в ней что-то исполняется? =)

А зачем вообще создавать праграмно новые вьюшки? Не проще формулы менять у существующих(сделав их прайвит он фирст юз)?
 
Не проще формулы менять у существующих(сделав их прайвит он фирст юз)?
Замена структуры коряво происходит и предполагается что вновь созданные и будут приватными, но удаляться после выполнения необходимых действий. А виды нужны для решения задачи фильтрации документов.
 
Это на каждый чих в фильтре будешь новое представление создавать? Индексер не опухнет?
Наверное, база маленькая и сервер мощный.
 
Принцип примерно такой
1.пользователь запрашивает форму фильтра
2.вводит необходимые параметры
3. Создается вид и открывается после выполнения необходимых операций он удаляется.

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

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

точно так же, только вьюшку открываешь один раз и меняешь формулу(view.selectionformula=formula), на закрытии базы ее удаляешь. Если вьюшка шеред, прайвит он ферст юз, то при первом открытии создастся локальная копия без танцев с бубном с переоткрытиями базы.
 
В хелпе есть пример.

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."

Код:
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
 
точно так же, только вьюшку открываешь один раз и меняешь формулу(view.selectionformula=formula), на закрытии базы ее удаляешь. Если вьюшка шеред, прайвит он ферст юз, то при первом открытии создастся локальная копия без танцев с бубном с переоткрытиями базы.
Вот с этого места поподробнее, пожалуйста. Насколько я помню, локальные приватные представления из ЛС недоступны, можно только хитрым образом удалить его. Каким образом пользователь сможет изменить формулу отбора несколько раз в одном сеансе?
 
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."

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
делал тоже самое тоьлко с методом search при перемещении файла в папку выдается ошибка что документ не является родительский необходим родительский документ.
И по папкам гораздо меньше информации(ее итак мало совсем если честно) например как их отобразить без формы и т.д.
точно так же, только вьюшку открываешь один раз и меняешь формулу(view.selectionformula=formula), на закрытии базы ее удаляешь. Если вьюшка шеред, прайвит он ферст юз, то при первом открытии создастся локальная копия без танцев с бубном с переоткрытиями базы.
Это обязательно попробую. Я так понимаю что шеред, прайвит он ферст юз выставляется в свойствах при создании? И не будет ли проблем потомм с заменой структуры(просто порекомендовали именно из-за этого ими не пользоваться).
 
делал тоже самое тоьлко с методом search при перемещении файла в папку выдается ошибка что документ не является родительский необходим родительский документ.
И по папкам гораздо меньше информации(ее итак мало совсем если честно) например как их отобразить без формы и т.д.
В настройках папки надо убрать галку Show response documents in a hierarchy. Или перемещать с родительским.
Про информацию в папке и форму не понял. Папки практически ничем не отличаются от представления.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы