Подтвердить что ты не робот

Как ограничить отчет RDLC для одной страницы в PDF?

У меня есть отчет RDLC, и я показываю его в Control Viewer в моем приложении переднего конца. Я прекрасно понимаю отчет.

Но проблема возникает, когда я пытаюсь экспортировать отчет в PDF (используя встроенную опцию).

Я печатаю отчет на 3 страницах, тогда как мой клиент хочет, чтобы он находился на одной странице. Я не могу понять причину этого, так как в моем средстве просмотра отчетов я вижу только одну страницу, но в формате PDF есть 3 страницы.

Можно ли что-то сделать, чтобы я мог контролировать размер отчета?

4b9b3361

Ответ 1

Ответ довольно похож на то, что сказал Дуган, но это не всегда только поля. Это довольно просто:

Когда вы редактируете файл rdlc в режиме разработки, сначала нажмите на пустую часть области BODY вашего дизайна. Нажмите F4, чтобы увидеть вкладку свойств. Здесь вы увидите свойство "Размер". Это можно расширить для ширины и высоты. Ширина, которую вы видите здесь, представляет собой ширину, которую требует тело вашего отчета в качестве области печати. Даже если у вас есть пустое пространство на всем протяжении, страница знает, что она должна содержать ее как область для печати. В каком-то смысле он сохраняет пространство. Что касается высоты, система обычно знает, что она может расти или уменьшаться по мере необходимости, если только вы не указали иначе в своих элементах управления. Таким образом, ширина, как правило, будет играть самую важную роль.

Затем нажмите на пустую область отчета (вне заголовка, тела и нижнего колонтитула, в основном серая область вокруг дизайна), затем нажмите F4, чтобы просмотреть панель свойств. В категории свойств "Макет" вы увидите 3 разных варианта: InteractiveSize, Поля, Размер страницы. Каждый из этих атрибутов размера может быть расширен, чтобы показать ширину и высоту. Атрибут Margins можно развернуть для левого/правого/верхнего/нижнего.

В принципе, экспорт pdf работает из PageSize (хотя я обычно стараюсь, чтобы Interactive и Page size были равны). Когда pdf файл отображается через встроенную функцию экспорта ReportViewer, ширина и высота каждой "страницы" в pdf будут определяться шириной и высотой в атрибуте PageSize отчета (вы можете переопределить это, если вы использовали свой собственный настраиваемый код для рендеринга pdf). Что касается полей, они указывают, сколько места ДОЛЖНО оставаться пустым и непечатаемым между областью печати, зарезервированной для вашего отчета, и краем страницы.

Другими словами: Ваша ширина тела отчета, плюс левая маржа отчета, плюс правая маржа отчета, ДОЛЖНА быть меньше или равна ширине страницы отчета.

Итак... если ваши поля слишком широкие, или если тело вашего отчета слишком велико, или если ширина PageSize слишком узкая, то полученный результат вынужден разбиться на несколько страниц, чтобы он соответствовал!

Например: если мое тело отчета имеет ширину 7,75 ", то левое поле составляет 0,5", мое правое поле - 0,5 ", а ширина, указанная в PageSize, равна 8.5", мой отчет всегда будет использовать 2 страницы для каждого 1 страницы данных. Ширина тела 7,75 "плюс 0,5" +0,5 "для полей составляет до 8,75", что больше, чем 8,5 "на моей странице. Таким образом, первая 7.5" (или около того) каждой страницы моего отчета тело будет показано на первой странице, а остальные будут разделены на следующую страницу. Это не будет сделано внутри средства просмотра отчетов, так как оно позволяет увеличить отчет за пределы размера страницы, просто добавив полосу прокрутки, но это будет досадно заметно в экспорте pdf. Чтобы сделать мой примерный отчет подходящим на 1 странице, я могу либо попытаться уменьшить объем моего отчета до 7,5 "или меньше, либо уменьшить левое и правое поля на 0,25" или больше (например, установите их на 0,3 дюйма для общего уменьшения на 0,4 дюйма), или я могу увеличить значение PageSize до более чем 8,75 ". Примечание. Acrobat Reader довольно умный и знает о различных размерах бумаги. Поэтому, в то время как произвольные PageSizes будут работать, обычно лучше использовать реальные размеры страниц. Таким образом, в моем последнем примере я предпочел бы установить, что PageSize имеет Width = 11 "и Height = 8.5", который является реальным размером в альбом в ландшафте! Adobe обычно это понимает и печатает правильно. Также обратите внимание: некоторые принтеры, особенно старые, имеют проблемы с печатью с полями менее 0,3 дюйма. Если вы хотите быть приятным для своих пользователей, лучше всего держать поля достаточно большими для этих старых принтеров;)

Надеюсь, это поможет.

Ответ 2

Всегда поддерживать ширину тела: 7,5 или менее

Левая, правая ширина поля меньше 0,5 Сначала задайте ширину поля → перейти в главное меню Отчеты- > Свойства отчета- > Макет- > изменить левое поле и правое поле

Общая ширина страницы: 8.5

Рамана

Ответ 3

Если кто-то еще сталкивается с этой проблемой и заканчивается здесь, это, скорее всего, проблема с вашими полями. Если поля заданы неправильно, вы часто будете получать "лишние" страницы, которые появляются при попытке печати, тогда как при просмотре документа все в порядке.

Ответ 4

В дополнение к просмотру вашей ширины, я нашел другие несвязанные вещи, которые могут привести к дополнительной пустой странице в PDF.

Если в tablix есть любое поле с переносом слов, это может вызвать его. Возможно, вы захотите уменьшить размер шрифта, если у вас есть длинные данные. Сделайте свойство размера шрифта равным примерно следующему:

  =iif(len(Fields!RepGroupName.Value) > 25, "6pt","8pt")

Еще одна вещь, которую вам, возможно, придется сделать. И это помогло мне, когда у меня не было видимой причины для дополнительной страницы. На странице свойств отчета установите:   ConsumeContainerWhitespace = true

Еще одно, что нужно посмотреть. Размер тела может расти, если вы не знаете его, внося изменения в макет. Возможно, вам придется снова сбить его.

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