AX 2009.Kernel Version 5.0.1600.2967; Application VErsion 5.0.1500.6491
Импортирую из Excel через .Net.
Сначала идет блок данных, в котором артикул состоит только из цифр. Затем артикул - буквенно-символьно-цифровой. Формат ячеек на всей колонке - Общий. Однако, выравнивание (автоматом Экселя)для числового - справа по ячейке. а выравнивание смешанного-строкового - слева.См картинку.
http://www.axforum.info/forums/attac...1&d=1439536033
Как ведет себя Axapta.
числовые артикулы считывает на ОК.
Строковые, если они идут так, как в скриншоте - не понимает. (пустая строка)
Что самое интересное, если загружать отдельно строковые(буквенно-символьно-цифровой) - все читает - все понимает.
Значит дело в коде. Привожу код.
X++:
container importNext()
{
container res;
CLRObject value;
int row;
int column;
anytype element;
str string;
;
dataRow = dataRowCollection.get_Item(nCountLines);
array = new System.Object[qtyColumn]();
// Необходимо в каждой итерации заново инициализировать массив - Убрать ошибку с невозможностью считать данные другого типа (после числовых артикулов не понимает строковые) - Поэтому заново инициализировал массив. - не помогло
array = dataRow.get_ItemArray();
for (counter = 0; counter < qtyColumn; counter++)
{
value = dataRow.get_Item(counter);
string = value.ToString();
if(string)
{
Element = valueNet2Anytype(value);
if(Element)
{
res += Element;
}
else
{
res += string;
}
}
}
nCountLines++;
return res;
}
Наc в общем интересует код до присвоения значения string. ( Когда на вход идет артикул типа: FBEB0010-100010 - string = пустая строка)
Если загружаем только артикулы буквенно-символьно-цифрового формата (типа FBEB0010-100010) - все разбирает.
Как вы наверно поняли, эта функция читает одну строку ячеек Excel. Вызывается в цикле извне. (Пробовал как через массив, так и через dataRow - не помогло).
У кого-нибудь есть идеи?