| 
			
			 | 
		#1 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
			
			
			Размножение таблицы Word
			 
			
			Помогите, пожалуйста, размножить обычную word таблицу в шаблоне *.dot. Наверняка кто-нибудь сталкивался с проблемой отгружать данные в отчет word, причем количество этих данных не было известно, и данные эти должны находится в разных таблицах в Word документе... На данный момент есть два решения: 
		
		
		
		
		
		
		
	1) выделение необходимой таблицы в шаблоне, а затем обычное копирование и вставка через буфер обмена. НЕ ГОДИТСЯ - поскольку затирается буфер обмена. 2) сделать шаблон с n-м количеством этих самых таблиц, а затем после подсчета количества данных удалить с конца ненужное количество. НЕ ГОДИТСЯ - поскольку количество данных во многих случаях остается неизвестным и может превысить количество уже созданных в шаблоне. К тому же черезчур громоздко... Вообщем, помогите найти более изящный способ  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			можно сделать макрос в шаблоне, который будет создавать нужную таблицу с нужным форматированием в нужном месте, ну и вызывать его по мере необходимости
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			так в том и дело, что ничего создавать не нужно, просто напросто необходимо копирнуть существующую таблицу (будет вернее сказать некоторый Range, в который входит она, еще 2 таблицы и некоторые другие элементы) после нее самой несколько раз, и насчет макроса, ведь можно его же написать в коде X++... К тому же создавать ту самую таблицу по элементарным кирпичикам - это гора работы: невидимые линии, и т.п., и еще копировать нужно не одну таблицу а целых три поэтому такое решение усложняется трижды, кроме таблиц, там еще и линия с надписью ниже...  
		
		
		
		
		
		
		
	2 Belugin честно говоря даже не знаю, помоему это даже более громоздко чем куча таблиц, с последующим удалением...  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я в-общем так, для обозначения возможности.  
		
		
		
		
		
		
		
	С точки зрения "громоздко" есть 2 аспекта: *Разработка: можно позльзоваться XSLT внутри ворда, при этом использовать ворд как визуальный редактор - в некоторых случаях так может *при генерации отчета ворд вообще не нужен - только XSLT процессор. Таким образом, всё пролисходит очень быстро и может осуществляться вообще без наличия ворда - например, на сервере Но недостатков тоже полно  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А как насчет варианта сохранить нужные данные из буфера обмена, покопировать таблички, восстановить данные в буфер обмена?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 E@gle: То есть, что то типа Buffer.Push() и Buffer.Pop()? Была такая идея, если в курсе как реализовать, то подскажите пожалуйста 
		
		
		
		
		
		
		
		
			2 Belugin: спасибо, обязательно попробую эту штуку... таким образом, если это возможно (сохр/вост) буфера, то выходит, это единственное простейшее решение... Последний раз редактировалось Eldar9x; 15.01.2007 в 13:10.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Тогда вопрос: вам надо сохранить весь буфер обмена или какой-нибудь определенный тип (формат) буфера? 
		
		
		
		
		
		
		
	Как выпонимаете сохранить весь будет сложнее.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Eldar9x (1). | |
| 
			
			 | 
		#9 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			в буфере обмена может быть все что угодно, отсюда вывод: либо сохранить весь, либо сделать так Сохранение/восстановление буфера обмена думаю это и есть решение
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			только что вспомнил, буфер обмена - опасная вещица, представляете что будет, если во время формирования отчета пользователь нажмет Copy в другом приложении...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Наша компания достаточно широко использует буфер обмена при формировании отчетов (кстати и вашу задачу решали именно таким способом). Многими такими отчетами пользуются уже больше года. Нареканий пока нет. 
		
		
		
		
		
		
		
	Если найдете решение в обход буфера обмена - напишите.  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			решили оставить метод с удалением лишних таблиц, + применение эвристики  
		
		
		
		
		
		
		
	  Судя по всему, если не учитывать поэлементное рисование необходимого интервала (что весьма муторно), то это наиболее оптимальное решение. Хотя, конечно, и не очень красивое, но что поделаешь...
		 | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот именно для того, чтоб не было "так муторно" предлагаю делать именно макрос в шаблоне. Так попроще создать новую таблицу по образу и подобию уже существующей.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я на форуме уже говорил как мы решали эту проблемму: 
		
		
		
		
		
		
			Надо просто создать файл Word из шаблона, и просто этот же шаблин вставлять в этот файл столько раз сколько нужно экземпляров... но придется доработать методы работы с таблицами Word на предмет навигации с использованием параметров: таблица, строка, столбец 
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 Ashir: а таким образом можно копировать целые интервалы в документе?, если да, то, пожалуйста напишите как (или дайте ссылку) 
		
		
		
		
		
		
		
	2 blokva: а поподробней насчет этого способа, как реализовать?  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я имею в виду не копирование а создание (ведь любое копирование будет осуществляться через буфер) новой таблички по заранее определённому формату. Этот подхед не универсален, но в данном слечае может подойти.  
		
		
		
		
		
		
		
		
			Начните запись макроса и создайте таблицу с требуемым форматированием. Потом этот макрос просто надо будет вызвать из AxЫ. Последний раз редактировалось Ashir; 16.01.2007 в 12:27.  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
2. создаем на его основе файл, получаем таблицу 1, которую заполняем данными 3 вставляем в данный файл тот же файл шаблона функцией ComWordDocument_RU.insertDocFile 4. в результате получаем таблицу 2 в этом же файле, которую тоже заполняем. 5. и т.д. с п.3 5. для заполнения каждой таблицы необходима правильная навигация, т.к. букмарки не подходят из-за того, что они всегда будут ссылаться на 1-ую таблицу. 6. для этого надо создать свои методы вставления данных в ячейки таблицы (для того, чтобы понять как, посмотрите методы getPosEndOfTable и tableInsertValue того же класса) зы: я просто не могу найти код, который мы делали в 2.5 
				__________________ 
		
		
		
		
		
			  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ Последний раз редактировалось blokva; 16.01.2007 в 13:51.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Eldar9x (1). | |
| 
			
			 | 
		#18 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			и (или) 
		
		
		
		
		
		
		
	Б. (ежегодный дополнительный оплачиваемый отпуск, учебный, без сохранения заработной платы и другие (указать)) На календарных дней с по  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			вообщем вот такой интервал должен копироваться, причем Б меняется, кроме того над строкой должна быть линия и еще 3 таблицы со сложным форматированием (здесь не удалось отобразить). Как все это создавать по формату и как вообще создать такой формат даже не представляю... 
		
		
		
		
		
		
		
	2 blokva: действительно, решение лишено перегруженности, но есть один минус: придется таскать два шаблона для одного документа. По-поводу навигации нет проблем, ведь достаточно знать порядковый номер первой таблицы...  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Пенсионер 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Eldar9x
			 
 
			вообщем вот такой интервал должен копироваться, причем Б меняется, кроме того над строкой должна быть линия и еще 3 таблицы со сложным форматированием (здесь не удалось отобразить). Как все это создавать по формату и как вообще создать такой формат даже не представляю... 
		
	2 blokva: действительно, решение лишено перегруженности, но есть один минус: придется таскать два шаблона для одного документа. По-поводу навигации нет проблем, ведь достаточно знать порядковый номер первой таблицы... 
				__________________ 
		
		
		
		
	  Законы природы еще никто не отменял!А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/  | 
| 
	
 |