27.02.2013, 15:07 | #1 |
Участник
|
Вывод на печать Base Emum на выбранном языке
Нужен вывод (в моем случае в эксель) поля, содержащего элемент Base Enum.
Реализуется это достаточно просто: X++: excel.insertValue('D2', strfmt("%1",fJour.CorrectionReason)); excel.insertValue('E2', strfmt("%1",enum2str(fJour.CorrectionReason))); НО: нужен вывод на языке, отличном от языка интрефейса, т.е. не на русском, а на украинском. Встречался подобный вариант, но в данном случае, не вижу как его можно применить: X++: strfmt(SysLabel::labelId2String(literalstr("@SYS24160"), languageId), element.page()); |
|
27.02.2013, 15:14 | #2 |
Участник
|
Через DictEnum?
|
|
27.02.2013, 15:58 | #3 |
Программатор
|
X++: LanguageId languageId = infolog.language();
;
infolog.language('en-us');
infolog.language(languageId); |
|
|
За это сообщение автора поблагодарили: gl00mie (2), alicedr (1). |
27.02.2013, 17:31 | #4 |
Участник
|
|
|
27.02.2013, 17:32 | #5 |
Участник
|
|
|
27.02.2013, 17:42 | #6 |
Программатор
|
|
|
27.02.2013, 17:51 | #7 |
Участник
|
|
|
27.02.2013, 18:48 | #8 |
Участник
|
TO Sada:
А ведь действительно! Спасибо! |
|
27.02.2013, 18:52 | #9 |
Участник
|
|
|
28.02.2013, 12:17 | #10 |
Участник
|
X++: LanguageId languageId = infolog.language();//т.е. "ru" ; infolog.language('uk'); excel.insertValue('E2', strfmt("%1",enum2str(fJour.CorrectionReason))); //а по идее можно и без enum2str infolog.language(languageId);//вернули назад на "ru" |
|
28.02.2013, 12:58 | #11 |
Участник
|
Цитата:
Моя идея была в том чтобы вытащить код метки из енума и пропустить его через SysLabel::labelId2String Метку элемента энума можно получить с помощью метода DictEnum.index2LabelId() |
|
|
За это сообщение автора поблагодарили: alicedr (1). |
28.02.2013, 14:42 | #12 |
Участник
|
Цитата:
Метод Кускова выдает правильно. Для начинающих (типа меня) перевожу на доступный язык: X++: DictEnum enum = new DictEnum(enumNum(CorrectionReasonBaseEnum)); ; s = SysLabel::labelId2String(Enum.index2LabelId(fJour.CorrectionReason), CompanyInfo::find().LanguageId); excel.insertValue('D2', s); |
|