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