AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Исследование скорости экспорта данных из 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 11:25.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.