|
|
#1 |
|
Участник
|
макрос 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)
{ .....
}ЗЫ и еще... может кто-то знает, в чем тайный смысл самого названия флажков DBF_VISIBLE то бишь, что в имине твоем... или это просто некие исторические корни???? Последний раз редактировалось simply2double; 24.11.2006 в 11:33. |
|
|
|
|
#2 |
|
Axapta
|
М.б. DataBaseFlags?
|
|
|
|
|
#3 |
|
Участник
|
Так у поля же есть свойство Visible - т.е. видимо ли оно в интерфейсе или нет
Или вопрос про DBF_?
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 24.11.2006 в 11:46. |
|
|
|
|
#4 |
|
NavAx
|
Смею предположить, что причина использования данного приема- оптимизация скорости. Т.к. судя по всему данная проверка должна осуществляться при отображении элементов формы, скорость выполнения становится критичной.
А DBF может означать что угодно, к примеру, DataBaseField
__________________
Isn't it nice when things just work? |
|
|
|
|
#5 |
|
Участник
|
|
|
|
|
|
#6 |
|
Участник
|
Цитата:
Возможно... но в таком случае... откуда собирает класс свойства поля... это всего лишь опрос свойств в словаре данных или сюда еще и настройки политики безопасности примешиваються ( чтение, запись, полный доступ ) |
|
|
|
|
#7 |
|
Участник
|
А зачем ему что-то собирать? Скорее всего так и хранится - в виде флагов в int'е
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
|
#8 |
|
Участник
|
|
|
|
|
|
#9 |
|
Участник
|
Флаги - только свойства поля.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
|
#10 |
|
Участник
|
|
|
|
|
|
#11 |
|
NavAx
|
Ну раз до бубнов дошло, стандартный вопрос:
Оно тебе точно надо? Лежало себе столько лет и еще столько же пролежит
__________________
Isn't it nice when things just work? |
|
|
|
|
#12 |
|
Участник
|
Цитата:
точно... я вообще любознательность проявляю только в критических ситуациях а тут зацепило... не понимаю я что происходит.. а когда я не понимаю.. то я этого боюсь а если серьезно то проблема замечена... и зафиксирована... и ее надо понять и решить... |
|
|
|
|
#13 |
|
NavAx
|
Цитата:
Нужно провести серию увлекательных экспериментов, чтобы разгадать еще одну загадку, загаданную разработчиками.Давай, на выходных поэксперементируем, а на следующей неделе сверим результат?
__________________
Isn't it nice when things just work? |
|
|
|
|
#14 |
|
Участник
|
Цитата:
в аксапте... перед любым серьезным делом... даже если оно увлекательное.. надо пару раз стукнуть в бубен... это как перекурить... а насчет экспериментов, накатал маленький джоб, проверяющий флажок, разрешающий запись в поле группа товара Код: 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");
}копаем глубже... |
|
|
|
|
#15 |
|
NavAx
|
Да, действительно, значения флажков зависят от прав конкретного пользователся.
__________________
Isn't it nice when things just work? |
|
|
|
|
#16 |
|
Участник
|
|
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Проверка на передачу пустого параметра в макрос | 22 | |||
| Макрос #define.RightBracket(')') | 3 | |||
| Макрос в strfmt() | 2 | |||
| Выполнить макрос Excel из x++ | 2 | |||
| Объект dictField не инициализирован | 1 | |||
|