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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.12.2008, 17:53   #1  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
smmBusRelTable
Цитата:
Сообщение от mdconsult Посмотреть сообщение
Да, кстати, не указал, что меня интересует подобное разграничение на таблицу smmBusRelTable. Чтобы "Деловые отношения" модуля CRM менеджеры просматривали все, а редактировали только свои.
Если речь идет о форме smmBusRelTable то тогда понятно о каком поле "Ответственный" шла речь - smmBusRelTable.MainContact, код сотрудника из EmplTable? В таком случае необходимо модифицировать метод active() источника данных smmBusRelTable.

Можно предварительно сохранить в переменную код текущего сотрудника при открытии формы:
ClassDeclaration формы:
X++:
class FormRun extends ObjectRun
{
    ...
    EmplId  currentContactId ;
    ...
}
в методе init() формы:
X++:
void init()
{
    ...
    currentContactId = smmUtility::getCurrentContact() ;
    ...
}
Если речь идет о DAX 4.0 и предположения о том что пользователь может править "своих" (при условии что связь userId->EmplId определена) клиентов и тех у которых поле 'Ответственный' не задано (иметь возможность сделать ранее введенную запись 'своей') то примерно так:

X++:
#Admin
int active()
{
    boolean allowEdit ;

    ...
    allowEdit = UserInfoHelp::userInUserGroup( curUserId(), #AdminUserGroup ) || // администраторы могут править все?
                ( currentContactId && ( smmBusRelTable.MainContact == currentContactId
                                        // если возможность править записи с неуказанным ответственным не нужна - закоментировать строку ниже
                                        || !smmBusRelTable.MainContact                 
                ) ) ;
    smmBusRelTable_ds.allowEdit( allowEdit ) ;
    ...
}
В Axapta 3.0 по-моему при открытии формы требовалось что бы пользователь был связан с сотрудником (связь userId->EmplId будет гарантирована), поэтому часть условия (currentContactId) можно опустить:
X++:
#Admin
int active()
{
    boolean allowEdit ;

    ...
    allowEdit = UserInfoHelp::userInUserGroup( curUserId(), #AdminUserGroup ) || // администраторы могут править все?
                ( smmBusRelTable.MainContact == currentContactId
                  // если возможность править записи с неуказанным ответственным не нужна - закоментировать строку ниже
                  || !smmBusRelTable.MainContact                 
                ) ;
    smmBusRelTable_ds.allowEdit( allowEdit ) ;
    ...
}
За это сообщение автора поблагодарили: mdconsult (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Настройка прав доступа к записям Andrew AG DAX: Функционал 10 26.04.2014 06:23
Расширение возможностей стандартных прав доступа Stainless DAX: Программирование 2 19.06.2008 10:36
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42
Разграничение прав доступа на складские операции mav DAX: Администрирование 27 15.10.2004 19:41
Проблемы настройки прав доступа пользователям axot DAX: Администрирование 25 16.05.2002 10:47

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

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

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