|
![]() |
#1 |
MCTS
|
Сделал небольшое наблюдение.
При 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(); 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 только на нем. Последний раз редактировалось Eldar9x; 06.03.2009 в 10:58. |
|