16.12.2005, 15:53 | #1 |
Участник
|
Доступ к метке перечисляемого типа
Есть перечисляемый тип.
Мне необходимо вывести в отчете для значений перечисляемого две метки: на русском и английском языках как-нибудь можно указать аксапте что мне нужна метка на заданном мною языке? |
|
16.12.2005, 16:12 | #2 |
Участник
|
Что-нибудь вроде sysLabel::labelId2String(...)
|
|
16.12.2005, 16:34 | #3 |
Microsoft Dynamics
|
Вам поможет в этом системный класс 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 |
Участник
|
thx a lot!
|
|
09.09.2008, 17:45 | #5 |
Участник
|
Добрый день!
Скажите а можно каким-то образом узнать literalstr для конкретного значения перечисляемого типа. Скажем стоит задача вывести конкретное значение определенного enum по заданному запросу на определенном языке, скажем NL. X++: SysLabel::labelId2String(literalstr("@SYS101"), 'nl') ; Заранее спасибо. |
|
09.09.2008, 17:59 | #6 |
Участник
|
Я думаю, сначала приждеся получить treeNode а мпотпом как в \Classes\SysDictEnum\labelLabel
|
|
09.09.2008, 18:23 | #7 |
Участник
|
Спасибо! То что нужно
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 |
Участник
|
А просто снять пропертю с узла? Зачем так запутанно то?
__________________
Axapta has seduced me deadly! |
|
10.09.2008, 09:38 | #9 |
Участник
|
А не проще ли язык интерфейса переключать?
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 |
Участник
|
Через 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 |
Участник
|
Да, вообще красивый способ.
__________________
Axapta has seduced me deadly! |
|
11.09.2008, 16:24 | #12 |
Участник
|
Цитата:
Но вот только не смог найти метода index2LabelId() ни в 3-ке ни в 4-ке Может имелась ввиду последняя версия АХ? еще раз всем спасибо за помощь |
|
11.09.2008, 17:06 | #13 |
Участник
|
Да, действительно нет. В таком случае способ отпадает. Всё-равно прийдеццо возиться с AOT.
При чем удивительно, что им помешало сделать такой метод, учитывая, что helpLabelId метод существует. Да и в АOT напрямую существует как свойство значение именно LabelID, а не самого текстового значения Label. То есть действительно удивительно, что не предусмотрен метод более низкого уровня, возвращающий именно айдишник.
__________________
Axapta has seduced me deadly! Последний раз редактировалось HorrR; 11.09.2008 в 17:24. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|