19.05.2004, 07:58 | #1 |
Участник
|
Сравнение быстродействия Выгрузки в Excell и стандартных отчетов
Вопрос о времени выгрузки данных в Excell. Предположим отчет по 15000 номенклатур. Насколько дольше будет выгружаться в Excell, чем в стандартный отчет? Вообщем, очень хочется сделать в Excell, но вдруг это будет в 2-3 раза дольше, чем в стандартный? Или разница скорее всего небольшая? Подскажите, коллеги!!!!
|
|
19.05.2004, 08:53 | #2 |
Участник
|
Во сколько точно раз дольше сказать не берусь
А выгружаться будет такой отчет..эээ...в лучшем случае пару часов, да и то в случае более или менее нормальной оптимизации (вставка через буфер например) Есть некий альтернативный способ создания отчета в экселе - создание самого файла xls по его спецификации. Говорят что работает почти мгновенно (впрочем, я даже пожалуй в это верю). Вот только разбираться с этой спецификацией....... |
|
19.05.2004, 09:45 | #3 |
Участник
|
это зависит от механизма выгрузки. Если сформируешь текстовый файл и откроешь его excel'eм - то быстро. если будешь работать через ado - то вполне приемлимо. если через COM... ну тогда придется подождать, но все равно результат будет. А вот если захочешь в word, то лучше сразу повеситься.
|
|
19.05.2004, 10:05 | #4 |
NavAx
|
Можно через OLAP, а там уже в Excel.
|
|
19.05.2004, 10:19 | #5 |
1C
|
Можно и через ActiveX
|
|
19.05.2004, 10:27 | #6 |
Участник
|
Через буфер обмена выгрузка в Excel будет практически мгновенной. Время тратится только на заполнение этого самого буфера.
Код для выгрузки через буфер обмена. http://forum.mazzy.ru/index.php?showtopic=385&hl=excel Для облегчения формирования выгружаемого буфера обмена я сделал класс двумерного массива http://www.axforum.info/forums/showt...&threadid=5263 Файл RTG_2DimArray.xpo |
|
19.05.2004, 12:03 | #7 |
Участник
|
Уже давно есть решение...
Я могу поделиться своим решением проблемы печати в Excel. Работает это уже не один год, не только из Аксапты, но из других систем тоже. Скорость работы выше на несколько порядков (собственно вывод данных в Excel-шаблон не превышает 3 сек. для любого количества ячеек).
Решение с эстетической точки зрения несколько кривое (используется привязка к фиксированному каталогу на клиентской машине). Но это реально работает, и я счастлив Суть решения в следующем: 1. Из Axapta формируется текстовый файл CSV, который кладется по фиксированному пути на клиентскую машину, например "c:\\temp" 2. Имя этого временного каталога прописывается в настройках, каталог создается автоматически, если не обнаружен. 3. На Excel-шаблоне объявляется внешний ODBC-запрос (меню "Данные / Импорт внешних данных / Импортировать данные”) 4. Естественно, в файле запроса (DQY) должен быть прописан путь к тому же самому каталогу. 5. Из Axapta запускается Excel, который сам затягивает данные в свои ячейки. Большой плюс внешних запросов – при изменении количества строк или столбцов запроса, Excel автоматически может добавлять строки и столбцы (зависит от настройки). Обнаружена пока только одна проблема – если пользователи будут работать в терминальной сессии, может возникнуть конфликт при одновременном обращении к отчету. Однако время его формирования мало и вероятность такого события ничтожна. Буду очень благодарен Вашим комментариям и дополнениям. |
|