Динамическая формула по отбору документов. Миф или реальность?

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 4 сен 2007.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Здравствуйте.
    У меня вот такой вопрос. Как можно сделать так чтобы, при открытий вьюшки там динамически менялся формула отбора документов в зависимости от ролей? Возможно, ли это вообще? Например: если юзер, который имеет роль [GEF], открывает эту вьюшку, то он должен видеть только студентов географо-экологического факультета. Т.е. формула отбора должна выглядеть так:
    SELECT Form=”Student” & Faculty=”Географо-экологический”.
    Соответственно, если эту вьюшку открывает другой юзер, имеющий роль, например, [IST], то он должен видет студентов исторического факультета, то есть формула должна меняться в
    SELECT Form=”Student” & Faculty=”Исторический”.
    При решении этого вопроса пробовали использовать файл Notes.ini, для того чтобы хранить временные переменные и процедуры @SetEnvironment и @Environment. Что-то не получается. Работаю на версии R5. Может из-за этого?
    P.S.
    А динамически отбор документов надо для того чтобы уменьшить количество вьюшек. Например, если универе 10 факультетов и требуется 3 вида вьюшек, то придется создавать 30 представлений.
     
  2. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: yerke

    Используй поля "Readers", "Editors" в документах и будет все орлайт.
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: yerke
    Не верте ув. DNT - хватить полей типа Readers
    можете почитать примерчик тут
     
  4. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Дорогой, Morpheus! Можете подробнее написать, как будет осуществляться отбор документов во вьюшке, если значение полей одного документа: Readers=”[IST]” и Faculty=”Исторический”, а следующего документа: Readers=”[URI]” и Faculty=”Юридический”?
    Как будет выглядеть формула отбора?
    Select Form=”Student” & @IsMember(Readers; @UserRoles) или
    Select Form=”Student” & @Contains(Readers; @UserRoles)
    Так что ли, или как то по-другому?
     
  5. fvoice

    fvoice Гость

    Для: yerke
    Если пользователь не имеет ни одной роли, указанной в поле Readers, то он не сможет увидеть документ, соответственно формулу отбора можно оставить:
    Код (Text):
    Select Form=”Student”
    Дополнительно почитайте раздел "Using a Readers field to restrict access to specific documents" в хелпе.
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: yerke
    Поймите самое главное, Если реч идёт об полях ридерс то не надо писать это в одборе
    если человек не указан в поле ридерс ( или его группа, или роль ) то человек попросто НЕ УВИДЕТ документ вообще как таковой
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Ой... Как вы себе представляете, что произойдет, если одну вьюшку одновременно откроют [GEF] и [IST]?
    Что она ДОЛЖНА содержать?

    ЗЫ: издержки воспитания на персональных вычислениях. А тут - сервер, разделяемые ресурсы, конкурентный доступ etc
     
  8. Гость

    В каком смысле дновременно? Если 2 человека с разными ролями то 1 увидит одно а 2 другое. Если же у человека есть обе роли то во вьюхе будут и те и другие студенты. По поводу 30 вьюх это сильно конечно. Сегодня 10 факультетов а завтра 10 факультетов*10 кафедр*2 группы... Неужели столько вьюх будет? :)
     
  9. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Ни фига. В постановке инициатора темы при каждом открытии вьюхи она будет генерироваться заново в соотв. с ролью очередного юзера (это действительно осуществимо, именно через notes.ini Я когда-то еще в 4-ке делал). А вот что при этом увидит предыдущий юзер (не закрывший вьюху), и как себя будет чувствовать сервер (вынужденный по каждому клику перелопачивать ВСЮ базу? :rolleyes: ) Да уж.. АкАномия
     
  10. Гость

    Так похоже я что то недопонял... Есть 2 человека: у одного роль1 у второго роль2. Допустим они обращаются к вьюхе с разных компов или с одного, но при этом под разными ИД. В результате первый увидит то что положено ему, а второе - то что ему. На то и существует чудесное поле ридерс.Вот что требовалось:
    <!--QuoteBegin-yerke+4:09:2007, 16:14 -->
    <span class="vbquote">(yerke @ 4:09:2007, 16:14 )</span><!--QuoteEBegin-->Например: если юзер, который имеет роль [GEF], открывает эту вьюшку, то он должен видеть только студентов географо-экологического факультета.
    [snapback]77202" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Если в поле ридерс пользователь прописан, он увидит документ, не прописан - не увидит. Зачем базу то всю лопатить?
     
  11. nor

    nor Гость

    Для: yerke

    А ничего, что у меня дедушка на фронте ВОв воевал?

    Для: Constantin A Chervonenko

    Мда... Вы бы, уважаемый гуру, лучше бы человеку посоветовали, объяснили, показали, рассказали, а то только все запутали....
     
  12. Гость

    <!--QuoteBegin-nor+6:09:2007, 11:50 -->
    <span class="vbquote">(nor @ 6:09:2007, 11:50 )</span><!--QuoteEBegin-->А ничего, что у меня дедушка на фронте ВОв воевал?
    [snapback]77356" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Полностью поддерживаю!!! Не дело это - иметь такой аватар :rolleyes:
     
  13. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-nor+6:09:2007, 10:50 -->
    <span class="vbquote">(nor @ 6:09:2007, 10:50 )</span><!--QuoteEBegin-->А ничего, что у меня дедушка на фронте ВОв воевал?
    [snapback]77356" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    +1
    <!--QuoteBegin-Ерюков Алексей+6:09:2007, 11:57 -->
    <span class="vbquote">(Ерюков Алексей @ 6:09:2007, 11:57 )</span><!--QuoteEBegin-->Не дело это - иметь такой аватар
    [snapback]77362" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    +1

    Для: yerke
    Если ен секрет сколько Вам лет?
     
  14. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
  15. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: yerke
    ясно. не обижайтесь, мой вам совет - всетаки стоит сменить картинку. Многие как минимум просто не принимают такого.ОБьяснять вам почуму не буду. Не понимаете ваши проблемы, а понимаете - зделаете как я посоветовал
     
  16. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Добрый день!
    У меня возникли следующие проблемы с полями типа «Читатели». Дело в том что, раньше форма «Student» не содержала такое поле и я добавил туда многозначное вычисляемое поле типа «Читатели». Потом запустил агент, который заполняет это поле (RNames), учитывая значение поля «Faculty», если Faculty=”Географо-экологический”, то RNames=«[GEF]», а если Faculty=”Исторический”, то RNames=«[IST]» и т.д. Но во вьюшке ничего не изменилось, как было, так и осталось: под каким ролем не зайди, все документы отображаются.
    Потом создал другую форму, для эксперимента, добавил туда поле типа «Читатели» и другие поля. Используя разные роли, создал несколько документов с помощью этой формы, заполнил все поля как надо. Во вьюшке, который отбирает документы этой формы, учитывается роли и скрываются документы, которых не должен видеть этот юзер. Короче все работает. А там, нет. В чем дело, подскажите, пожалуйста.
    P.S.
    Начет аватора без комментариев.
    :(

    для Morpheus
    ок
    как скажете :)
     
  17. Гость

    Проверьте что содержат поля ридерс у этих документов. Возможно они не обновились? Вы после обновления полей сохраняли документ? Это легко проверить посмотрите в свойсвах документа в соответствующем поле должно быть то, что вы туда вписали
     
  18. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    <!--QuoteBegin-Ерюков Алексей+6:09:2007, 12:21 -->
    <span class="vbquote">(Ерюков Алексей @ 6:09:2007, 12:21 )</span><!--QuoteEBegin-->Вы после обновления полей сохраняли документ? Это легко проверить посмотрите в свойсвах документа в соответствующем поле должно быть то, что вы туда вписали

    [snapback]77376" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    конечно сохранял, только в backend-e. А свойствах документа, поле ридерс содержит нужные данные, то есть [IST] для исфака, [GEF] для ГЭФ и т.д. Но Флаги поля ридерс почему то: SUMMARY, а как мне известно должно быть SUMMARY READ-ACCESS NAMES.
     
  19. K-Fire

    K-Fire Гость

    Надо либо на форме поместить ридерское поле Readers, и перед сохранением в бэкенде делать ComputeWithForm, либо напрямую ставить полю куда вы записываете роль флаг isReaders
     
  20. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Для: Morpheus
    Я сменил иконку.
    Но это - истребитель Люфтваффе
    :(
     
Загрузка...

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