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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.07.2009, 08:41   #10  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от Logger Посмотреть сообщение
... Есть какой нибудь нормальный способ ?
Наиболее логичным способом помещения record в контейнер, как мне кажется является вариант, предложенный DSPIC, использование функций
container buf2Con(Common common) и static void con2Buf(container c, Common common), по всей видимости они для этого и предназначены

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Есть 2 отличные функции у класса Global:
container buf2Con(Common common)
static void con2Buf(container c, Common common)
...

X++:
static void dspic(Args _args)
{
    CustTable custTable;
    container conCustTable;
    ;
 
    select firstonly custTable;
 
    conCustTable = buf2con(custTable);
 
    changecompany ("DAT")
    {
        con2buf(conCustTable, custTable);
 
        info (strfmt("%1", custTable.dataAreaId));
    }
}
Однако стоить помнить, что функция Global \ container buf2Con(Common common) в версиях AX 3.0(возможно только в некоторых, проверял на AX 3.0 SP 2, AX 3.0 SP 3 CU 1) не работает(выпадает эксепшен), если у табличных переменных есть поля-массивы(т.е. выше описанный job работать не будет )

Также в случае использования одной табличной переменной и функции xRecord.company(...) можно получить реальную компанию(однако, если в changeCompany("dat") вместо CustTable, использовать CustTable2, то в обоих случаях будет выведено "dat")

X++:
static void srf_test(Args _args)
{
    CustTable   custTable;
    Container   conCustTable;
    ;
 
    select firstOnly custTable;
 
    conCustTable = [custTable];
 
    changecompany("dat")
    {
        custTable.clear();
        custTable.data(conpeek(conCustTable, 1));
 
        info(custTable.dataAreaId);
        info(custTable.company());
    }
}
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Logger (2).
Теги
container, dataarea, компания

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dataareaid conpeek Logger DAX: Программирование 5 02.02.2009 12:11
Строки временной таблицы с разными DataAreaId PavelSR DAX: Программирование 16 26.03.2008 10:32
Dave: Creating 'Permanent' Indexes on DataAreaId in Dynamics AX Blog bot DAX Blogs 0 29.02.2008 05:37
Inside Dynamics AX 4.0: Common Search Blog bot DAX Blogs 0 29.10.2007 10:50
Самопроизвольная смена компании (DataAreaId) у табличной переменной gl00mie DAX: Программирование 14 10.04.2006 12:18

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

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

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