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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2009, 17:54   #1  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Вот такой вариант у меня работает на 4.0 как положено:

X++:
    dialogFieldValue = dialog.addField(dictField.combinedTypeId(), 
                                                      dictField.label(), 
                                                      "Укажите в поле нужное значение");

Последний раз редактировалось AlGol; 13.10.2009 в 17:58.
За это сообщение автора поблагодарили: ZVV (2), DTD (1), Gustav (2).
Старый 13.10.2009, 18:07   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от AlGol Посмотреть сообщение
Вот такой вариант у меня работает на 4.0 как положено:

X++:
    dialogFieldValue = dialog.addField(dictField.combinedTypeId(), 
                                                      dictField.label(), 
                                                      "Укажите в поле нужное значение");
О точно, есть такой метод (combinedTypeId), только он в SysDictField...
Заодно и нашлось как преобразовать в обратную сторону:
X++:
    type = df.typeId() << 16 | df.type();


Спасибо!
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: DTD (1), Gustav (2).
Старый 13.10.2009, 18:42   #3  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Цитата:
Сообщение от ZVV Посмотреть сообщение
О точно, есть такой метод (combinedTypeId), только он в SysDictField...
Точно, сразу и не заметил, что стоит DictField.
В книге Inside Dynamics была рекомендация типа - "пользуйтес классами Sys... там много что полезного есть".
Старый 13.10.2009, 18:53   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от ZVV Посмотреть сообщение
X++:
    type = df.typeId() << 16 | df.type();
Круто! Сами сотворили или видели где?

P.S. Однако торможу к вечеру. Всё! Допёр, где это - в \Classes\SysDictField\combinedTypeId

Последний раз редактировалось Gustav; 13.10.2009 в 18:58.
Старый 13.10.2009, 19:43   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Gustav Посмотреть сообщение
Круто! Сами сотворили или видели где?
Global::fieldExt2Id
Global::fieldExt2Idx
Global::fieldId2Ext
Global::extendedTypeId2Type
__________________
полезное на axForum, github, vk, coub.
Старый 13.10.2009, 18:11   #6  
DTD is offline
DTD
Участник
 
183 / 18 (1) ++
Регистрация: 09.08.2005
Цитата:
Сообщение от AlGol Посмотреть сообщение
Вот такой вариант у меня работает на 4.0 как положено:

X++:
    dialogFieldValue = dialog.addField(dictField.combinedTypeId(), 
                                                      dictField.label(), 
                                                      "Укажите в поле нужное значение");
Отлично ! Все работает.

* только с dictField от SysDictField
__________________
_databaseTransDelete ... bl@$ !
За это сообщение автора поблагодарили: Gustav (2).
Старый 13.10.2009, 18:43   #7  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Мда, без бутылки с этими extendedTypeId и смещениями "туда-сюда" точно не разберешься... всегда с ними впадаю в ступор... Спасибо за новые знания!

Добавлю до кучи свой, даже не "пятачок", а свою "копеечку", выстраданную методом подбора. Я не очень понял, как оно получилось, но тоже работает
X++:
static void Job215(Args _args)
{
    Dialog dialog = new Dialog();
    DictField df;
    DialogField dialogfield;
    ;

    // расскоментируйте по очереди следующие строки
    df = new DictField(tableNum(RAssetTrans), fieldNum(RAssetTrans, TransDate ));
    //df = new DictField(tableNum(LedgerTrans), fieldNum(LedgerTrans, AccountNum));
    //df = new DictField(tableNum(RAssetTable), fieldNum(RAssetTable, AccountNum));
    //df = new DictField(tableNum(InventTable), fieldNum(InventTable, ItemId    ));
    //df = new DictField(tableNum(EmplTable  ), fieldNum(EmplTable  , EmplId    ));

    dialogfield = dialog.addField( df.typeId() << 16 + 11, df.name(), df.help());

    dialog.run();
}
Старый 13.10.2009, 22:04   #8  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Gustav Посмотреть сообщение
Добавлю до кучи свой, даже не "пятачок", а свою "копеечку", выстраданную методом подбора. Я не очень понял, как оно получилось, но тоже работает
X++:
    dialogfield = dialog.addField( df.typeId() << 16 + 11, df.name(), df.help());
Ну собственно Types::UserType - это и есть 11... Так оно и получилось.
__________________
Zhirenkov Vitaly
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Невозможно выполнить команду языка определения данных в () iHomer13 DAX: Программирование 8 18.07.2008 10:56
Стандартный импорт данных. Обновление sparur DAX: Функционал 0 24.03.2008 19:07
Распределенная база данных на основе View Владимир Максимов DAX: Программирование 27 04.09.2007 13:21
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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