|
Форматированный программный вывод в Word | ☑ | ||
---|---|---|---|---|
0
fantomrik
24.04.13
✎
12:01
|
Добрый день! Делаю печатную форму, макет и вывод в МС Ворд (требование заказчика). 1 часть документа будет копироваться много раз в зависимости от количество строк документа. Пытаюсь ее скопировать и в вставить но во-первых шрифты слетают а во-вторых само формирование сбивается
[НП] По договору [НаименованиеДоговора]: - [НаименованиеОрганизации_1] является кредитором; - [НаименованиеОрганизации_2] является должником. Размер погашаемого обязательства (требования) по данному договору составляет [Сумма] руб. ([СуммаНДС]): - по счет-фактуре № [НомерДоговора] от [Дата договора] на сумму [СуммаТЧ] руб. ([СуммаНДС_ТЧ]). Стороны пришли к соглашению о зачете взаимных требований по указанным ниже договорам. [НП] По договору [НаименованиеДоговора]: - [НаименованиеОрганизации_1] является кредитором; - [НаименованиеОрганизации_2] является должником. Размер погашаемого обязательства (требования) по данному договору составляет [Сумма] руб. ([СуммаНДС]): - по счет-фактуре № [НомерДоговора] от [Дата договора] на сумму [СуммаТЧ] руб. ([СуммаНДС_ТЧ]). Стороны пришли к соглашению о зачете взаимных требований по указанным ниже договорам. Делаю так //Получим из макета обзац, который будет выводиться столько раз, сколько строк в ТЧ документа ТабЧасть = ОбъектВорд.Range(ОбъектВорд.Paragraphs.Item(7).Range.Start , ОбъектВорд.Paragraphs.Item(13).Range.End); ТабЧасть.InsertAfter(ТабЧасть); |
|||
1
KyMaPuK
24.04.13
✎
12:01
|
Увольняйся!!!
|
|||
2
KyMaPuK
24.04.13
✎
12:04
|
Спроси у Архангела
|
|||
3
fantomrik
24.04.13
✎
12:06
|
(0) http://s2.ipicture.ru/uploads/20130424/S0S2TqTn.jpg
Выделенный текст - оригинал, ниже так как вставилось. А как вставить 1 в 1? |
|||
4
fantomrik
24.04.13
✎
17:16
|
Ап
|
|||
5
fantomrik
25.04.13
✎
15:02
|
Победа и новый бой (:
По прошлому вопросу решилось так: //Получим из макета обзац, который будет выводиться столько раз, сколько строк в ТЧ документа ВыделенныйФрагментВорд = ОбъектВорд.Range(ОбъектВорд.Paragraphs.Item(8).Range.Start , ОбъектВорд.Paragraphs.Item(14).Range.End); ВыделенныйФрагментВорд.Copy(); //Передвинем курсор на 2 обзаца ВыделенныйФрагментВорд.Move(4,2); //Вставим скопированную ранее повторяющуюся часть текста из макета ВыделенныйФрагментВорд.Paste(); |
|||
6
fantomrik
25.04.13
✎
15:04
|
Теперь пытаюсь в цикле выводить фрагмент и заменять заданные параметры:
Пока ТабличнаяЧасть.Следующий() Цикл КоличествоСтрокТЧ = КоличествоСтрокТЧ + 1; НомерСтроки = "" + ТабличнаяЧасть.НомерСтроки; ДатаДоговора = "" + Формат(ТабличнаяЧасть.ДатаДоговора, "ДФ=dd.MM.yyyy"); НомерДоговора = "" + ТабличнаяЧасть.НомерДоговора; СуммаТЧ = "" + ТабличнаяЧасть.СуммаТЧ; НаименованиеДоговора = "" + ТабличнаяЧасть.НаименованиеДоговора; ДолжностьКонтЛицКонтр = "" + ТабличнаяЧасть.ДолжностьКонтЛицКонтр; ФИОКонтЛицКонтр = "" + ТабличнаяЧасть.ФИОКонтЛицКонтр; УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), ДолжностьКонтЛицКонтр, 2, , ДолжностьКонтЛицКонтр); УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), ФИОКонтЛицКонтр, 2, , ФИОКонтЛицКонтр); Замена = Документ.Content.Find; Замена.Execute("[НомерСтроки]", , , , , , , , , НомерСтроки, 2); Замена.Execute("[ДатаДоговора]", , , , , , , , , ДатаДоговора, 2); Замена.Execute("[НомерДоговора]", , , , , , , , , НомерДоговора, 2); Замена.Execute("[СуммаТЧ]", , , , , , , , , СуммаТЧ, 2); Замена.Execute("[НаименованиеДоговора]", , , , , , , , , НаименованиеДоговора, 2); Замена.Execute("[ДолжностьКонтЛицКонтр]", , , , , , , , , ДолжностьКонтЛицКонтр, 2); Замена.Execute("[ФИОКонтЛицКонтр]", , , , , , , , , ФИОКонтЛицКонтр, 2); Если КоличествоСтрокТЧ > 1 Тогда //Передвинем курсор на 2 обзаца ВыделенныйФрагментВорд.Move(4,2); //Вставим скопированную ранее повторяющуюся часть текста из макета ВыделенныйФрагментВорд.Paste(); КонецЕсли; КонецЦикла; Фрагмент выводится но параметры не заменяются. Может кто подсказать, в чем дело? |
|||
7
fantomrik
25.04.13
✎
15:06
|
Думаю загвоздка где то в Замена = Документ.Content.Find; . Изначально получаю док, заменяю в нем метки, далее в док добавляется еще кусок с такими же метками. По идее нужно еще раз получить доку (Замена = Документ.Content.Find;) и заменить эти метки на новые параметры.. Но не работает.
|
|||
8
dk
25.04.13
✎
15:25
|
сначала скопируй, потом меняй и вставляй
|
|||
9
Ashtray
25.04.13
✎
15:28
|
Содержимое.Find.Execute("[НОМЕРДОГОВОРА]",0,0,,,,,,,СсылкаНаОбъект.НомерДоговора,2);
|
|||
10
fantomrik
25.04.13
✎
15:35
|
(8) Точно логическая ошибка была, с начало нужно было проверить на нужность добавления фрагмента и добавления его в случае необходимости а потом поиск и замена. Благодарю! Всем спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |