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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.05.2006, 13:55   #1  
PavelSR is offline
PavelSR
Участник
 
98 / 10 (1) +
Регистрация: 25.05.2006
? Перечисление полей таблицы
Можно ли по табличной переменной узнать количество полей в таблице и перебрать их?
Старый 25.05.2006, 13:58   #2  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
да, загляните в таблицу SqlDictionary, правда про временные там нет ничего
Старый 25.05.2006, 14:00   #3  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Код:
dictTable = new DictTable(myTableVariable.tableId);
for (i = 1; i <= dictTable.fieldCnt(); i++)
    info(new DictField(dictTable.fieldCnt2id(i)).name());
__________________
Андрей.
Старый 25.05.2006, 14:06   #4  
PavelSR is offline
PavelSR
Участник
 
98 / 10 (1) +
Регистрация: 25.05.2006
А можно по подробнее... у меня мало опыта... таблицы SqlDictionary в AOT я не нашел а в System Documentation не понятно как определить количество полей.
Старый 25.05.2006, 14:08   #5  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
Код:
static void MyMethod(CustTable  _custTable)
{
    DictTable      dictTable = new DictTable(_custTable.TableId);
    int            i;
    ;

    for(i = 1; i <= dictTable.fieldCnt(); i++)
    {
        info(strfmt(_custTable.(dictTable.fieldCnt2Id(i))));
    }
}
Старый 25.05.2006, 14:13   #6  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
находится здесь
\System Documentation\Tables\SqlDictionary,
можно делать выбоки объявив SqlDictionary как таблицу.
но наверное будет удобнее как предлагают Андрей и Gad
Старый 25.05.2006, 14:19   #7  
somebody is offline
somebody
Участник
 
128 / 30 (2) +++
Регистрация: 30.04.2003
Адрес: Москва
Мне надо было занести в массивы структуру таблицы. Сделал так (Аксапта 2.5):

X++:
    Dictionary                  dict        = new Dictionary();
    DictTable                   priceDt     = new DictTable(dict.tablename2id(tablestr(PriceDiscTable)));
    FieldId                     fieldId;
    int                         fieldCnt;                           // кол-во полей
    int                         fieldIds[];                         // массив идентификаторов полей
    str                         fieldNames[];                       // массив имён полей
    boolean                     nonSystemField[];                   // массив признаков "обычное поле?"

    // структура таблицы PriceDiscTable

    fieldCnt    = priceDt.fieldCnt();

    for (i = 1; i <= fieldCnt; i += 1)
    {
        fieldIds[i]         = priceDt.fieldCnt2Id(i);
        fieldNames[i]       = priceDt.fieldName(fieldIds[i]);

        nonSystemField[i]   = true;
        if (any2int(fieldIds[i]) >= 60000)       // "системное" поле
            nonSystemField[i]   = false;
    }
Ну и замените в этом коде Id таблицы на tableId от табл. переменной...

Последний раз редактировалось mazzy; 08.07.2014 в 10:52.
Старый 25.05.2006, 14:39   #8  
PavelSR is offline
PavelSR
Участник
 
98 / 10 (1) +
Регистрация: 25.05.2006
А как можно добраться до значения Label выбранного поля.
Старый 25.05.2006, 14:47   #9  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
Через DictField, который в конструкторе new DictField() принимает в качестве параметров id таблицы и поля
Старый 25.05.2006, 15:02   #10  
PavelSR is offline
PavelSR
Участник
 
98 / 10 (1) +
Регистрация: 25.05.2006
Благодарю за оказанную помощь... Вроде разобрался.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Лукап, отображающий список полей определённой таблицы Damn DAX: Программирование 7 17.09.2010 18:00
Как получить имена полей, которые есть у таблицы? 3oppo DAX: Программирование 2 22.12.2006 14:30
Свойство AllowEdit полей таблицы Lucky13 DAX: Программирование 4 29.07.2005 14:14
Изменение ID-ов полей таблицы somebody DAX: Программирование 5 02.02.2004 19:57
Объединить несколько полей таблицы в одном поле Grid-а на форме? storer DAX: Программирование 2 12.11.2003 14:08

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

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

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