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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.07.2007, 11:26   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от otkudao Посмотреть сообщение
была сказка про лису и кого-то еще (хорька, что ли), попавших в яму. У лисы была тысяча способов и она так и провыбиралась среди них, пока не пришел охотник и не сделал из нее шубу. А у хорька был один способ. Который его и спас.

Такое вот лирическое отступление.

1. Способов <<1000

2. Каждый способ это компромисс между скоростью легкостью в реализации и пр. Например, XML не поддерживается версиями Excel раньше XP, а ADO не поддерживает вывод форматирования.
Старый 10.07.2007, 11:49   #2  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
2. Каждый способ это компромисс между скоростью легкостью в реализации и пр. Например, XML не поддерживается версиями Excel раньше XP, а ADO не поддерживает вывод форматирования.
Согласен, более правильно разбить стандартные задачи на сектора и определять оптимальный способ уже в нем. Например, если требуется оформление различным шрифтом и цветом без использования шаблона, то без COM не обойтись, хотя наверное можно и через dll как то реализовать.
А оформить задачки можно так
Задача выгрузки в excel.
1 Условия: продвинутое форматирование, с шаблоном....
Реализация. .....
Пример...
2 Условия: продвинутое форматирование, без шаблона....
Реализация. .....
Пример...
За это сообщение автора поблагодарили: belugin (4).
Старый 10.07.2007, 14:54   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Продолжаю наслаждаться комбинацией несвязанного ADODB.Recordset в оперативной памяти и последующего Range.CopyFromRecordset в Excel. Пристегиваю этот способ ко всем новым задачкам, в которых требуется вывод в Excel.

Способ не наибыстрейший, но вполне комфортный по скорости. Тестовое задание этой ветки (50 тыс.строк X 10 полей) выполняется примерно за 80 сек. Это уже не просто джобом, а классом, который сам настраивает Recordset и может резать выводимую выборку как по критерию "65 тыс строк" на лист, так и по произвольно задаваемому групповому критерию - типа "все сотрудники на А на первый лист, на Б - на второй и т.д." - т.е. сам процесс вывода продирается через эти "рогатки".

Основная причина же этой моей симпатии - возможность управления типами данных выводимых столбцов. Ради этой возможности я согласен ждать 50-60 лишних секунд

Форматирую, если требуется, после вывода. Сразу большими Range'ми (целыми строками, столбцами, заголовками, областью данных), необходимые ссылки на которые создаются и запоминаются классом в процессе вывода. Это что касается спискообразных "автоотчетов".

Для развесистых стандартных шаблонов (типа акта ОС-1) теперь тоже использую такой вывод с CopyFromRecordset. В файле шаблона создаю еще один лист, можно скрытый, на который вывожу одну строку с необходимыми данными. А в ячейках самого шаблона прописываю формулы-ссылки на ячейки этой выводимой строки. Подход родился в процессе решения задачи по пакетной печати нескольких тысяч актов ОС-1. Один CopyFromRecordset вместо многих присваиваний Range.Value(...) увеличил скорость процесса примерно в 30 раз (иначе можно было бы тихо загнуться на этой печати).
За это сообщение автора поблагодарили: player (1).
Теги
benchmark, download, excel, faq, xml, законченный пример, производительность, экспорт/импорт

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axapta программирует Excel на VBA Gustav DAX: База знаний и проекты 10 13.03.2006 11:42
Использование OWC.Spreadsheet для ускорения экспорта/импорта в/из Excel. storer DAX: Программирование 24 28.03.2005 19:10
Передача данных из 1С в Axapta 3.0 через COM Connector isbist DAX: Программирование 10 03.12.2004 10:58
Особенности экспорта данных в Excel Roman-sp DAX: Функционал 18 01.03.2004 12:07
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:39.