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