Сделал небольшое наблюдение.
При swapQty = 10000, код
X++:
IXMLExcelReport report = new CXMLExcelReportEx();
;
for (i = 1; i <= 10970; i++)
{
con = connull();
for (j = 1; j <= 213; j++)
{
con += "Некая строка для вывода";
}
con += i;
report.send(con);
}
report.show();
валится в момент передачи данных в excel (метод swapBuf)
this.range(curRow,1,curRow+curLines-1,xmlRowBuilder.cols()).value(#xlRangeValueXMLSpreadsheet, xmlRowBuilder.buf());
При этом длина строки buf составила 145705719, что, если я не ошибаюсь, сотсавляет примерно 145 MB !!!
Уменьшение swapQty до 5000 распечатало отчет нормально. Но даже в этом случае на вызов метода range.value ушло несколько секунд.
Есть подозрение, что передача большого объема данных в excel чревато нехорошими последствиями. Буду проверять в 4ке
ps/ знакомая ошибка, кстати
Обратная разработка в AX4
psps/ базовый класс оставил со swapQty 1000. На будущее, если строите отчет на основе этих классов, не берите в качестве движка базовый (сам так делал). Создавайте на его основе наследника, и уже его используйте для генерации отчета. Тогда в случае разрастания какого-нибудь отчета в колонках, достаточно будет перегрузить swapQty только на нем.