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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.02.2013, 15:07   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Вывод на печать 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  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Через DictEnum?
Старый 27.02.2013, 15:58   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
X++:
    LanguageId          languageId = infolog.language();

    ;
    infolog.language('en-us');
       
    infolog.language(languageId);
За это сообщение автора поблагодарили: gl00mie (2), alicedr (1).
Старый 27.02.2013, 17:31   #4  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от Sada Посмотреть сообщение
X++:
    LanguageId          languageId = infolog.language();

    ;
    infolog.language('en-us');
       
    infolog.language(languageId);
Хм.. полезная штука, не знала о такой.
Только мне в эксель надо, а не в инфолог... Перенаправить как-то вывод инфолога в переменную? Тоже не знаю как...
Старый 27.02.2013, 17:32   #5  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Через DictEnum?
Как?
Старый 27.02.2013, 17:42   #6  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от alicedr Посмотреть сообщение
Хм.. полезная штука, не знала о такой.
Только мне в эксель надо, а не в инфолог... Перенаправить как-то вывод инфолога в переменную? Тоже не знаю как...
это не в инфолог вывод, это меняется язык на нужный
Старый 27.02.2013, 17:51   #7  
Dzha is offline
Dzha
Участник
 
8 / 12 (1) ++
Регистрация: 11.02.2011
Цитата:
Сообщение от alicedr Посмотреть сообщение
Как?
X++:
    DictEnum    enum = new DictEnum(enumNum(BaseEnum1));
    ;
    label = enum.value2Label(0);
Соответственно перед этим необходимо сменить язык на украинский. В поле Lable элемента Enum'а должен быть указан код метки.
Старый 27.02.2013, 18:48   #8  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
TO Sada:
А ведь действительно! Спасибо!
Старый 27.02.2013, 18:52   #9  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от alicedr Посмотреть сообщение
TO Sada:
А ведь действительно! Спасибо!
Как вы использовали её, поделитесь, пожалуйста. Пригодится.
Старый 28.02.2013, 12:17   #10  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от user_ax Посмотреть сообщение
Как вы использовали её, поделитесь, пожалуйста. Пригодится.
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  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Dzha Посмотреть сообщение
X++:
    DictEnum    enum = new DictEnum(enumNum(BaseEnum1));
    ;
    label = enum.value2Label(0);
Соответственно перед этим необходимо сменить язык на украинский. В поле Lable элемента Enum'а должен быть указан код метки.
Не, тогда нет никакого преимущества в использовании DictEnum, если всё равно менять язык.

Моя идея была в том чтобы вытащить код метки из енума и пропустить его через SysLabel::labelId2String
Цитата:
Сообщение от alicedr Посмотреть сообщение
Встречался подобный вариант, но в данном случае, не вижу как его можно применить:
X++:
strfmt(SysLabel::labelId2String(literalstr("@SYS24160"), languageId), element.page());
Как это сделать?
Метку элемента энума можно получить с помощью метода DictEnum.index2LabelId()
За это сообщение автора поблагодарили: alicedr (1).
Старый 28.02.2013, 14:42   #12  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Моя идея была в том чтобы вытащить код метки из енума и пропустить его через SysLabel::labelId2String

Метку элемента энума можно получить с помощью метода DictEnum.index2LabelId()
Этот метод работает лучше. Первый вариант (см.выше) отлично выдает значения русского и английского языка, но свежедобавленный украинский почему-то не ловит. (Хотя, может я с кодом языка намухлевала)
Метод Кускова выдает правильно.
Для начинающих (типа меня) перевожу на доступный язык:
X++:
    DictEnum            enum = new DictEnum(enumNum(CorrectionReasonBaseEnum));
    ;    
    s = SysLabel::labelId2String(Enum.index2LabelId(fJour.CorrectionReason), CompanyInfo::find().LanguageId);
    excel.insertValue('D2', s);
Теги
baseenum, enum2str, languageid, вывод, язык

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptacorner: Model, Model Stores and Base Line Data base in ax 2012 Blog bot DAX Blogs 0 10.01.2013 13:11
Дизаин, вывод на печать CRASH_505 DAX: Программирование 8 17.09.2008 10:57
axStart: Using base enums in your .net connector Blog bot DAX Blogs 0 30.07.2008 00:05
Печать документа на иностранном языке kosmipt DAX: Функционал 3 11.04.2005 18:54
Превью и вывод на печать YVAS DAX: Программирование 1 22.09.2003 13:14

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

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

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