Программное Удаление Личного Вида Для Пересоздания

Mikle77

Well-known member
19.12.2007
80
0
#1
Добрый день Всем !

Lotus 7.02

Проблема что в видах в которых пользователи смотрят свои документы (фильтр на условие только документы текущего пользователя) не все документы отображаются. Т.е. плохо обновляется вид.

Это виды типа Общие-частные при первом использовании.

НО если пользователь через меню - Действия-Вид- удалить вид удалит такой вид то сразу вид сам пересоздается и в нем все корректно обновлено и все документы присутствуют.


Как сделать так что бы такие виды корректно обновлялись ?

Может как вариант сделать кнопку в виде пользователям "Обновить вид" - по которой будет удалятся частный вид и тогда автоматически создастся новый обновленный или вообще на открытие вида код повесить удаления частного вида ? (правда в этом случае не нашел как можно в скрипте удалять именно частный вид пользователя).
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
Личные серверные представления пользователя можно получить перебором коллекции представлений БД NotesDatabase.Views и анализом их свойств Readers и IsPrivate, удалять методом NotesView.Remove. Десктопные личные представления без "танцев с бубном" удалить проблематично, где-то проскакивала информация, как это можно сделать, поищите.

Добавлено
Про удаление SPOFU:
http://www.notesnet.ru/nn/notesnet.nsf/not...3256CFE00420797
SDPOFU нужно удалять в desktop6.ndk
http://www.breakingpar.com/bkp/home.nsf/Do...DE19&Remote
Также можно попробовать использовать @UpdateViewDesign(VIEWNAME_DESKTOP; VIEWNAME_TEMPLATE);
 

Anatoly

Lotus team
30.03.2007
222
0
#3
А как можно обновить дизайн личных папок пользователя при изменении дизайна шаблона.
Если удалить описанным образом, при открытии дизайн будет новый, но она будет пустой, то есть отобранные в папку ранее документы потеряются.

Добавлено:
Также можно попробовать использовать @UpdateViewDesign(VIEWNAME_DESKTOP; VIEWNAME_TEMPLATE);
Что-то у меня в хелпе (7.0.3) такого не находится...
 

Anatoly

Lotus team
30.03.2007
222
0
#5
Для обновления дизайна Private видов нужно сделать вид-шаблон и в database resources на событие, например, postopen, поставить
@IfError(@UpdateViewDesign( "TemplateView"; "PrivateView"); "");

Поробовал, ничего не происходит.
"TemplateView" и "PrivateView", - по идее одно и то же имя?

Агент, позволяющий к выбранным папкам применить изменения дизайна в "шаблоне"
SELECT @All;
@UpdateViewDesign(@PickList( [Folders] ; @DbName);"TemplateFolder")

Через агента то же что-то...
Выводит список папок, выбираю нужную - ноль
 

Anatoly

Lotus team
30.03.2007
222
0
#7
Тогда непонятно.
1) Я создал SPOFU папку с алиасом "pf.AdvUnit"
2) Пользователь при первом открытии создает в базе личную папку с таким же алиасом.

Причем личная папка создается с запретом на изменение дизайна, приходится снимать этот признак. Но не суть.
Алиас - один.

Когда я создал рядом новую папку с другим алиасом и ее алиас подставил с формулы, вроде стало подхватывать изменения.
Но изменения происходят только в личном варианте папке, а первоначальный шаблон не меняется. И если удалить личную пользователя, она дизайн новой возьмется из начального варианта. Что не так...?
 

nvyush

Lotus team
22.04.2009
2 317
0
#8
Если в формуле алиас один — приватная папка копирует свой же дизайн, поэтому приходится создавать вторую папку с другим алиасом. Соответственно, нужно синхронизировать дизайн обеих шаредных папок. Каким образом это делать не подскажу — сам об этой технологии только слышал, на деле применять не приходилось.