Метод 'value' в COM-объекте класса 'Range' возвратил код ошибки 0x800A03EC (<unknown>), что означает: <unknown>. AX 2012
Я импортирую из листа Excel в AX. Итак, процесс: просмотрите записи из Excel, добавьте их во временную таблицу и заполните в сетке. Это процесс происходит. Когда я использую меньше записей, например: 1400 записей, его импорт в сетку без проблем. Когда я импортирую 66000 записей, он выдает эту ошибку выше. Может кто-нибудь предложить, что я должен сделать, чтобы я мог импортировать 60000 записей одновременно? Я попытался перезапустить AX, создать новый лист Excel, который предлагается онлайн..... Ничего не помогло.
1 ответ
Да, при разработке любого импорта Excel возникла эта проблема, когда много строк. Если есть несколько рядов, это работает отлично.
В этом случае всегда изменяйте импорт Excel для импорта CSV. Код для импорта CSV-файла никогда не подведет и отлично работает.
Здесь я оставляю пример для импорта файла CSV с 3 строками.
Код:
static void Stack(Args _args)
{
AsciiIo asciiIo;
container con;
FileIoPermission perm;
boolean _CortarProceso;
IO_Status aa;
str filename;
str _row1, _row2, _row3;
Dialog dialog;
DialogField dialogFileName;
;
dialog = new Dialog("Select CSV File");
dialogFileName = dialog.addField(ExtendedTypeStr("FilenameOpen"),"Path File:");
if (dialog.run())
{
filename = dialogFileName.value();
}
if (!filename)
{
return;
}
perm = new FileIoPermission(filename, "R");
perm.assert();
asciiIo = new AsciiIo(filename, "R");
asciiIo.inFieldDelimiter(";");
if (asciiIo != null)
{
con = asciiIo.read();
while((asciiIo.status() == IO_Status::Ok) && (!_CortarProceso)){
_Row1 = conPeek(con, 1); //Row1
_Row2 = conPeek(con, 2); //Row2
_Row3 = conPeek(con, 3); //Row3
if(_row1 != ""){
//Your Code...
//Your Code...
//Your Code...
//Your Code...
//Your Code...
}else{
_CortarProceso = true;
}
con = asciiIo.read();
}
}
info("Process End");
}