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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.07.2009, 19:31   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,662 / 1168 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от tolstjak
С комментариями все работает, а если убрать комментарии со строк

// fld = flds.Item('Zakaz' ); fld.Value(inventTrans.TransRefId );
// fld = flds.Item('Voucher' ); fld.Value(inventTrans.Voucher );

выдается ошибка: Вариантный тип, который используется методом СОМ - объекта, не поддерживается.

В чем может быть засада??

Заранее благодарен.

P.S. Ах 30 SP1
office 2003 SP3
Поля с правым выравниванием.

Хотя, вообще-то, в COM-объекты крайне не желательно передавать данные "как есть" (за исключением целочисленных). Лучше "оборачивать" их в ComVariant. В данном случае примерно так:

X++:
   ComVariant _comVariant;
    ;

    // и добавляем записи (выбранные поля) в Recordset в оперативной памяти
    rstAxa.AddNew();
    fld = flds.Item('Zakaz' );
    _comVariant = new ComVariant();
    _comVariant.bStr(inventTrans.TransRefId);
    fld.Value(_comVariant);

    fld = flds.Item('Voucher' ); 
    _comVariant.bStr(inventTrans.Voucher);
    fld.Value(_comVariant);
За это сообщение автора поблагодарили: tolstjak (1).
Старый 01.07.2009, 21:27   #2  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Поля с правым выравниванием.

Хотя, вообще-то, в COM-объекты крайне не желательно передавать данные "как есть" (за исключением целочисленных). Лучше "оборачивать" их в ComVariant. В данном случае примерно так:

X++:
   ComVariant _comVariant;
    ;

    // и добавляем записи (выбранные поля) в Recordset в оперативной памяти
    rstAxa.AddNew();
    fld = flds.Item('Zakaz' );
    _comVariant = new ComVariant();
    _comVariant.bStr(inventTrans.TransRefId);
    fld.Value(_comVariant);

    fld = flds.Item('Voucher' ); 
    _comVariant.bStr(inventTrans.Voucher);
    fld.Value(_comVariant);
Все получилось. Большое спасибо.
__________________
Александр
Теги
ado, excel, экспорт

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47
"Такая строка уже сущ." при переносе из Excel! Zelenhof DAX: Программирование 2 13.01.2003 13:41

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:17.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.