AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.07.2003, 09:57   #1  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
? Вопрос про QueryBuildRange()
Имеется задача разделить права доступа User Groups к кодам отделов (Departments, Dimension[1]). То есть, чтобы группа GR1 видела отделы D1 и D3, а D2 и В4 - не видела. А группа GR2 - наоборот, соответственно...

Имеем: табличку rvs_DeptUserSetup с двумя полями Dimension и UserGroupId, в которую и прописываем права доступа. То есть, если в табличке есть запись {GR1, D1}, то группа GR1 имеет доступ к коду отдела D1.

Затем, при помощи запроса:
PHP код:
    if (_checkUserRights) {
        
select UserId from userGroupList
            where userGroupList
.userId == curUserId()
            
join rvs_DeptUserSetup
            where userGroupList
.GroupId == rvs_DeptUserSetup.UserGroupId &&
            
rvs_DeptUserSetup.Dimension[1] == sysDim;
    
        if (
userGroupList.RecId != {
           
// Есть доступ!
        
}
    } 
легко определяем, имеет ли данный пользователь доступ к данному отделу.

Вопрос: как бы таким же образом отфильтровать список отделов в DimensionsLookup? Ну, НИЧЕГО в голову нейдет...
__________________
Best Regards,
Roman
Старый 10.07.2003, 10:28   #2  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
1. Можно использовать RLS, которая в 3.0 есть.
2. Можно сделать свою lookup формочку для расширенного типа кода отдела
Старый 10.07.2003, 12:29   #3  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Спасибо, но :

1. Нет в списке таблиц для RLS таблицы Dimensions . И задается это, похоже, где-то в этом районе:

source:///Forms/SysRecordLevelSecurityWizard/Methods/buildTableTree
PHP код:
        if (dictTable &&
            
dictTable.allowSecuritySetup() &&
            (
dictTable.tableGroup() == TableGroup::Main ||
             
tableSelection.selection() ||
             
tableIds.in(tableId)) &&
             (
domainAccess || SysRecordLevelSecurityWizard::tableAllowed(tableId)))
        { 
2. Не совсем понимаю, что потом с этой формочкой делать...

"Отдел" - это не поле, это часть поля Dimension. Под это поле есть спецовая Lookup-форма - DimensionsLookup называется, внутри себя довольно навороченная, так что подменять ее бы не хотелось...
Обрабатывает она ВСЕ Dimensions, а не только Department...
Не понимаю, туплю, наверное

А всего-то хотелось бы - в Init на DataSource вместо
PHP код:
    queryDimensionTypeSelectableRange queryBuildDataSource.addRange(fieldNum(DimensionsdimensionCode)); 
вставить нечто вроде ранее упомянутого SQL-statement-a...

Ведь, по сути, QueryBuildRange() - это WHERE, которое затем исполняется где-то в ядре, правильно я понимаю?
__________________
Best Regards,
Roman
Старый 10.07.2003, 12:45   #4  
kalex is offline
kalex
Участник
 
132 / 20 (1) +++
Регистрация: 18.05.2002
Адрес: Москва
Действительно, в RLS Аналитик не видать :-(
Значить нужно или DimensionsLookup править или вместо неё свою формочку подсовывать...
Старый 10.07.2003, 12:57   #5  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Значить нужно или DimensionsLookup править
Да сто пудов! Вопрос - КАК?
Цитата:
или вместо неё свою формочку подсовывать...
А вот этого не надо (с) Обоснование - выше.
__________________
Best Regards,
Roman
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод в отчёт значения QueryBuildRange Sergey Petrov DAX: Программирование 2 16.10.2008 16:33
Как скрыть на форме поле для queryBuildRange ? Zeratul DAX: Программирование 12 07.10.2008 13:33
Проблема с количеством в QueryBuildRange.Value() laxer DAX: Программирование 22 30.08.2006 13:56
проблема отрицаний в QueryBuildRange kgksoft DAX: Программирование 2 21.06.2004 17:02
Вопрос по QueryBuildDataSource, QueryBuildRange и QueryRun Paul_ST DAX: Программирование 9 11.02.2004 17:13
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:24.