Показать сообщение отдельно
Старый 10.06.2009, 11:09   #3  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от kornix Посмотреть сообщение

X++:
static void testExport(Args _args)
{
    XMLDataExport dataExport;
    EmplTable     emplTable;
    QueryBuildDataSource qbds;
    QueryRun      qr;
    Query         query;
    ;
    query = new query();
    qbds = query.addDataSource(tablenum(EmplTable));
    qbds.addRange(fieldnum(Empltable, EmplId)).value('10000');
 
    qr = new queryRun(query);
    dataExport = new XMLDataExport('');
    dataExport.doExport(qr);
 
 
}
В результате вываливается ошибка: "Неправильный тип аргумента функции"
Добрый день!

Ошибка вылетает видимо из-за того, что в таблице EmplTable есть поле типа 'массив' вещественных чисел (workingHours (EDT HRMworkingHours)), например, если взять табличку InventTable - то все ок, трассировки стека не будет.

Видимо не большая ошибка в данном классике есть, а именно в методе writeRecord вместо
X++:
// Array field. Traverse the elements
                for (arrayIndex = 1; arrayIndex <= fieldObject.arraySize(); arrayIndex++)
                {
                    result += fieldName + ' offset="' + int2str(arrayIndex) + '">'
                           +     global::XMLString(record.(fieldList.field(fieldNo)), fieldObject.baseType(), _indent + 8)
                           +  '</Table:Field>\n';
                }
нужно написать следующее :
X++:
// Array field. Traverse the elements
for (arrayIndex = 1; arrayIndex <= fieldObject.arraySize(); arrayIndex++)
{
result += fieldName + ' offset="' + int2str(arrayIndex) + '">'
//srf -->
//+ global::XMLString(record.(fieldList.field(fieldNo)), fieldObject.baseType(), _indent + 8)
+ global::XMLString(record.(fieldId2Ext(fieldList.field(fieldNo), arrayIndex)), fieldObject.baseType(), _indent + 8)
//srf <--
+ '</Table:Field>\n';
}
P.S. Данный класс выводит информацию в инфолог, поэтому, если нужно, чтобы вывод был в файл, то надо дорабатывать метод output этого же класса.

Последний раз редактировалось SRF; 10.06.2009 в 11:13.
За это сообщение автора поблагодарили: kornix (1).