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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.12.2005, 15:53   #1  
whoami is offline
whoami
Участник
 
30 / 10 (1) +
Регистрация: 07.07.2005
Доступ к метке перечисляемого типа
Есть перечисляемый тип.
Мне необходимо вывести в отчете для значений перечисляемого две метки:
на русском и английском языках
как-нибудь можно указать аксапте что мне нужна метка на заданном мною языке?
Старый 16.12.2005, 16:12   #2  
Hezl is offline
Hezl
Участник
Аватар для Hezl
 
138 / 16 (1) ++
Регистрация: 21.04.2004
Адрес: Moscow, Russia
Что-нибудь вроде sysLabel::labelId2String(...)
Старый 16.12.2005, 16:34   #3  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Вам поможет в этом системный класс Label. При создании экземпляра в метод new передается код языка. Далее - label.ExtractString... Например:

Код:
static void SampleJob(Args _args)
{
str s1;
label l1 = new label("En-Us");
s1 = l1.extractString(literalstr("@sys60156"));
print s1;
pause;
}
Старый 16.12.2005, 17:03   #4  
whoami is offline
whoami
Участник
 
30 / 10 (1) +
Регистрация: 07.07.2005
thx a lot!
Старый 09.09.2008, 17:45   #5  
custtable is offline
custtable
Участник
Аватар для custtable
 
29 / 10 (1) +
Регистрация: 28.08.2006
Добрый день!

Скажите а можно каким-то образом узнать literalstr для конкретного значения перечисляемого типа. Скажем стоит задача вывести конкретное значение определенного enum по заданному запросу на определенном языке, скажем NL.

X++:
SysLabel::labelId2String(literalstr("@SYS101"), 'nl') ;
Только вот как получить из enum значения код метки загадка. Может кто сталкивался.

Заранее спасибо.
Старый 09.09.2008, 17:59   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я думаю, сначала приждеся получить treeNode а мпотпом как в \Classes\SysDictEnum\labelLabel
Старый 09.09.2008, 18:23   #7  
custtable is offline
custtable
Участник
Аватар для custtable
 
29 / 10 (1) +
Регистрация: 28.08.2006
Спасибо! То что нужно

X++:
syslabel::labelId2String2(findProperty(TreeNode::findNode(xRefNames::calcPath(xRefKind::Enum, 

    enumstr(Gender))+"\\"+ new Dictenum(enumnum(Gender)).VALUE2Symbol(Gender::Male)).AOTgetProperties(),

    #Propertylabel), 'nl')

Последний раз редактировалось custtable; 09.09.2008 в 18:31.
Старый 09.09.2008, 18:45   #8  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
А просто снять пропертю с узла? Зачем так запутанно то?
__________________
Axapta has seduced me deadly!
Старый 10.09.2008, 09:38   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А не проще ли язык интерфейса переключать?
X++:
infolog.language("En-us");
info(strfmt("%1", ABCModel::ContributionMargin));

infolog.language("Ru");
info(strfmt("%1", ABCModel::ContributionMargin));
__________________
Axapta v.3.0 sp5 kr2
Старый 10.09.2008, 10:46   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Через TreeNode что-то больно сложно получается. SysDictEnum содержит методы, которые возвращают код метки. Почему бы не воспользоваться ими?

value2LabelId почему-то не добавили, но есть value2Index и index2LabelId

Итого,
X++:
static void Job2(Args _args)
{
    SysDictEnum dictEnum = new SysDictEnum(enumNum(StatusReceipt));
    ;
    info(dictEnum.index2LabelId(dictEnum.value2Index(1)));
}
За это сообщение автора поблагодарили: gefr (1).
Старый 10.09.2008, 12:23   #11  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Да, вообще красивый способ.
__________________
Axapta has seduced me deadly!
Старый 11.09.2008, 16:24   #12  
custtable is offline
custtable
Участник
Аватар для custtable
 
29 / 10 (1) +
Регистрация: 28.08.2006
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Через TreeNode что-то больно сложно получается. SysDictEnum содержит методы, которые возвращают код метки. Почему бы не воспользоваться ими?

value2LabelId почему-то не добавили, но есть value2Index и index2LabelId
Да, действительно, красивее выглядит и более читабельней

Но вот только не смог найти метода index2LabelId() ни в 3-ке ни в 4-ке Может имелась ввиду последняя версия АХ?

еще раз всем спасибо за помощь
Старый 11.09.2008, 17:06   #13  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Да, действительно нет. В таком случае способ отпадает. Всё-равно прийдеццо возиться с AOT.

При чем удивительно, что им помешало сделать такой метод, учитывая, что helpLabelId метод существует. Да и в АOT напрямую существует как свойство значение именно LabelID, а не самого текстового значения Label. То есть действительно удивительно, что не предусмотрен метод более низкого уровня, возвращающий именно айдишник.
__________________
Axapta has seduced me deadly!

Последний раз редактировалось HorrR; 11.09.2008 в 17:24.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить из элемента enum-а код типа (enum-а)? Romb DAX: База знаний и проекты 12 27.06.2013 16:17
документооборот и доступ к файлам ivas DAX: Программирование 34 18.05.2012 11:00
Как дать доступ к Аксапте внешним пользователям? mazzy DAX: Администрирование 43 29.08.2008 15:46
Как получить имя типа расширенного типа velk DAX: Программирование 9 03.08.2006 14:17
метка значения перечисляемого типа whoami DAX: Программирование 6 19.12.2005 19:24

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

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

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