|
Вывести таблицу в документе Word | ☑ | ||
---|---|---|---|---|
0
pele
18.03.13
✎
16:16
|
Помогите пожалуйста вывести таблицу в документе ворд!!!!
спрШаблонДоговора = ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЭтаФорма.мсТиповоеСоглашение, "мсШаблонДоговора"); Если ЗначениеЗаполнено(спрШаблонДоговора) тогда ПолучитьДанные = ПрисоединенныеФайлы.ПолучитьДанныеФайла(спрШаблонДоговора); ДвоичныеДанные = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(спрШаблонДоговора); Иначе Предупреждение("Шаблон Договора не загружен в информационную базу!"); Возврат; КонецЕсли; Handler = УправлениеПечатьюMSWordКлиент.ПолучитьМакетMSWord(ДвоичныеДанные, ПолучитьДанные.ИмяФайла); масРезультат = ПолучитьТабличнуюЧастьТоваров(); Количество = масРезультат.Количество(); ActiveDocument = Handler.COMСоединение.ActiveDocument; Range = ActiveDocument.Content; Поиск = Range.Find; Поиск.ClearFormatting(); Поиск.execute("{НачалоТаблицыОбязательныйПрефикс}"); //Если НЕ Поиск.Found Тогда // Прервать; //КонецЕсли; //Range.Text = Строка(""); Таблица = Поиск.Application.ActiveDocument.Tables(1); Поиск.Application.Selection.MoveDown(); Поиск.Application.Selection.SelectRow(); Поиск.Application.Selection.Cut(); //вырезаем строку тегов строк Попытка //строки итогов может не быть Поиск.Application.Selection.SelectRow(); Исключение КонецПопытки; //таблица Для каждого стрТовар из масРезультат Цикл сткТовары = Новый Структура("Номенклатура,Единица,Количество,ДатаПродажи,Цена,Сумма"); сткТовары.Вставить("Номенклатура",стрТовар.Номенклатура); сткТовары.Вставить("Единица",стрТовар.ЕдиницаИзмерения); сткТовары.Вставить("Количество",стрТовар.Количество); сткТовары.Вставить("ДатаПродажи",стрТовар.ДатаПродажи); сткТовары.Вставить("Цена",стрТовар.Цена); сткТовары.Вставить("Сумма",стрТовар.Сумма); //сткТовары.Вставить("НачалоТаблицыОбязательныйПрефикс",""); Для каждого Текст из сткТовары Цикл ТекстДляПоиска = Текст.Ключ; ТекстЗамены = Текст.Значение; Range = ActiveDocument.Content; Поиск = Range.Find; Поиск.ClearFormatting(); Поиск.execute("{НачалоТаблицыОбязательныйПрефикс}"); Handler.COMСоединение.Selection.MoveDown(); Handler.COMСоединение.Selection.Paste(); Пока Истина Цикл Range = ActiveDocument.Content; Поиск = Range.Find; Поиск.ClearFormatting(); Поиск.execute("{"+ТекстДляПоиска+"}"); Если НЕ Поиск.Found Тогда Прервать; КонецЕсли; Range.Text = Строка(ТекстЗамены); КонецЦикла; КонецЦикла; |
|||
1
pele
18.03.13
✎
16:17
|
Не работает SelectRow()
|
|||
2
pele
18.03.13
✎
16:18
|
так как Com объект не ссылается на таблицу
|
|||
3
pele
18.03.13
✎
17:05
|
Как сделать?
|
|||
4
kimba
18.03.13
✎
17:18
|
попробуй макрос запиши по созданию таблицы, и посмотри его код в бэйсике, станет понятно
|
|||
5
Новиков
18.03.13
✎
17:19
|
разделители.
|
|||
6
Масянька
18.03.13
✎
17:20
|
мWord = СоздатьОбъект("Word.Application");
мWord.Visible = 0; мNewDoc = мWord.Documents; мШаблон = СокрЛП(Строка(КаталогШаблонов + мШаблон)); мДок = мNewDoc.Add(мШаблон, 0, 0, 1); // верхний колонтитул мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range; мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2); мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2); мОбъект = мДок.Content; // подставляем значения по тексту договора - признак замены [] мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2); мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2); мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2); ...... // заполнение таблицы номенклатуры Для СчетчикЦикла = 1 По Счет.КоличествоСтрок() Цикл мОбъект.Tables(1).Rows.Add(); // добавляем строку в конец таблицы Счет.ПолучитьСтрокуПоНомеру(СчетчикЦикла); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,1).Range.Text = Счет.НомерСтроки; мОбъект.Tables(1).Cell(СчетчикЦикла + 2,2).Range.Text = СокрЛП(Счет.Номенклатура.ПолнНаименование); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,3).Range.Text = СокрЛП(Формат(Счет.Количество, "Ч010.2")); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,4).Range.Text = Строка(Счет.Единица); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,5).Range.Text = глФрм(Счет.Цена); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,6).Range.Text = глФрм(Счет.СуммаНДС); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,7).Range.Text = глФрм(Счет.Сумма); КонецЦикла; // итоги мОбъект.Tables(2).Cell(1,2).Range.Text = СокрЛП(Формат(Счет.Итог("Количество"), "Ч010.2")); мОбъект.Tables(2).Cell(1,5).Range.Text = глФрм(Счет.Итог("СуммаНДС")); мОбъект.Tables(2).Cell(1,6).Range.Text = глФрм(Счет.Итог("Сумма")); Код для 7.7. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |