0
fantomrik
12.06.13
✎
10:27
|
Добрый день!
Возник такой вопрос. Есть макет в ворде "акт сверки взаимозачетов" . У него есть повторяющийся кусок - "номер по порядку, договор, сумма, номер счет-фактуры". Этот кусок будет копироваться и вставляться столько раз, сколько будет строк в ТЧ документа корректировка долга. Но задача усложнилась тем, что нужно сгруппировать счет-фактуры по договорам. То есть в табличной части 4 строки, но всего 2 договора и в печатную форму должно выводиться "номер по порядку, договор, сумма, номер счет-фактуры + НОМЕР ВТОРОЙ СФ" 2 раза, а не 4. Пока не возникло задачи группировать в печатной форме, повторяющийся кусок копировался и вставлялся в случае необходимости в цикле
//Получим из макета обзац, который будет выводиться столько раз, сколько строк в ТЧ документа
ВыделенныйФрагментВорд = ОбъектВорд.Range(ОбъектВорд.Paragraphs.Item(8).Range.Start,ОбъектВорд.Paragraphs.Item(14).Range.End);
ВыделенныйФрагментВорд.Copy();
.............
.............
Если КоличествоСтрокТЧ > 1 Тогда
//Передвинем курсор на 2 обзаца
ВыделенныйФрагментВорд.Move(4,2);
//Вставим скопированную ранее повторяющуюся часть текста из макета
ВыделенныйФрагментВорд.Paste();
КонецЕсли;
А возможно ли скопировать и держать в памяти 2 куска текста ворда(по мимо основного куска мне еще отдельно нужно хранить и выводить во вложенном цикле строку счет-фактуры, если требуется), или это не возможно так как делается на основе типового механизма ctrl+с и ctrl+v только программно?
|
|
1
Alterife
12.06.13
✎
10:43
|
Можно. У Office, начиная с версии 2000, есть возможность работать с несколькими объектами буфера обмена. По крайней мере, для пользователя. А значит, и методы автоматизации есть. Как именно - не знаю, не сталкивался, но уверен - MSDN поможет.
|
|