Зарегистрироваться | Поиск |
Результаты опроса: Какой способ для связи 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. Вы ещё не голосовали в этом опросе |
|
Опции темы |
02.06.2006, 17:35 | #21 |
злыдень
|
2 AndyD
Кстати по повуду форматирования, а что мешает в текстовом файле форматировать текст и вообще писать формулы? PHP код:
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ Последний раз редактировалось Recoilme; 02.06.2006 в 17:37. |
|
02.06.2006, 17:49 | #22 |
Moderator
|
Цитата:
Сообщение от Recoilme
Кстати по повуду форматирования, а что мешает в текстовом файле форматировать текст ?
|
|
02.06.2006, 18:11 | #23 |
злыдень
|
если числа, простейший пример выше. если насчет линеечки рисовать - поищу пример. сходу не нашел, года 4 назад это было. Но не то чтоб совсем просто там. Писал в дос кодировке, а в заголовок пихал тэг аштиэмэльный, чтоб автоматом переконвертировал при открытии. И работало автоматом только в 2000.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
02.06.2006, 18:21 | #24 |
Moderator
|
Цитата:
Сообщение от Recoilme
если числа, простейший пример выше. если насчет линеечки рисовать - поищу пример. сходу не нашел, года 4 назад это было. Но не то чтоб совсем просто там. Писал в дос кодировке, а в заголовок пихал тэг аштиэмэльный, чтоб автоматом переконвертировал при открытии. И работало автоматом только в 2000.
|
|
05.06.2006, 10:32 | #25 |
Пенсионер
|
Цитата:
Сообщение от Bega
DOM, для ускорения навигации используется кэширование часто используемых узлов
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
05.06.2006, 14:25 | #26 |
Участник
|
Цитата:
Сообщение от polygris
да было бы очень интересно посмотреть на эти классы. у меня сегодня как раз стала проблема выгрузки в excel
Пробуй... в проекте три класса, тестовая табличка, и два тестовых джоба. Один тестовую табличку записами заполняет, а второй вываливает эту табличку в excel. Последний раз редактировалось simply2double; 05.06.2006 в 14:31. |
|
|
За это сообщение автора поблагодарили: O.b. (1), Ivan Mischenko (1). |
05.06.2006, 15:08 | #27 |
Участник
|
Цитата:
Сообщение от Recoilme
2 постами выше - тоже самое, только без лишних иттераций: "последующим окрытием экземпляра Excel и импорта в него этого файла."
итак... объясняю почему не все ёгурты одинаково полезны... получая сразу файл с расширением .xls ты предоставляешь excelю самому разбираться с вопросом форматов данных... а excel обладает чрезвычайно бурной фантазией... и число 12.02 легко преобразует при открытии файла в запись типа "12 feb 00" используя же импорт из .csv ты заранее программно определяешь правила импорта и определения форматов... вне зависимости от настроек excel, которые легко могут быть изменены пользователями ( некоторые это умеют делать ) к слову... во времена, когда ложки были деревянными, при их изготовлении существовало некое разделение труда. Один "бил баклуши", а второй из них вырезал ложки... так вот первый тоже видимо считал, что работа второго, это всего лишь вторая итерация а вообще... как велика магия слов... итерация... дизъюнкция... триангуляция... скажешь... и ощущаешь себя глубоко в теме кстати... ИТЕРАЦИЯ (от лат. iteratio - повторение) - повторное применение какой-либо математической операции. Последний раз редактировалось simply2double; 06.06.2006 в 09:20. |
|
06.06.2006, 08:23 | #28 |
Участник
|
Цитата:
Сообщение от blokva
Да согласен, кэширование поможет в навигации, но я пробывал, загрузка и сохранение очень медленные, может вы как нибудь и это ускорили, я просто баловался с SAXом загрузка куда быстрее происходила.
|
|
06.06.2006, 13:38 | #29 |
Moderator
|
Цитата:
Сообщение от 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:51 | #30 |
Участник
|
Цитата:
Сообщение от Gustav
Это еще цветочки. У меня случай был ваще - хоть стой, хоть падай.
... PS Одно из основных правил "хорошего тона"... контроль за ходом исполнения кода... в компонентном программировании.. а уж тем более применительно к технологиям OLE сложно реализовывать... а порой и лениво... Вот и в данном случае кажущаяся простота реализации обмена с Excel вводит в заблуждение. Это точно... "услужливая дрянь" ))) Последний раз редактировалось simply2double; 06.06.2006 в 15:01. |
|
06.06.2006, 14:58 | #31 |
Участник
|
Цитата:
Сообщение от Gustav
sorry, что забегаю поперек батьки в пекло , но не хотите ли попробовать подходец отсюда: Поговорим об ADO ? Там и туда, и обратно есть.
Хотя в данном случае... на вкус и цвет.. как грица... |
|
|
За это сообщение автора поблагодарили: Recoilme (2), Gustav (2). |
06.06.2006, 15:36 | #32 |
Moderator
|
Цитата:
Сообщение от simply2double
Кстати.. несмотря на мою просто сыновью любовь к технологии ADO еще со времен пописывания на С... я бы не советовал заморачиваться с ним при транспорте в Excel. Во-первых большой скоростью вывода похвалица нельзя... во-вторых придеца морочица с OLE DB провайдерами... то бишь они должны быть
Зато несомненный плюс - контроль над типом экспортируемых данных: захотим строка 000333 появится в ячейке Excel в точности как 000333, а захотим - как число 333 (просто интеллигентно задавая тип поля, без каких-либо спец.тегов). Зато второй несомненный плюс - вставка в Excel одним-единственным оператором - методом CopyFromRecordset объекта Range. А по скорости как раз скорее больше Аксапта тормозит, пока данные для экспорта в цикле получает... ("2-4 минуты" - это длительность всего процесса экспорта: получение данных + копирование на рабочий лист) Кстати, CopyFromRecordset ничего общего с "копипастом" не имеет, буфер обмена никак не затрагивается... (во всяком случае, ничего такого не замечено). Provider=Microsoft.Jet.OLEDB.4.0 - годится и для Excel, и для Access - и почти всегда имеется в распоряжении (по-моему, входит в состав стандартной поставки MDAC, хотя могу и ошибаться) |
|
06.06.2006, 16:46 | #33 |
Участник
|
Цитата:
Сообщение от Gustav
Ну, не знаю... Скорость, по-моему, вполне приличная... Она, может быть, не абсолютно рекордная среди всех методов, но если у меня 60 тысяч записей свалятся в Excel не за 2 минуты, а за 4 - я не сильно расстроюсь (как раз можно спокойно перекурить).
Ради интереса поробывал сейчас выгрузить с помощью представленного выше класса 42000 записей... ( просто больше было лениво в табличку писать ) ... получилось 35 сек. правда у меня машинка хорошая... быстрая и памяти много... Цитата:
Сообщение от Gustav
Provider=Microsoft.Jet.OLEDB.4.0 - годится и для Excel, и для Access - и почти всегда имеется в распоряжении (по-моему, входит в состав стандартной поставки MDAC, хотя могу и ошибаться) Последний раз редактировалось simply2double; 06.06.2006 в 17:00. |
|
06.06.2006, 20:21 | #34 |
Moderator
|
2 mazzy
Сергей, можно Вас попросить перенести эту ветку в "Полезные материалы"? Она явно переросла "Курилку": во-первых, здесь есть достойный проект, во-вторых, по-моему, неплохое обсуждение Спасибо. |
|
06.06.2006, 21:11 | #35 |
Участник
|
Спасибо. Сделано.
|
|
08.06.2006, 22:42 | #36 |
Moderator
|
Коллеги,
у меня класс ComExcelDocument_RU был слегка подправлен внедренцами. А мне бы хотелось увидеть его "максимально-первоначально-оригинальную" версию (если конечно такой эталон существует в природе). Как бы осуществить эту мою хотелку? Попросить у кого-нибудь из вас? Или перейти на какой-нибудь слой, отличный от USR? (Как?). Заранее спасибо. P.S. 2 AndyD: Персональное спасибо. Классно. ||| V Последний раз редактировалось Gustav; 09.06.2006 в 09:01. |
|
08.06.2006, 23:16 | #37 |
Участник
|
1. Пункт меню Сервис/Параметры. Закладка Разработка. Выберите в комбике Слой прикладных объектов - Все слои. Тогда у вас в AOT у элементов будет показываться в каких слоях есть изменения.
2. На интересующем вас элементе из контекстного меню выберите пункт Слои. Для этого элемента будет показываться несколько узлов - в соответствии с кол-вом слоев, в которых этот элемент изменялся. Выбрав соответствующий слой вы увидите все изменения из этого слоя и более низких. Для ComExcelDocument_RU первый слой - dis. Так что смотрите код на нем.
__________________
Axapta v.3.0 sp5 kr2 |
|
09.06.2006, 09:02 | #38 |
Участник
|
Еще один инструментарий - контекстное меню элемента->пункт Add-Ins->подпункт "Обновление кода". В открывшемся окне можно просмотреть все методы (и не только методы) в разных слоях, в том числе их сравнение друг с другом
__________________
Axapta v.3.0 sp5 kr2 |
|
Теги |
excel |
|
Похожие темы | ||||
Тема | Ответов | |||
Произошла ошибка связи с Microsoft Axapta Debugger. | 4 | |||
Сводная таблица из Axapta | 5 | |||
Axapta программирует Excel на VBA | 10 | |||
eksport iz excel v axapta | 1 | |||
Введение в Аксапту | 0 |
|