Добрый день!
Подскажите, можно ли в рамках одного отчета разграничить данные для разных пользователей.
Например есть несколько отделов в магазине и что бы заведующие из разных отделов видели данные только по своему отделу? Или нужно делать разные отчеты?
Если речь не идет о разграничении прав на просмотр (то есть принципиально не запрещается заведующему отдела А видеть отчет по отделу Б),
то можно использовать функцию OSUser(), которая возвращает логин учетной записи пользователя
Далее на лист с отчетом ставим триггер, организующий выборку в поле "Отдел":
iF(OSUser()='Ivanov', 'Отдел А', iF(OSUser()='Petrov', 'Отдел Б'))
Либо можно в скрипте загрузки организовать таблицу соответствия логинов и отделов и в отчете ограничивать измерение отдела значением, соответствующим логину.
То есть, если меняется пользователь, то нужно переделывать отчет? А в рамках настроек? Например для каждого отдела свой лист на котором будут данные только этого отдела и доступ к этому листу дать определенным пользователям?
В каком смысле меняется пользователь?
Если речь идет о том, что меняется руководитель "отдела А", на место его заступает другой человек с другой учетной записью то да, придется переделать отчет. Либо поправить табличку (например xls) в которой организована привязка отделов и логинов руководителей и которая подружается чере скрипт загрузки (если идти по второму варианту из тех, что я описывал).
Если имеется ввиду, что один юзер выходит из Клика, а другой заходит , то тут проблем нет (они вообще могу работать паралелльно). Qlik опознает пользователя и поставит выборку так, что отчет будет по его отделу.
У вас же Клик-Сервер стоит?
Опять же я не вполне понял есть ли у вас принципиальная секретность в предоставлении информации.
Если есть, то придется решать вопрос не через триггеры, а организацией секций доступа.
В общем решил остановится на SECTION Access. Но элементарный скрипт не работает. Захожу под любым ID и вижу все товары:
SECTION Access;
LOAD * INLINE [
USERID, ACCESS, PRODUCTTYPE
U1, USER, A
U2, USER, B
U3, USER, C
U4, USER, D
U5, USER, E
U6, USER, A
U6, USER, B
U6, USER, C
U6, USER, D
ADMIN, ADMIN, *
];
SECTION Application;
Tovar:
load * inline [
Товар , PRODUCTTYPE
Полоценце , A
Полоценце , A
Салфетка , B
Салфетка , B
GT , A
Нож , C
Нож , C
Нож , C
Нож , C
Вилка , D
Вилка , D
Вилка , D
Вилка , D
Вилка , D
Кружка , A
Кружка , B
Кружка , C
Диван , B
Диван , B
];
Даже не удается поэксперементировать как это все работает.
Да, и кстати из справочника пример тоже не разграничивает данные. Может кто сталкивался? Возможно требуются дополнительные настройки?
С данным вопросом разобрался. В свойствах документа, на вкладке открытие есть галочка, которая активирует ограничение согласно SECTION Access.
Есть небольшая статья по этой теме.
http://blog.atkcg.ru/section-access-razgranichenie-prav-dostupa-k-dannym/ (http://blog.atkcg.ru/section-access-razgranichenie-prav-dostupa-k-dannym/)