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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.11.2006, 11:22   #1  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
макрос DictField
Добрый день

Вопрос относительно макроса DictField

Код:
    #define.DBF_VISIBLE   (0x01)   //Visible
    #define.DBF_CREATE    (0x02)   //AllowEditOnCreate
    #define.DBF_CHANGE    (0x04)   //AllowEdit
    #define.DBF_STORE     (0x08)
    #define.DBF_REPORT    (0x10)
    #define.DBF_RELATIVE  (0x20)
    #define.DBF_RIGHT     (0x20)
    #define.DBF_SHADOW    (0x40)
    #define.DBF_MANDATORY (0x80)
в мануалах говорится, что он служит для проверки флагов свойств поля. Если у кого нибудь есть некие сакральные знания относительно этого, может поделитесь...

В частности меня интересует следующее: в классе SysRecordTemplate при переносе данных из шаблона в формируемую строку выпоняется следующая проверка:

Код:
valueSet  = conPeek(recordValues, i);
fieldId   = conPeek(valueSet, 1);
dictField = new SysDictField(common.tableId, fieldId);

if (dictField &&
bittest(#DBF_CREATE, dictField.flags()) &&
(allowdublicates || !dictField.isUnique())) // SYP-Modification HQ-879-412-8DD8 (SP1)
{ .....
}
так вот вопрос, значение флажка dictField.flags() определяется настройкой доступа в политике безопасни или чем то еще ??? Поле которое меня интересует это группа номенклатуры в шаблоне номенклатура.

ЗЫ и еще... может кто-то знает, в чем тайный смысл самого названия флажков DBF_VISIBLE то бишь, что в имине твоем... или это просто некие исторические корни????

Последний раз редактировалось simply2double; 24.11.2006 в 11:33.
Старый 24.11.2006, 11:35   #2  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
М.б. DataBaseFlags?
__________________
С уважением,
Олег.
Старый 24.11.2006, 11:38   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Так у поля же есть свойство Visible - т.е. видимо ли оно в интерфейсе или нет
Или вопрос про DBF_?
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 24.11.2006 в 11:46.
Старый 24.11.2006, 11:49   #4  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Смею предположить, что причина использования данного приема- оптимизация скорости. Т.к. судя по всему данная проверка должна осуществляться при отображении элементов формы, скорость выполнения становится критичной.
А DBF может означать что угодно, к примеру, DataBaseField
__________________
Isn't it nice when things just work?
Старый 24.11.2006, 11:55   #5  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от AndyD Посмотреть сообщение
Так у поля же есть свойство Visible - т.е. видимо ли оно в интерфейсе или нет
Или вопрос про DBF_?

да нет... вторая то часть имени флажка как раз и интуитивно понятна
Старый 24.11.2006, 11:59   #6  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от macklakov Посмотреть сообщение
Смею предположить, что причина использования данного приема- оптимизация скорости. Т.к. судя по всему данная проверка должна осуществляться при отображении элементов формы, скорость выполнения становится критичной.
А DBF может означать что угодно, к примеру, DataBaseField

Возможно... но в таком случае... откуда собирает класс свойства поля... это всего лишь опрос свойств в словаре данных или сюда еще и настройки политики безопасности примешиваються ( чтение, запись, полный доступ )
Старый 24.11.2006, 12:26   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
А зачем ему что-то собирать? Скорее всего так и хранится - в виде флагов в int'е
__________________
Axapta v.3.0 sp5 kr2
Старый 24.11.2006, 13:35   #8  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от AndyD Посмотреть сообщение
А зачем ему что-то собирать? Скорее всего так и хранится - в виде флагов в int'е
повторяю меня интересует... флажки эти отображают свойства поля... или еще и доступ настроеный в безопасности.. или это разные песни...
Старый 24.11.2006, 13:38   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Флаги - только свойства поля.
__________________
Axapta v.3.0 sp5 kr2
Старый 24.11.2006, 15:07   #10  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от AndyD Посмотреть сообщение
Флаги - только свойства поля.
тогда почему... выполняя одну и ту же операцию под разными логинами с разной степенью доступа значение флагов разное??? В частности флага DBF_CREATE


уже задумываюсь... а не взять ли бубен.....
Старый 24.11.2006, 15:19   #11  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от simply2double Посмотреть сообщение
уже задумываюсь... а не взять ли бубен.....
Ну раз до бубнов дошло, стандартный вопрос:
Оно тебе точно надо? Лежало себе столько лет и еще столько же пролежит
__________________
Isn't it nice when things just work?
Старый 24.11.2006, 15:26   #12  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну раз до бубнов дошло, стандартный вопрос:
Оно тебе точно надо? Лежало себе столько лет и еще столько же пролежит
нуууууу..... этот вопрос в свое время погубил джордано бруно )))))


точно... я вообще любознательность проявляю только в критических ситуациях
а тут зацепило... не понимаю я что происходит.. а когда я не понимаю.. то я этого боюсь
а если серьезно то проблема замечена... и зафиксирована... и ее надо понять и решить...
Старый 24.11.2006, 15:56   #13  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от simply2double Посмотреть сообщение
я вообще любознательность проявляю только в критических ситуациях
а тут зацепило... не понимаю я что происходит..
Ну если ради интереса, то зачем бубен? Нужно провести серию увлекательных экспериментов, чтобы разгадать еще одну загадку, загаданную разработчиками.
Давай, на выходных поэксперементируем, а на следующей неделе сверим результат?
__________________
Isn't it nice when things just work?
Старый 24.11.2006, 16:11   #14  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну если ради интереса, то зачем бубен? Нужно провести серию увлекательных экспериментов, чтобы разгадать еще одну загадку, загаданную разработчиками.
Давай, на выходных поэксперементируем, а на следующей неделе сверим результат?

в аксапте... перед любым серьезным делом... даже если оно увлекательное.. надо пару раз стукнуть в бубен... это как перекурить...

а насчет экспериментов, накатал маленький джоб, проверяющий флажок, разрешающий запись в поле группа товара

Код:
static void DBF_CREATE_TST(Args _args)
{
    #dictField
    InventTable     inventTable ;
    SysDictField dictField;
    ;
    dictField = new SysDictField(InventTable .tableId, FieldNum(InventTable , ItemGroupId));

    if ( bittest(#DBF_CREATE, dictField.flags()) ) info("YES");

}
так вот заходя под разными правами я получал либо либо разрешение писать в поле... либо отказ...

копаем глубже...
Старый 27.11.2006, 11:33   #15  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от simply2double Посмотреть сообщение
так вот заходя под разными правами я получал либо либо разрешение писать в поле... либо отказ...
Да, действительно, значения флажков зависят от прав конкретного пользователся.
__________________
Isn't it nice when things just work?
Старый 27.11.2006, 12:00   #16  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от macklakov Посмотреть сообщение
Да, действительно, значения флажков зависят от прав конкретного пользователся.

короче функция dictField.flags() возвращает доступность поля проверяя все условия... в том числе и настройки системы безопасности...

о сколько нам открытий чудных....
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проверка на передачу пустого параметра в макрос vey DAX: Программирование 22 11.04.2013 10:02
Макрос #define.RightBracket(')') DSPIC DAX: Программирование 3 08.08.2008 21:01
Макрос в strfmt() blokva DAX: Программирование 2 24.08.2007 10:31
Выполнить макрос Excel из x++ vasiliy DAX: Программирование 2 24.11.2006 17:57
Объект dictField не инициализирован DreamCreator DAX: Программирование 1 05.04.2005 14:36

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:12.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.