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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2009, 09:27   #1  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
? Label поля таблицы по его FieldId
Уважаемые посетители форума!
Подскажите, пожалуйста, как можно получить Label поля таблицы, если известна таблица и FieldId поля.
__________________
AX 3.0, Build #9.3
Старый 27.10.2009, 09:30   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
X++:
SysDictField dictField = new SysDictField(MyTableId, MyFieldId);
str                lableF;
;

lableField = dictField.lable();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 27.10.2009 в 09:32. Причина: чуть поправил код
За это сообщение автора поблагодарили: chanchala (1).
Старый 27.10.2009, 09:30   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Как-то так:

X++:
        tableId = tablename2id(this.tableName(lines.TableName));
        dictField = new DictField(tableId,
                    fieldname2id(tableId, lines.FieldName));
        if(dictField)
            this.insertString(dictField.label(), label);
За это сообщение автора поблагодарили: chanchala (1).
Старый 27.10.2009, 09:32   #4  
AlexSD is offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Регистрация: 14.10.2003
Еще проще

X++:
fieldpname(tablenum(...), fieldnum(...));
За это сообщение автора поблагодарили: lev (1), konopello (1), chanchala (1).
Старый 27.10.2009, 09:34   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
вот более конкретный пример:
X++:
SysDictField    dictField = new SysDictField(tableNum(InventTable), fieldNum(InventTable, ItemId));
    str             lableF;
    ;

    lableF = dictField.label();

    info(lableF);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 27.10.2009, 09:34   #6  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Так, господа. Несколько минут, пожалуйста. Сейчас я все это попробую :-)
__________________
AX 3.0, Build #9.3
Старый 27.10.2009, 09:47   #7  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Цитата:
Сообщение от lev Посмотреть сообщение
вот более конкретный пример:
X++:
SysDictField    dictField = new SysDictField(tableNum(InventTable), fieldNum(InventTable, ItemId));
    str             lableF;
    ;

    lableF = dictField.label();

    info(lableF);
Спасибо, Lev. Это то, что мне нужно.
__________________
AX 3.0, Build #9.3
Старый 27.10.2009, 09:51   #8  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Цитата:
Сообщение от AlexSD Посмотреть сообщение
Еще проще

X++:
fieldpname(tablenum(...), fieldnum(...));
Да, с этого я начала. Только осталось непонятно что мне подвавть на вход fieldNum, eсли у меня есть только fieldId.
__________________
AX 3.0, Build #9.3
Старый 27.10.2009, 09:59   #9  
online
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,690 / 405 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от chanchala Посмотреть сообщение
Да, с этого я начала. Только осталось непонятно что мне подвавть на вход fieldNum, eсли у меня есть только fieldId.
вместо fieldNum поставить fieldId, т.к. fieldNum возвращает fieldId
Старый 27.10.2009, 10:02   #10  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от lev Посмотреть сообщение
вот более конкретный пример:
X++:
SysDictField    dictField = new SysDictField(tableNum(InventTable), fieldNum(InventTable, ItemId));
    str             lableF;
    ;

    lableF = dictField.label();

    info(lableF);
Да просто в один флакон всё сразу
X++:
static void Job223(Args _args)
{;
    info(new SysDictField(tableNum(InventTable), fieldNum(InventTable, ItemId)).label());
}
P.S. Ну, и про расширенную версию для Dimension не забывать:
X++:
static void Job223_1(Args _args)
{;
    info(new SysDictField(tableNum(InventTable), fieldId2Ext(fieldNum(InventTable, Dimension),2)).label());
}

Последний раз редактировалось Gustav; 27.10.2009 в 10:14.
Старый 27.10.2009, 10:12   #11  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Gustav Посмотреть сообщение
Да просто в один флакон всё сразу
X++:
static void Job223(Args _args)
{;
    info(new SysDictField(tableNum(InventTable), fieldNum(InventTable, ItemId)).label());
}
да я развернул для наглядности
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: Gustav (1).
Старый 27.10.2009, 10:12   #12  
chanchala is offline
chanchala
Участник
Аватар для chanchala
 
113 / 10 (1) +
Регистрация: 14.05.2008
Адрес: СПб
Цитата:
Сообщение от ice Посмотреть сообщение
вместо fieldNum поставить fieldId, т.к. fieldNum возвращает fieldId
Да, так хорошо
__________________
AX 3.0, Build #9.3
Старый 27.10.2009, 10:32   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Если известен fieldId, то есть функция fieldid2pname, которой передаются tableid и fieldId. Эта функция из System Documentation
Если нужно получить label конкретного поля - то fieldpname(InventTable, ItemId) (к примеру)

Или так как Вам описали.
__________________
Возможно сделать все. Вопрос времени
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ограничения на таблицы и поля таблиц akvi DAX: Администрирование 3 28.04.2007 15:03
Можно ли получить recordset, используя ID таблицы и ID поля 111andrei DAX: Программирование 2 20.03.2007 12:49
Как зная название поля таблицы узнать текст, который прописан в Label? Hidden DAX: Функционал 1 03.06.2005 13:52
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00

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

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

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