Setviewfilter иногда не срабатывает

Ruslan280

Well-Known Member
18.04.2013
50
0
#1
День добрый! никто не сталкивался с такой ситуацией:
есть вьюха, -в postopen SetViewFilter (там отбор по лотус-имени пользователя)

почему-то иногда не срабатывает - то есть отображает всё.
причем виден первый столбец, который отображаться не должен вообще (имена всех пользователей width=1, категоризирован и отсортирован.
клиент 8.5.3. fp6. в базе 600 тыс. документов
 

alexas1

Well-Known Member
Lotus team
10.04.2014
689
239
#3
Стрёмная логика: после postopen показывается уже "просчитанная" вьюшка, а тут ей говорят, что надо бы ещё один фильтр замутить ;)
К тому же, SetViewInfo накладывает фильтр для конкретного фрейма и запускать его надо-бы из скрипта снаружи View.
Мне так видится.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 203
24
38
Киев
ToxaRat.com
#4
Стрёмная логика: после postopen показывается уже "просчитанная" вьюшка, а тут ей говорят, что надо бы ещё один фильтр замутить ;)
К тому же, SetViewInfo накладывает фильтр для конкретного фрейма и запускать его надо-бы из скрипта снаружи View.
Мне так видится.
правильно говоришь - "но оно же работает"

короче эту функцию можно "нормально" использовать только как команду в оутлайне а потом открывать так же командой вид
НО
не забываем что при переключении на другой вид, фильтр нужно сперва "отключить"

короче гемморная функция
 

anna

Well-Known Member
Lotus team
03.06.2014
387
11
#5
У меня так:
Во всех видах, в которых не нужна фильтрация, стоит на PostOpen вызов агента с таким содержимым
@SetViewInfo([SetViewFilter];"";"CurrentPerf";1);
@Command( [ViewCollapseAll] )
В виде, в котором нужен фильтр есть кнопка включения фильтра:
alt:=@If(@UserName(1)="";@Name([CN];@UserName);@Name([CN];@UserName(1)));
@SetViewInfo([SetViewFilter];alt;"CurrentPerf";1)
И выключения фильтра
@SetViewInfo([SetViewFilter];"";"CurrentPerf";1);
@Command( [ViewCollapseAll] )
 

alexas1

Well-Known Member
Lotus team
10.04.2014
689
239
#6
и - в этом соль. Всё должно быть жёстко последовательно (ибээмы так и прогят свои базы). А то можно получить смешной результат. Та же петрушка с применением environment in view selection - может и не сработать. И с заполнением инфой кучи фреймов из одного скрипта (особенно когда они зависимы друг от друга)
 

savl

Well-Known Member
Lotus team
28.10.2011
2 116
157
32
#7
с применением environment in view selection
А это разве работает? environment же нельзя использовать в Selection Formula:
@Environment cannot be used in column or selection formulas; it's only intended for use in field formulas, toolbar buttons, and agents.
 
Кстати, если надо сделать что-то вроде "Мои документы", я бы делал через встроенную вьюху + открытие формы с ней
 

duchan

Well-Known Member
20.09.2006
108
3
45
Красноярск
#9
А это разве работает?
На самом деле работает, но необходимо понимать, что индекс строится на сервере (!!!), так что значение в environment необходимо помещать в notes.ini сервера, и после замены значения, необходимо ребилдить вид, поскольку environment'ы будут работать по типу константы (иногда это даже удобно и полезно, если, например, необходимо в виде отображать только текущий год, то можно серверным агентом прописывать в environment значение текущего года, а потом отправлять на консоль команду ребилда вида (ежедневный ночной агент читает значение из environment и если не совпадает с необходимым, перезаписывает и ребилдит вид, так что не забываем соответствующие права для агента и подписанта агента)). Главное понимать, что нельзя использовать для постоянно меняющихся и индивидуальных для пользователя операций.
 

savl

Well-Known Member
Lotus team
28.10.2011
2 116
157
32
#10
@duchan,
Короче: можно, но гемор еще тот.
У меня есть в паре баз вьюха для пользователей, а-ля "Мои документы": Форма + встроенная вьюха (категория по именя), форму открывает агент из аутлайна. Работает, стабильно, гемора сильного нет.
В других базах есть вьюхи с отбором "Сегодня"/"Сегодня + 7 дней", их каждое утро меняет агент, прописывает дату.
Гемора меньше в разы.
 

duchan

Well-Known Member
20.09.2006
108
3
45
Красноярск
#11
их каждое утро меняет агент, прописывает дату.
я курсе, что так можно, но в своё время решил отказаться, поскольку это меняется дизайн вьюшки, а следовательно нельзя наследовать ее из шаблона. Когда это одиночные системы, то это прокатывает, но у меня 10-ок одношаблонных систем и разруливать приходится только по шаблонам. Так что... Я указал это как один из возможных вариантов, гемора вообще не вижу, у меня в системной базе (база общих настроек системы) сделан блок для серверных переменных, где у меня все тонко и одноразово настраивается, а далее простейший агент это все разруливает.
Еще раз повторяюсь, это одна из возможностей, такой лайфхак, и написал это только для примера, для расширения понятия о возможности работы environment... :)
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#12
@duchan,
У меня есть в паре баз вьюха для пользователей, а-ля "Мои документы": Форма + встроенная вьюха (категория по именя), форму открывает агент из аутлайна. Работает, стабильно, гемора сильного нет.
спасибо, похоже это то что нужно - буду пробовать
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#13
возник еще один вопрос - как добавить строку поиска во встроенное представление
(кнопки view - search this view нет)