Доброго времени суток!
Стоит задача при формировании документа в Word. При этом, согласно правилам оформления документов, подписи в конце документа не должны разрываться переносом на следующую страницу. Если подписи не помещаются в конце страницы, то они долны быть перемещены на следующую страницу вместе с двумя предыдущими строками документа.
В Word эту задачу можно решить макросом.
Как такое реализовать в StimulSoft?
Примеры документов прикладываю.
Макросы Word
Макросы Word
- Вложения
-
- report (некорректно, подписи разрываются).docx
- некорректный
- (13.65 КБ) 164 скачивания
-
- report (некорректно, подписи на отдельном листе).docx
- некорректный
- (13.95 КБ) 140 скачиваний
-
- report (корректно).docx
- корректный
- (14.24 КБ) 158 скачиваний
Re: Макросы Word
Здравствуйте.
Вашу задачу можно попробовать решить с помощью двойного прохода(свойство отчёта Nubmer of Pass).
В первый проход строить отчёт и смотреть как переносятся подписи. Во втором проходе можно ставить принудительный разрыв страницы в нужном месте.
К сожалению, мы не видим вашего шаблона и не можем дать более подробных рекомендаций.
Спасибо.
Вашу задачу можно попробовать решить с помощью двойного прохода(свойство отчёта Nubmer of Pass).
В первый проход строить отчёт и смотреть как переносятся подписи. Во втором проходе можно ставить принудительный разрыв страницы в нужном месте.
К сожалению, мы не видим вашего шаблона и не можем дать более подробных рекомендаций.
Спасибо.
Re: Макросы Word
Приятно, что решение возможно. Приложил шаблон. Порошу дать более подробные рекомендации.
- Вложения
-
- ПРИКАЗ.mrt
- (332.06 КБ) 302 скачивания
Re: Макросы Word
Здравствуйте.
С сожалению, мы не можем воспроизвести вашу ситуацию из-за отсутствия данных.
Как мы понимает вам необходимо перенести несколько строк бэнда DataПредоставляемыеДокументы.
Для этого вы можете сохранить количество экземпляров бэнда с помощью DataПредоставляемыеДокументы.Count.
Узнать на какой странице отображается последний бэнд можно в событии AfterPrint.
Таким же образом можно узнать на какой странице отрисован ReportSummaryBand1.
После чего на втором проходе вы можете принудительно вставить разрыв страницы с помощью Engine.NewPage().
Для того, чтобы узнать какой сейчас проход можете использовать переменные IsFirstPass и IsSecondPass.
Спасибо.
С сожалению, мы не можем воспроизвести вашу ситуацию из-за отсутствия данных.
Как мы понимает вам необходимо перенести несколько строк бэнда DataПредоставляемыеДокументы.
Для этого вы можете сохранить количество экземпляров бэнда с помощью DataПредоставляемыеДокументы.Count.
Узнать на какой странице отображается последний бэнд можно в событии AfterPrint.
Таким же образом можно узнать на какой странице отрисован ReportSummaryBand1.
После чего на втором проходе вы можете принудительно вставить разрыв страницы с помощью Engine.NewPage().
Для того, чтобы узнать какой сейчас проход можете использовать переменные IsFirstPass и IsSecondPass.
Спасибо.
Re: Макросы Word
Спасибо! Попробую реализовать
Re: Макросы Word
Здравствуйте.
Мы всегда рады помочь.
Спасибо.
Мы всегда рады помочь.
Спасибо.