Макросы Word

Обсуждение Stimulsoft Reports.NET
Ответить
avs
Сообщения: 14
Зарегистрирован: 28 май 2014, 16:20

Макросы Word

Сообщение avs »

Доброго времени суток!
Стоит задача при формировании документа в Word. При этом, согласно правилам оформления документов, подписи в конце документа не должны разрываться переносом на следующую страницу. Если подписи не помещаются в конце страницы, то они долны быть перемещены на следующую страницу вместе с двумя предыдущими строками документа.
В Word эту задачу можно решить макросом.

Как такое реализовать в StimulSoft?

Примеры документов прикладываю.
Вложения
report (некорректно, подписи разрываются).docx
некорректный
(13.65 КБ) 164 скачивания
report (некорректно, подписи на отдельном листе).docx
некорректный
(13.95 КБ) 140 скачиваний
report (корректно).docx
корректный
(14.24 КБ) 158 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Макросы Word

Сообщение HighAley »

Здравствуйте.

Вашу задачу можно попробовать решить с помощью двойного прохода(свойство отчёта Nubmer of Pass).
В первый проход строить отчёт и смотреть как переносятся подписи. Во втором проходе можно ставить принудительный разрыв страницы в нужном месте.
К сожалению, мы не видим вашего шаблона и не можем дать более подробных рекомендаций.

Спасибо.
avs
Сообщения: 14
Зарегистрирован: 28 май 2014, 16:20

Re: Макросы Word

Сообщение avs »

Приятно, что решение возможно. Приложил шаблон. Порошу дать более подробные рекомендации.
Вложения
ПРИКАЗ.mrt
(332.06 КБ) 302 скачивания
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Макросы Word

Сообщение HighAley »

Здравствуйте.

С сожалению, мы не можем воспроизвести вашу ситуацию из-за отсутствия данных.
Как мы понимает вам необходимо перенести несколько строк бэнда DataПредоставляемыеДокументы.

Для этого вы можете сохранить количество экземпляров бэнда с помощью DataПредоставляемыеДокументы.Count.
Узнать на какой странице отображается последний бэнд можно в событии AfterPrint.
Таким же образом можно узнать на какой странице отрисован ReportSummaryBand1.

После чего на втором проходе вы можете принудительно вставить разрыв страницы с помощью Engine.NewPage().

Для того, чтобы узнать какой сейчас проход можете использовать переменные IsFirstPass и IsSecondPass.

Спасибо.
avs
Сообщения: 14
Зарегистрирован: 28 май 2014, 16:20

Re: Макросы Word

Сообщение avs »

Спасибо! Попробую реализовать
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Макросы Word

Сообщение HighAley »

Здравствуйте.

Мы всегда рады помочь.

Спасибо.
Ответить