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

Результаты опроса: Какой способ для связи Axapta с Excel вы предпочитаете?
Класс ComExcelDocument_RU 17 58.62%
Общий способ для COM-объектов типа: COM c = new COM("Excel.Application") 5 17.24%
Семейство системных классов SysExcel... 5 17.24%
Другое (поясните, пожалуйста) 2 6.90%
Голосовавшие: 29. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.03.2006, 15:30   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от UNRW
Если напрямую соединяться с базой, то отчет может не сформироваться - потаймауту от БД
Ничего! Мы настырные, мы еще раз кнопку нажмем. А если не поможет, то нажмем после рабочего дня, когда разгоним юзеров по домам


Цитата:
Сообщение от macklakov
...Еще можно из excel ...обратиться к аксе, как com- объекту
Имеется в виду Axapta Business Connector? Согласен. Правда, он денежков дополнительных стоит... (вроде как 300 с лишним евриков на одно аксаптирующее лицо)
Старый 02.06.2006, 08:32   #2  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Сохраняем файл Excel как XML, работаем напрямую с XML файлом, запускаем Excel только для просмотра. Работает очень быстро.
Старый 02.06.2006, 10:43   #3  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Bega
Сохраняем файл Excel как XML, работаем напрямую с XML файлом, запускаем Excel только для просмотра. Работает очень быстро.
выгрузку в текстовый файл с разделителями Таб и расширением xls - думаю по скорости не побьет никто
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 02.06.2006, 11:09   #4  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Вопрос выгрузки в Excel стоял всегда...
потому после нескольких экспериментов раз и навсегда для себя определил, что максимальная скорость выгрузки достигается предварительной выгрузкой в CSV с разделителями... с последующим окрытием экземпляра Excel и импорта в него этого файла. Если народу интересно, могу выложить пару классов, которые "напрямую" выгружает таблицы аксы в excel. От пользователя (программиста) требуется только определить группу полей в необходимом порядке вывода и заполнить таблицу данными.
Старый 02.06.2006, 17:04   #5  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Цитата:
Сообщение от simply2double
Вопрос выгрузки в Excel стоял всегда...
потому после нескольких экспериментов раз и навсегда для себя определил, что максимальная скорость выгрузки достигается предварительной выгрузкой в CSV с разделителями... с последующим окрытием экземпляра Excel и импорта в него этого файла. Если народу интересно, могу выложить пару классов, которые "напрямую" выгружает таблицы аксы в excel. От пользователя (программиста) требуется только определить группу полей в необходимом порядке вывода и заполнить таблицу данными.
да было бы очень интересно посмотреть на эти классы. у меня сегодня как раз стала проблема выгрузки в excel
Старый 02.06.2006, 17:09   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от polygris
у меня сегодня как раз стала проблема выгрузки в excel
sorry, что забегаю поперек батьки в пекло , но не хотите ли попробовать подходец отсюда: Поговорим об ADO ? Там и туда, и обратно есть.
Старый 05.06.2006, 14:25   #7  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от polygris
да было бы очень интересно посмотреть на эти классы. у меня сегодня как раз стала проблема выгрузки в excel

Пробуй... в проекте три класса, тестовая табличка, и два тестовых джоба. Один тестовую табличку записами заполняет, а второй вываливает эту табличку в excel.
Вложения
Тип файла: zip Table2Excel.zip (12.3 Кб, 208 просмотров)

Последний раз редактировалось simply2double; 05.06.2006 в 14:31.
За это сообщение автора поблагодарили: O.b. (1), Ivan Mischenko (1).
Старый 02.06.2006, 17:21   #8  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от simply2double
Вопрос выгрузки в Excel стоял всегда...
потому после нескольких экспериментов раз и навсегда для себя определил, что максимальная скорость выгрузки достигается предварительной выгрузкой в CSV с разделителями... с последующим окрытием экземпляра Excel и импорта в него этого файла. Если народу интересно, могу выложить пару классов, которые "напрямую" выгружает таблицы аксы в excel. От пользователя (программиста) требуется только определить группу полей в необходимом порядке вывода и заполнить таблицу данными.
2 постами выше - тоже самое, только без лишних иттераций: "последующим окрытием экземпляра Excel и импорта в него этого файла."
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 05.06.2006, 15:08   #9  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Recoilme
2 постами выше - тоже самое, только без лишних иттераций: "последующим окрытием экземпляра Excel и импорта в него этого файла."
программирование вообще штука весьма однообразная... максимум десяток-полтора конструкций... глядя со стороны особенно...


итак... объясняю почему не все ёгурты одинаково полезны...
получая сразу файл с расширением .xls ты предоставляешь excelю самому разбираться с вопросом форматов данных... а excel обладает чрезвычайно бурной фантазией... и число 12.02 легко преобразует при открытии файла в запись типа "12 feb 00"
используя же импорт из .csv ты заранее программно определяешь правила импорта и определения форматов... вне зависимости от настроек excel, которые легко могут быть изменены пользователями ( некоторые это умеют делать )

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

а вообще... как велика магия слов... итерация... дизъюнкция... триангуляция... скажешь... и ощущаешь себя глубоко в теме

кстати...

ИТЕРАЦИЯ (от лат. iteratio - повторение) - повторное применение какой-либо математической операции.

Последний раз редактировалось simply2double; 06.06.2006 в 09:20.
Старый 06.06.2006, 13:38   #10  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от simply2double
получая сразу файл с расширением .xls ты предоставляешь excelю самому разбираться с вопросом форматов данных... а excel обладает чрезвычайно бурной фантазией... и число 12.02 легко преобразует при открытии файла в запись типа "12 feb 00"
Это еще цветочки. У меня случай был ваще - хоть стой, хоть падай.

Переливали какие-то данные по складу. Всякие там коды номенклатуры - текстовые значения, состоящие из цифр и знаков препинания. Так вот, строка "19 13008/3" попала на оператор VBA вида Range("A1") = "19 13008/3". Можете скопировать этот оператор в окно отладки Эксель и нажать Enter - посмотрите, что будет в ячейке A1 активного листа - число 4355. Неплохо, правда?
(если лениво в окно отладки, то можно сделать ручную имитацию - введите в ячейку А1 символы: =19 13008/3 и нажмите Enter).

Это дробь! (как выяснилось при анализе), т.е. эта "услужливая дрянь" (как мы иногда ласково называем любимый Excel) проинтерпретировала эту строку как 19 целых 13008 третьих. И надо же - результат деления 13008 на 3 = ровно 4336. 4336 + 19 = 4355. Такие дела...
Старый 06.06.2006, 14:58   #11  
simply2double is offline
simply2double
Участник
Аватар для simply2double
 
556 / 19 (2) ++
Регистрация: 08.09.2004
Адрес: alfa cen
Цитата:
Сообщение от Gustav
sorry, что забегаю поперек батьки в пекло , но не хотите ли попробовать подходец отсюда: Поговорим об ADO ? Там и туда, и обратно есть.
Кстати.. несмотря на мою просто сыновью любовь к технологии ADO еще со времен пописывания на С... я бы не советовал заморачиваться с ним при транспорте в Excel. Во-первых большой скоростью вывода похвалица нельзя... во-вторых придеца морочица с OLE DB провайдерами... то бишь они должны быть
Хотя в данном случае... на вкус и цвет.. как грица...
За это сообщение автора поблагодарили: Recoilme (2), Gustav (2).
Старый 06.06.2006, 15:36   #12  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от simply2double
Кстати.. несмотря на мою просто сыновью любовь к технологии ADO еще со времен пописывания на С... я бы не советовал заморачиваться с ним при транспорте в Excel. Во-первых большой скоростью вывода похвалица нельзя... во-вторых придеца морочица с OLE DB провайдерами... то бишь они должны быть
Ну, не знаю... Скорость, по-моему, вполне приличная... Она, может быть, не абсолютно рекордная среди всех методов, но если у меня 60 тысяч записей свалятся в Excel не за 2 минуты, а за 4 - я не сильно расстроюсь (как раз можно спокойно перекурить).

Зато несомненный плюс - контроль над типом экспортируемых данных: захотим строка 000333 появится в ячейке Excel в точности как 000333, а захотим - как число 333 (просто интеллигентно задавая тип поля, без каких-либо спец.тегов).

Зато второй несомненный плюс - вставка в Excel одним-единственным оператором - методом CopyFromRecordset объекта Range.
А по скорости как раз скорее больше Аксапта тормозит, пока данные для экспорта в цикле получает... ("2-4 минуты" - это длительность всего процесса экспорта: получение данных + копирование на рабочий лист) Кстати, CopyFromRecordset ничего общего с "копипастом" не имеет, буфер обмена никак не затрагивается... (во всяком случае, ничего такого не замечено).

Provider=Microsoft.Jet.OLEDB.4.0 - годится и для Excel, и для Access - и почти всегда имеется в распоряжении (по-моему, входит в состав стандартной поставки MDAC, хотя могу и ошибаться)
Старый 02.06.2006, 15:33   #13  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от Bega
Сохраняем файл Excel как XML, работаем напрямую с XML файлом, запускаем Excel только для просмотра. Работает очень быстро.
Какую модель используете DOM или SAX?
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 02.06.2006, 16:37   #14  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от blokva
Какую модель используете DOM или SAX?
DOM, для ускорения навигации используется кэширование часто используемых узлов
Старый 05.06.2006, 10:32   #15  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Цитата:
Сообщение от Bega
DOM, для ускорения навигации используется кэширование часто используемых узлов
Да согласен, кэширование поможет в навигации, но я пробывал, загрузка и сохранение очень медленные, может вы как нибудь и это ускорили, я просто баловался с SAXом загрузка куда быстрее происходила.
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 06.06.2006, 08:23   #16  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от blokva
Да согласен, кэширование поможет в навигации, но я пробывал, загрузка и сохранение очень медленные, может вы как нибудь и это ускорили, я просто баловался с SAXом загрузка куда быстрее происходила.
Загрузку и сохранение конечно никак не ускоришь,но у нас вроде это не так много занимает.
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Произошла ошибка связи с Microsoft Axapta Debugger. vasiliy DAX: Программирование 4 22.10.2007 07:18
Сводная таблица из Axapta kashperuk DAX: База знаний и проекты 5 20.03.2007 09:06
Axapta программирует Excel на VBA Gustav DAX: База знаний и проекты 10 13.03.2006 11:42
eksport iz excel v axapta Ar4i777 DAX: Функционал 1 04.11.2004 09:46
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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