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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.08.2015, 10:33   #1  
Loengrinchik is offline
Loengrinchik
Участник
 
9 / 10 (1) +
Регистрация: 02.11.2014
Глюк(?) при импорте в Excel через .Net
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 - не помогло).

У кого-нибудь есть идеи?
Изображения
 

Последний раз редактировалось Loengrinchik; 14.08.2015 в 10:36.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Загрузка Excel через OXML (конвертация типов данных) ackid DAX: Программирование 7 29.04.2015 15:09
Выбор столбцов при импорте\экспорте Excel add-in user_ax DAX: Программирование 19 12.11.2014 14:23
Обработка DBF через .net someOne DAX: База знаний и проекты 13 27.09.2012 15:30
Я стараюсь отчеты с расшифровкой делать... через группировку в Excel... OLAP... комбинацией OLAP + SSRS. mazzy DAX: Программирование 31 10.04.2010 12:20
Вложение файлов через метод .NET Business Connector (DocuRef, DocuValue) kornix DAX: Программирование 6 18.09.2009 10:36

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

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

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