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

Тема в разделе "Lotus - Программирование", создана пользователем Ruslan280, 16 мар 2015.

  1. Ruslan280

    Ruslan280 Well-Known Member

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

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

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    на 9.0.1.fp3 такое тоже проскакивает
     
  3. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Стрёмная логика: после postopen показывается уже "просчитанная" вьюшка, а тут ей говорят, что надо бы ещё один фильтр замутить ;)
    К тому же, SetViewInfo накладывает фильтр для конкретного фрейма и запускать его надо-бы из скрипта снаружи View.
    Мне так видится.
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    правильно говоришь - "но оно же работает"

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

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

    anna Lotus team
    Lotus team

    Регистрация:
    3 июн 2014
    Сообщения:
    309
    Симпатии:
    8
    У меня так:
    Во всех видах, в которых не нужна фильтрация, стоит на 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] )
     
    2 пользователям это понравилось.
  6. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    и
    - в этом соль. Всё должно быть жёстко последовательно (ибээмы так и прогят свои базы). А то можно получить смешной результат. Та же петрушка с применением environment in view selection - может и не сработать. И с заполнением инфой кучи фреймов из одного скрипта (особенно когда они зависимы друг от друга)
     
  7. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    А это разве работает? environment же нельзя использовать в Selection Formula:
    [DOUBLEPOST=1426603706,1426603648][/DOUBLEPOST]Кстати, если надо сделать что-то вроде "Мои документы", я бы делал через встроенную вьюху + открытие формы с ней
     
  8. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Работает. Иногда :)
     
  9. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    На самом деле работает, но необходимо понимать, что индекс строится на сервере (!!!), так что значение в environment необходимо помещать в notes.ini сервера, и после замены значения, необходимо ребилдить вид, поскольку environment'ы будут работать по типу константы (иногда это даже удобно и полезно, если, например, необходимо в виде отображать только текущий год, то можно серверным агентом прописывать в environment значение текущего года, а потом отправлять на консоль команду ребилда вида (ежедневный ночной агент читает значение из environment и если не совпадает с необходимым, перезаписывает и ребилдит вид, так что не забываем соответствующие права для агента и подписанта агента)). Главное понимать, что нельзя использовать для постоянно меняющихся и индивидуальных для пользователя операций.
     
  10. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    @duchan,
    Короче: можно, но гемор еще тот.
    У меня есть в паре баз вьюха для пользователей, а-ля "Мои документы": Форма + встроенная вьюха (категория по именя), форму открывает агент из аутлайна. Работает, стабильно, гемора сильного нет.
    В других базах есть вьюхи с отбором "Сегодня"/"Сегодня + 7 дней", их каждое утро меняет агент, прописывает дату.
    Гемора меньше в разы.
     
  11. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    я курсе, что так можно, но в своё время решил отказаться, поскольку это меняется дизайн вьюшки, а следовательно нельзя наследовать ее из шаблона. Когда это одиночные системы, то это прокатывает, но у меня 10-ок одношаблонных систем и разруливать приходится только по шаблонам. Так что... Я указал это как один из возможных вариантов, гемора вообще не вижу, у меня в системной базе (база общих настроек системы) сделан блок для серверных переменных, где у меня все тонко и одноразово настраивается, а далее простейший агент это все разруливает.
    Еще раз повторяюсь, это одна из возможностей, такой лайфхак, и написал это только для примера, для расширения понятия о возможности работы environment... :)
     
  12. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    спасибо, похоже это то что нужно - буду пробовать
     
  13. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    возник еще один вопрос - как добавить строку поиска во встроенное представление
    (кнопки view - search this view нет)
     
  14. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Никак. Писать самому.
     
Загрузка...
Похожие Темы - Setviewfilter иногда не
  1. Extraterrestrial
    Ответов:
    2
    Просмотров:
    2.210
  2. PavelT100
    Ответов:
    4
    Просмотров:
    3.040

Поделиться этой страницей