• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Ruslan280
  • Дата начала
R

Ruslan280

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

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

Kee_Keekkenen

на 9.0.1.fp3 такое тоже проскакивает
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
36
... -в postopen SetViewFilter ...
Стрёмная логика: после postopen показывается уже "просчитанная" вьюшка, а тут ей говорят, что надо бы ещё один фильтр замутить ;)
К тому же, SetViewInfo накладывает фильтр для конкретного фрейма и запускать его надо-бы из скрипта снаружи View.
Мне так видится.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Стрёмная логика: после postopen показывается уже "просчитанная" вьюшка, а тут ей говорят, что надо бы ещё один фильтр замутить ;)
К тому же, SetViewInfo накладывает фильтр для конкретного фрейма и запускать его надо-бы из скрипта снаружи View.
Мне так видится.
правильно говоришь - "но оно же работает"

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

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

anna

У меня так:
Во всех видах, в которых не нужна фильтрация, стоит на 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

alexas1

Green Team
10.04.2014
1 202
225
BIT
36
и
есть кнопка включения
- в этом соль. Всё должно быть жёстко последовательно (ибээмы так и прогят свои базы). А то можно получить смешной результат. Та же петрушка с применением environment in view selection - может и не сработать. И с заполнением инфой кучи фреймов из одного скрипта (особенно когда они зависимы друг от друга)
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
с применением 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.
[DOUBLEPOST=1426603706,1426603648][/DOUBLEPOST]Кстати, если надо сделать что-то вроде "Мои документы", я бы делал через встроенную вьюху + открытие формы с ней
 

duchan

Green Team
20.09.2006
127
11
BIT
107
А это разве работает?
На самом деле работает, но необходимо понимать, что индекс строится на сервере (!!!), так что значение в environment необходимо помещать в notes.ini сервера, и после замены значения, необходимо ребилдить вид, поскольку environment'ы будут работать по типу константы (иногда это даже удобно и полезно, если, например, необходимо в виде отображать только текущий год, то можно серверным агентом прописывать в environment значение текущего года, а потом отправлять на консоль команду ребилда вида (ежедневный ночной агент читает значение из environment и если не совпадает с необходимым, перезаписывает и ребилдит вид, так что не забываем соответствующие права для агента и подписанта агента)). Главное понимать, что нельзя использовать для постоянно меняющихся и индивидуальных для пользователя операций.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
@duchan,
Короче: можно, но гемор еще тот.
У меня есть в паре баз вьюха для пользователей, а-ля "Мои документы": Форма + встроенная вьюха (категория по именя), форму открывает агент из аутлайна. Работает, стабильно, гемора сильного нет.
В других базах есть вьюхи с отбором "Сегодня"/"Сегодня + 7 дней", их каждое утро меняет агент, прописывает дату.
Гемора меньше в разы.
 

duchan

Green Team
20.09.2006
127
11
BIT
107
их каждое утро меняет агент, прописывает дату.
я курсе, что так можно, но в своё время решил отказаться, поскольку это меняется дизайн вьюшки, а следовательно нельзя наследовать ее из шаблона. Когда это одиночные системы, то это прокатывает, но у меня 10-ок одношаблонных систем и разруливать приходится только по шаблонам. Так что... Я указал это как один из возможных вариантов, гемора вообще не вижу, у меня в системной базе (база общих настроек системы) сделан блок для серверных переменных, где у меня все тонко и одноразово настраивается, а далее простейший агент это все разруливает.
Еще раз повторяюсь, это одна из возможностей, такой лайфхак, и написал это только для примера, для расширения понятия о возможности работы environment... :)
 
R

Ruslan280

@duchan,
У меня есть в паре баз вьюха для пользователей, а-ля "Мои документы": Форма + встроенная вьюха (категория по именя), форму открывает агент из аутлайна. Работает, стабильно, гемора сильного нет.

спасибо, похоже это то что нужно - буду пробовать
 
R

Ruslan280

возник еще один вопрос - как добавить строку поиска во встроенное представление
(кнопки view - search this view нет)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!