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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2004, 09:31   #1  
YVAS is offline
YVAS
1C
Аватар для YVAS
1C
 
265 / 10 (1) +
Регистрация: 31.07.2003
? Скорость работы при экспорте в Excel
Программно осуществляется выгрузка данных в Excel шаблоны. Но работает это ужасно медленно. Отчет в 200 строк и 15 столбцов на машине P-4 2,4Ghz формируется 2 минуты, тот же отчет на P-4 1,4 Ghz уже 4 минут, ну а на Celeron 1700 вообще ждали 25 минут и так не дождались. После анализа выяснили, что завал происходит именно в момент работы с ячейками Excel. Хотелось бы узнать, это нормально или есть средства для ускорения сего процесса.
Старый 20.01.2004, 10:19   #2  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Как я понимаю, интересует оптимизация передачи данных из Аксапта в Excel через com. Можно попробовать заполнять шаблон построчно, сформировав вариантный массив значений строки и передав его в выбранный range.
http://www.axforum.info/forums/showt...0481#post10481

p.s.
К сожалению, многомерные массивы в Axapta не поддерживаются.

А вообще, на форуме довольно много всего обсуждалось относительно общения с Excel. Воспользуйтесь поиском.
Старый 20.01.2004, 10:55   #3  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Самый оптимальный способ выгрузки данных в Excel -- делать это через com
Можно использовать для этого компоненту VTKExport для Delphi.
Скорость выгрузки на Celeron 600 128 RAM около 1000 ячеек в секунду (с форматированием ячеек)

Правда есть один минус -- компонента платная, но стоит не много...
Старый 20.01.2004, 11:14   #4  
sassas
Гость
 
n/a
все можно сделать, не покупая доп объектов
Формируйте XML-файл с необходимыми строками. Затем вызывается COM-объект Excel и с помощью него открывается (open) вышеук файл.

PS. Внимание! значения атрибутов XML-элементов Excel автоматически присваивает своим колонкам в порядке возрастания кодов символов наименований атрибутов. Именуйте атрибуты в порядке возрастания по афавиту! - (порядок алфавита = порядок Excel колонок слева направо).
Старый 20.01.2004, 11:21   #5  
YVAS is offline
YVAS
1C
Аватар для YVAS
1C
 
265 / 10 (1) +
Регистрация: 31.07.2003
kvan, вариант с VTKExport интересен. А вообще Вы использовали эту библиотечку в Аксапте???
Старый 20.01.2004, 11:21   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не согласен.
самый оптимальный способ выгрузки, имхо, напечатать отчет в текстовый файл, а затем импортировать его в Эксель.

Причем оптимальный с точки зрения времени исполнения, так и с точки зрения работы программиста. Сделать обычный отчет программисту намного легче, чем трахаться с COM.

Кроме того, обычный отчет можно использовать и просто как отчет
Старый 20.01.2004, 11:24   #7  
YVAS is offline
YVAS
1C
Аватар для YVAS
1C
 
265 / 10 (1) +
Регистрация: 31.07.2003
Цитата:
напечатать отчет в текстовый файл, а затем импортировать его в Эксель.
интресно будет это объяснять бухгалтерам. А вообще, чтобы посмотреть отчет и делать для этого двойное действие - это ненормально.
Старый 20.01.2004, 11:38   #8  
sassas
Гость
 
n/a
При варианте с COM и промежут файлом (текстовым или XML) бухгалтера ничего не увидят, по нажатию кн откроется Excel.

Двойное кодир (действие) - не есть гуд.

Использование Excel при наличии средств форм отчетов в AX = двойное кодирование (действие)
Старый 20.01.2004, 11:43   #9  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
2 YVAS:
Библиотечку использовали. Когда встал вопрос о медленном экспорте данных в Excel, мы посоветовались с программистами из другого отдела (они не работают с аксаптой), у них возникала такая проблема и они ее решили с помощью VTKExport.
Подготовить компоненту для работы с ней из аксапты делов на час.
Правда пока мы ее не используем по причине запрета от руководства и отказа заплатить (компонента то платная)

2mazzy:
я имел ввиду самый оптимальный способ прямой выгрузки данных Axapta -> Excel,
самый оптимальный из доступных нам на то время.
Старый 20.01.2004, 11:45   #10  
YVAS is offline
YVAS
1C
Аватар для YVAS
1C
 
265 / 10 (1) +
Регистрация: 31.07.2003
Цитата:
Использование Excel при наличии средств форм отчетов в AX = двойное кодирование (действие)
Дык им Excel же подавай. Кстати, а почему?
Старый 20.01.2004, 11:56   #11  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Решение тут http://www.axforum.info/forums/showt...4163#post24163
Я попробовал, разница в разы.
Старый 20.01.2004, 11:57   #12  
sassas
Гость
 
n/a
-уже есть средство
-на стыках возможны (и как правило, случаются) потери = доп программирование и доп (иногда покуп) объекты
-необходимо инсталлировать (по-хорошему и покупать) Excel везде, где исп AX
-нет гарантии, что след версии AX и EXCEL будут автоматом работать в связке как работали ранее
Старый 20.01.2004, 12:30   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано YVAS

интресно будет это объяснять бухгалтерам. А вообще, чтобы посмотреть отчет и делать для этого двойное действие - это ненормально.
Ну дык, сделайте кнопку, которая будет автоматически и незаметно для пользователей ВЫЗЫВАТЬ эти два действия, ВМЕСТО ТОГО, чтобы программировать сами действия.
Старый 20.01.2004, 13:37   #14  
YVAS is offline
YVAS
1C
Аватар для YVAS
1C
 
265 / 10 (1) +
Регистрация: 31.07.2003
2Mazzy:
С выгрузкой в текст понятно, а вот импорт в Excel, я так понимаю, макрос экселевский нужно запускать из Ax? Что то немного недопонимаю...
Старый 20.01.2004, 13:53   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
да, правильно.
главное, через COM надо вызывать одну-две уже готовые и существующие функции, вместо того, чтобы программировать все действия "с нуля".
Старый 20.01.2004, 14:19   #16  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
2 YVAS
А чем такой вариант не нравится? http://www.axforum.info/forums/showt...4163#post24163
ИМХО самый быстрый, т.к. не надо ни каких файловых операций. Заполняешь буфер обмена и делаешь вставку в Excel.
Есть не достатки с дизайном листа, но если сравнивать с импортом из тестового файла...
Старый 27.02.2004, 11:55   #17  
DSV is offline
DSV
Участник
 
129 / 10 (1) +
Регистрация: 12.06.2003
Адрес: Novocybers
Случилось чудо!
Мне дама подсказала решение под 2К - нужно делать не просто вставку, а специальную. "Только текст".
В макросе VBA это выглядит
Цитата:
ActiveSheet.PasteSpecial Format:="Текст", Link:=False, DisplayAsIcon:= False
на Х++ счас попробуем прикрутить и протестировать быстродействие.
Старый 06.04.2010, 14:25   #18  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Цитата:
Сообщение от mazzy Посмотреть сообщение
не согласен.
самый оптимальный способ выгрузки, имхо, напечатать отчет в текстовый файл, а затем импортировать его в Эксель.

Причем оптимальный с точки зрения времени исполнения, так и с точки зрения работы программиста. Сделать обычный отчет программисту намного легче, чем трахаться с COM.

Кроме того, обычный отчет можно использовать и просто как отчет
вот делаю подобное и получается криво, когда в значении ячейки есть абзацы (символы переноса строки). При импорте в ексель этот символ переноса строки воспринимается как переход к следующей ячейке и абзацы выводятся в разных ячейках. Не знаю, как лечить.
Теги
excel, текст, файл, экспорт

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Проблемы при экспорте в Excel ymv2000 DAX: Программирование 4 13.06.2007 06:51
Пример работы с Excel через COM Jox DAX: База знаний и проекты 5 06.06.2006 13:36
Автовысота строк при экспорте в excel andy239 DAX: Программирование 17 08.11.2005 16:51
Ошибки при экспорте в Excel Владимир Максимов DAX: Программирование 9 06.08.2004 10:12

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

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

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