Скрыть элемент отчета из печати / экспорта отчета rdlc

StackOverflow https://stackoverflow.com/questions/1069500

Вопрос

У меня есть RDLC с несколькими таблицами, и для каждой таблицы у меня есть элемент toggle TextBox, который скрывает соответствующую таблицу из отчета.Это работает отлично, однако я не хочу, чтобы эти текстовые поля были видны в распечатанных / экспортированных отчетах.На самом деле они предназначены для отключения содержимого в отчете, а не как само содержимое.Есть ли способ скрыть эти переключатели только для печатного макета и экспортированных версий отчета?

Я просмотрел все свойства текстового поля отчета и доступные выражения, которые я могу использовать для переключения видимости, но я не нашел ничего, что я мог бы использовать, чтобы скрыть элемент.Существует свойство DataElementOutput, которое, кажется, является тем, что мне нужно, но я считаю, что оно полезно только для XML.

Это было полезно?

Решение

Поздно, но есть одно решение.Вы можете добавить параметр в отчет для видимости элемента управления дескриптором и в событии печати изменить значение параметра, а затем обновить отчет (ReportViewer1.RefreshReport())

Другие советы

Этого можно достичь с помощью простого переключения видимости.Вы можете использовать RenderFormat.Переменную IsInteractive, чтобы определить, отображается ли отчет в программе просмотра отчетов или экспортируется.Ан Статья в MSDN объясняет это по поводу этой глобальной переменной,

Кроме того, логический флаг (=Globals!RenderFormat.IsInteractive) определяет, является ли расширение для рендеринга интерактивным средством рендеринга, т.е.не является форматом экспорта.Предварительный просмотр (GDI / Winforms) и просмотр HTML считаются интерактивными средствами визуализации.

Установите видимость текстового поля, которое вы хотите скрыть при экспорте, в следующем выражении

=NOT(Globals!RenderFormat.IsInteractive)

Обратитесь к следующему изображению (любезно предоставлено Блог.hoegaerden.be), чтобы узнать значения, присвоенные RenderFormat .Является интерактивным RenderFormat.IsInteractive

Вы можете сделать несколько хаков, чтобы попытаться достичь этого, например:- настройка текста и границы вашего текстового поля на белый цвет, чтобы они не были видимыми, но все равно были кликабельными - увеличьте размер отчета, превышающий размер печати (формат бумаги), и переместите текстовые поля из области печати (они будут напечатаны / экспортированы, но не на той же странице, что ваши таблицы). - поместите свои текстовые поля сверху и оформите их так, чтобы они выглядели как вкладки, которые позволяют просматривать разные виды (я знаю, я знаю, это не то, что вы просили :-))

Но лучший способ решить эту проблему - разделить ваш отчет на несколько отчетов - для каждой таблицы по одному отчету.

надеюсь, это поможет!

ваше здоровье,

Pero

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top