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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2008, 18:41   #1  
DmitryS is offline
DmitryS
Участник
 
37 / 13 (1) ++
Регистрация: 01.08.2006
Адрес: Москва
Struct
Добрый день!
static void Job55(Args _args)
{
container packedStruct;

Struct s = new Struct();
Struct s1 = new Struct();
Struct s2 = new Struct();
;
s.add("name", "Jane Dow");
s.add("age" , 34);

s1.add("struct1", s);

packedStruct = s1.pack();

s2 = Struct::create(packedStruct);

print s2.toString();
pause;
}
В 3.0 работает в 4.0 sp2 не работает, вываливается ошибка на строке :
s2 = Struct::create(packedStruct);
Требуется возможность восстановления из контейнера структуры структур в 4.0.
Старый 01.04.2008, 19:19   #2  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Ну видимо распаковка в структуру структур в 4ке не поддерживаеццо. Вопрос вот в чём: зачем Вам это понадобилось? Можно попробовать паковать отдельные структуры в отдельные контейнеры, потом склеить эти контейнеры в один, а потом поустанавливать распакованные структуры в результирующую структуру как value
__________________
Axapta has seduced me deadly!
Старый 01.04.2008, 19:35   #3  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
А вообще можете сделать что-то типа:
X++:
struct2.add("struct1",struct1.tostring());
а потом при распаковке получать результат таким образом:

struct3=Struct::create(packedstruct2);
strStruct1 = struct3.value(struct3.fieldname(0)); // str strStruct1

Вот, ну а из этой строки возобновить исходную структуру или просто выцепить данные - не сложно.

Хотя всё-равно геморный случай))).
__________________
Axapta has seduced me deadly!

Последний раз редактировалось HorrR; 01.04.2008 в 20:08.
Старый 02.04.2008, 09:51   #4  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
Как вариант:
X++:
static void Job55(Args _args)
{
    container packedStruct;

    Struct s = new Struct();
    Struct s1 = new Struct();
    Struct s2;
    Struct s3;
;
    s.add("name", "Jane Dow");
    s.add("age" , 34);

    s1.add("struct1", s.pack());

    packedStruct = s1.pack();

    s2 = Struct::create(packedStruct);
    s3 = Struct::create(s2.valueIndex(1));

    print s3.toString();
    pause;
}
Старый 02.04.2008, 11:22   #5  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Таки да, просто паковать структуру при помещении её в структуру, я вчера так делал, вылетал эрор, а теперь глянул на код - я просто к нулевой проперти структуры пытался достучаться по запарке)
__________________
Axapta has seduced me deadly!
Теги
ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Диалог выбора каталога sparur DAX: Программирование 2 06.08.2008 10:54
dax-dilettante: 15. System Classes \ The Collection Classes Blog bot DAX Blogs 0 26.09.2007 23:51
Размер памяти, занимаемой объектом SolNik DAX: Программирование 16 29.11.2005 18:12
Как получить размер окна и клиентской области? gudzon DAX: Программирование 15 15.09.2005 15:15
обертка к WinAPI PrintDlg simply2double DAX: Функционал 12 30.05.2005 17:30
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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