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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.09.2010, 02:38   #1  
erudit is offline
erudit
Участник
 
36 / 52 (2) ++++
Регистрация: 19.03.2003
Адрес: Украина
Используя класс ExcelImportADO столкнулся со следущей проблемой - если Excel файл содержит более 65536 строк, то первый вызов функции excelImportADO.eof() возвращает TRUE - что НЕ ВЕРНО, т.к. ещё прохода по строкам не было и соотв. импорт заканчивается не начавшись.
Кто-нибудь сталкивался с подобной проблемой?

Заранее спасибо!
Старый 02.09.2010, 10:48   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от erudit Посмотреть сообщение
Используя класс ExcelImportADO столкнулся со следущей проблемой - если Excel файл содержит более 65536 строк, то первый вызов функции excelImportADO.eof() возвращает TRUE - что НЕ ВЕРНО, т.к. ещё прохода по строкам не было и соотв. импорт заканчивается не начавшись.
Кто-нибудь сталкивался с подобной проблемой?
У меня не воспроизвелось после отработки такого джоба:
X++:
#CCADO
static void Job333_gl00mieExcelImportADO(Args _args)
{
    ExcelImportADO doc = new ExcelImportADO(@'C:\Test_gl00mie.xlsx', #adOpenStatic);
    ;
    doc.openFile(false);
    while(!doc.eof())
    {
        print doc.getFieldValue(1,false);
        doc.moveNext();
    }
}
Всё замечательно отрабатывает. Файл C:\Test_gl00mie.xlsx содержит на первом листе слово Field1 в ячейке A1 и ниже от ячейки A2 до A70000 соответственно числа от 2 до 70 тыщ.

Ну и в Class Declaration класса надо заменить шаблон строки подключения на рекомендацию AndyD'а:
Цитата:
Сообщение от AndyD Посмотреть сообщение
X++:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + %1 + ";Extended Properties='Excel 12.0'"
А вы openFile не забыли у себя сделать? А то .eof() возвращает true и когда recordset = null.
За это сообщение автора поблагодарили: erudit (1).
Старый 02.09.2010, 18:19   #3  
erudit is offline
erudit
Участник
 
36 / 52 (2) ++++
Регистрация: 19.03.2003
Адрес: Украина
Спасибо огромное!
С меня причитается! Буду в Питере, обязательно свяжусь!
Заменил строку соединения и всё заработало как аптеке!
Ещё раз спасибо за скорую помощь!
Старый 04.10.2010, 16:53   #4  
Helm is offline
Helm
Участник
 
15 / 11 (1) +
Регистрация: 24.09.2009
Всем доброго времени суток.
Ax3 SP3
Обнаружился непонятный глюк:
Все файлы, что пока трогал, грузятся нормально (идёт загрузка из прайсов поставщиков цен во внутреннюю табличку).
Кроме одного. В нём столбец цены подгружается без сотых. Везде всегда формат столбца стоял "общий". Изменение формата на "число" не помогало.

Вот такой инфолог:
X++:
info(strFmt("%1",xlImport.getFieldValue(8,false)));
info(strFmt("%1",xlImport.getFieldValue(8,true)));
info(strFmt("%1",any2real(xlImport.getFieldValue(8,false))));
info(strFmt("%1",any2real(xlImport.getFieldValue(8,true))));
Выводит следующее:
X++:
6713,08
6713,08
6 713,00
6 713,00
Т.е. независимо от того, как грузить ячейку - строкой или числом - сначала идёт загрузка нормально. А и при any2real и копировании напрямую идёт неудача - переводится с потерей.
X++:
SalesDDP = xlImport.getFieldValue(8,false);
, SalesDDP типа SalesPrice.
Есть ли идеи у кого-нибудь?
Теги
ado, download, excel, импорт, полезное, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gl00mie: Read Excel table via ADO Blog bot DAX Blogs 2 09.04.2010 08:32
dynamicsusers: DL Tips And Tricks: ADO Database Reader (Jet way) - Excel Example Blog bot DAX Blogs 0 02.08.2007 03:50
casperkamal: Using ADO to read from Excel in Microsoft Dynamics Ax Blog bot DAX Blogs 2 14.05.2007 11:59

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

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

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