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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.04.2018, 15:28   #1  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,514 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
А что мешает просто сделать проверку на сохранении записи?
__________________
С уважением,
Вячеслав
Старый 10.04.2018, 06:16   #2  
Natali77 is offline
Natali77
Участник
 
39 / 10 (1) +
Регистрация: 05.09.2016
Цитата:
Сообщение от pitersky Посмотреть сообщение
А что мешает просто сделать проверку на сохранении записи?

Подскажите как это сделать? в этом же методе нужно? Спасибо.
Старый 10.04.2018, 06:19   #3  
Natali77 is offline
Natali77
Участник
 
39 / 10 (1) +
Регистрация: 05.09.2016
И кажется мне нужно было разместить тему в разделе Программирование

Просьба модераторам перенести тему в раздел Программирование.

Спасибо.

Последний раз редактировалось Natali77; 10.04.2018 в 06:40.
Старый 10.04.2018, 09:36   #4  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,514 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от Natali77 Посмотреть сообщение
Подскажите как это сделать? в этом же методе нужно? Спасибо.
Например, так:
В каждом датасурсе, поля в которых надо защищать, перекрываете метод active. Внутри метода определяете, сохранена ли запись (курсор должен иметь ненулевой RecId) и относится ли пользователь к нужной группе. Если оба условия выполнены - ставите allowEdit датасоурса в true.
Это если вкратце.

По-хорошему, я бы ещё в этот момент обрабатывал allowDelete.

P.S. Те же манипуляции можно сделать на validateWrite таблицы датасоурса, только там не allowEdit надо параметризировать, а возвращаемое значение.
__________________
С уважением,
Вячеслав

Последний раз редактировалось pitersky; 10.04.2018 в 09:39.
Старый 10.04.2018, 12:12   #5  
Natali77 is offline
Natali77
Участник
 
39 / 10 (1) +
Регистрация: 05.09.2016
Цитата:
Сообщение от pitersky Посмотреть сообщение
Например, так:
В каждом датасурсе, поля в которых надо защищать, перекрываете метод active. Внутри метода определяете, сохранена ли запись (курсор должен иметь ненулевой RecId) и относится ли пользователь к нужной группе. Если оба условия выполнены - ставите allowEdit датасоурса в true.
Это если вкратце.

По-хорошему, я бы ещё в этот момент обрабатывал allowDelete.

P.S. Те же манипуляции можно сделать на validateWrite таблицы датасоурса, только там не allowEdit надо параметризировать, а возвращаемое значение.
Благодарю за ответ. А можно пример привести такого кода? Так как чайник совсем(
Старый 10.04.2018, 12:26   #6  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,514 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от Natali77 Посмотреть сообщение
Благодарю за ответ. А можно пример привести такого кода? Так как чайник совсем(
ну вот так можно на validateWrite таблицы MyTable
X++:
boolean isValidGroup = (UserInfoHelp::userInUserGroup(curUserId(), 'Admin' ) || UserInfoHelp::userInUserGroup(curUserId(), 'Бухгалтерия' ));
MyTable this_orig = this.orig();

if (this.RecId && !isValidGroup)
{
    if (this.FieldToCheck != this_orig.FieldToCheck)
    {
        ret = checkFailed("This field can be changed only by admins or accountants");
    }
}
Но вообще - если вы чайник, то изменения должен вносить знающий девелопер. Непонятно, почему это повесили на вас
__________________
С уважением,
Вячеслав
Старый 10.04.2018, 13:19   #7  
Natali77 is offline
Natali77
Участник
 
39 / 10 (1) +
Регистрация: 05.09.2016
Цитата:
Сообщение от pitersky Посмотреть сообщение
ну вот так можно на validateWrite таблицы MyTable
X++:
boolean isValidGroup = (UserInfoHelp::userInUserGroup(curUserId(), 'Admin' ) || UserInfoHelp::userInUserGroup(curUserId(), 'Бухгалтерия' ));
MyTable this_orig = this.orig();

if (this.RecId && !isValidGroup)
{
    if (this.FieldToCheck != this_orig.FieldToCheck)
    {
        ret = checkFailed("This field can be changed only by admins or accountants");
    }
}
Но вообще - если вы чайник, то изменения должен вносить знающий девелопер. Непонятно, почему это повесили на вас
Спасибо за ответ! Чайник учится )
Старый 10.04.2018, 13:32   #8  
Natali77 is offline
Natali77
Участник
 
39 / 10 (1) +
Регистрация: 05.09.2016
Цитата:
Сообщение от pitersky Посмотреть сообщение
Например, так:
В каждом датасурсе, поля в которых надо защищать, перекрываете метод active. Внутри метода определяете, сохранена ли запись (курсор должен иметь ненулевой RecId) и относится ли пользователь к нужной группе. Если оба условия выполнены - ставите allowEdit датасоурса в true.
Это если вкратце.

По-хорошему, я бы ещё в этот момент обрабатывал allowDelete.

P.S. Те же манипуляции можно сделать на validateWrite таблицы датасоурса, только там не allowEdit надо параметризировать, а возвращаемое значение.
По первому пункту - перекрытию метода active можно пример тоже?
Теги
поля на форме запрет редактирования

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В некоторых случаях не отображаются элементы дерева на форме Права групп пользователей McArrow DAX: Программирование 0 17.06.2013 18:30
Периодически пропадает доступ к Системе у удаленных пользователей andy_555 DAX: Администрирование 4 04.03.2009 15:02
Кто знает можно как нибудь открыть доступ к полю на форме если DataSource закрыт для AlexT1 DAX: Программирование 9 03.11.2005 00:18
Перемещение полей на форме Swetik DAX: Функционал 12 15.09.2004 19:29
доступ к свойствам полей DataSource andreynikolai DAX: Программирование 2 06.06.2002 16:55

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

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

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