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

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

lmed

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

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

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

lmed

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#4
lmed
Вроде же надо было базу переоткрыть, что бы увидеть свежесозданный view/folder.
А когда сталкивался с этой проблемой, тогда воркараунда не нашёл...
 
L

lmed

Гость
#5
lmed
Вроде же надо было базу переоткрыть, что бы увидеть свежесозданный view/folder.
А когда сталкивался с этой проблемой, тогда воркараунда не нашёл...
Если просто закрыть/открыть базу - то не помогает.
А вот если закрыть/открыть клиента - то да, работает! :) Может все же есть более простое решение?
 
L

lmed

Гость
#7
:)
Если она у тебя была открыта в дизайнере, она не будет переоткрытой.
Я думаю, именно в этом проблема.
Вы оказались правы ;) Действительно, база не переоткрывалась потому что была открыта в дизайнере. Спасибо!
 

nayke

Well-Known Member
04.08.2010
310
0
Москва
#9
А нельзя ли поточнее как именно переоткрыть базу. С Лотусом работаю недавно. Пробовал уже и uidb.close и delete uidb. Все равно не могу увидеть только что созданную view.
 

Xalet

Well-Known Member
08.08.2008
410
0
Вильнюс. Литва.
#10
А нельзя ли поточнее как именно переоткрыть базу. С Лотусом работаю недавно. Пробовал уже и uidb.close и delete uidb. Все равно не могу увидеть только что созданную view.
А в чем проблема? Код из хелпа работает на ура:

Код:
Dim ws As New NotesUIWorkspace
Dim uidb As NotesUIDatabase
Set uidb = ws.CurrentDatabase
Call uidb.Close
 

nayke

Well-Known Member
04.08.2010
310
0
Москва
#11
проблема вот в чем создаю программно вид, пытаюсь его открыть для просмотра.
Set view = db.CreateView(viewname & "_user" ,viewformula,db.GetView(viewname),False)
Call workspace.CurrentDatabase.OpenView(viewname & "_user") или Call uidb.OpenView(viewname & "_user" , "",True,True)
Появляется ошибка, что такого вида нет. Поискал в сети - вроде как надо переоткрыть базу. Как вы пишите пробовал - говорит база уже открыта.
и проблема с видом не решается. Т.е. закрываю как написано выше потом снова открываю базу.
 

Xalet

Well-Known Member
08.08.2008
410
0
Вильнюс. Литва.
#12
проблема вот в чем создаю программно вид, пытаюсь его открыть для просмотра.
Set view = db.CreateView(viewname & "_user" ,viewformula,db.GetView(viewname),False)
Call workspace.CurrentDatabase.OpenView(viewname & "_user") или Call uidb.OpenView(viewname & "_user" , "",True,True)
Появляется ошибка, что такого вида нет. Поискал в сети - вроде как надо переоткрыть базу. Как вы пишите пробовал - говорит база уже открыта.
и проблема с видом не решается. Т.е. закрываю как написано выше потом снова открываю базу.
А база закроется, пока в ней что-то исполняется? =)

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

nayke

Well-Known Member
04.08.2010
310
0
Москва
#13
Не проще формулы менять у существующих(сделав их прайвит он фирст юз)?
Замена структуры коряво происходит и предполагается что вновь созданные и будут приватными, но удаляться после выполнения необходимых действий. А виды нужны для решения задачи фильтрации документов.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#14
Это на каждый чих в фильтре будешь новое представление создавать? Индексер не опухнет?
Наверное, база маленькая и сервер мощный.
 

nayke

Well-Known Member
04.08.2010
310
0
Москва
#15
Принцип примерно такой
1.пользователь запрашивает форму фильтра
2.вводит необходимые параметры
3. Создается вид и открывается после выполнения необходимых операций он удаляется.

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

Xalet

Well-Known Member
08.08.2008
410
0
Вильнюс. Литва.
#16
Принцип примерно такой
1.пользователь запрашивает форму фильтра
2.вводит необходимые параметры
3. Создается вид и открывается после выполнения необходимых операций он удаляется.

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#17
В хелпе есть пример.

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
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
48
Подмосковье
#18
точно так же, только вьюшку открываешь один раз и меняешь формулу(view.selectionformula=formula), на закрытии базы ее удаляешь. Если вьюшка шеред, прайвит он ферст юз, то при первом открытии создастся локальная копия без танцев с бубном с переоткрытиями базы.
Вот с этого места поподробнее, пожалуйста. Насколько я помню, локальные приватные представления из ЛС недоступны, можно только хитрым образом удалить его. Каким образом пользователь сможет изменить формулу отбора несколько раз в одном сеансе?
 

nayke

Well-Known Member
04.08.2010
310
0
Москва
#19
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), на закрытии базы ее удаляешь. Если вьюшка шеред, прайвит он ферст юз, то при первом открытии создастся локальная копия без танцев с бубном с переоткрытиями базы.
Это обязательно попробую. Я так понимаю что шеред, прайвит он ферст юз выставляется в свойствах при создании? И не будет ли проблем потомм с заменой структуры(просто порекомендовали именно из-за этого ими не пользоваться).
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#20
делал тоже самое тоьлко с методом search при перемещении файла в папку выдается ошибка что документ не является родительский необходим родительский документ.
И по папкам гораздо меньше информации(ее итак мало совсем если честно) например как их отобразить без формы и т.д.
В настройках папки надо убрать галку Show response documents in a hierarchy. Или перемещать с родительским.
Про информацию в папке и форму не понял. Папки практически ничем не отличаются от представления.