2010-03-08 5 views
7

У меня есть настраиваемый отчет rdlc, где пользователь может выбрать, какие столбцы показывать. Все столбцы включены в конструктор отчетов, и я использую параметры для скрытия/отображения столбцов по выбору пользователя. Отчет отображается корректно и отображает только выбранные столбцы, ОДНАКО, общая ширина отчета такая же, как если бы все столбцы были видны. Это означает, что отчет может иметь огромную пустую область справа от выбранных столбцов, что выглядит очень глупо.Как настроить общую ширину отчета rdlc при скрытии некоторых столбцов?

Итак, мой вопрос: существует ли способ динамически изменять ширину отчета во время выполнения, чтобы избежать большой глупой пустой области в отчете? Я попытался сделать это в дизайнере, назначив параметр ширине тела отчета .... но это не было разрешено. Ширина не может быть выражением какого-либо вида в дизайнере, допускается только фактическое значение.

Любые предложения?

ответ

0

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

Однако ширину КОНТЕЙНЕРА для отчета rdlc можно контролировать во время выполнения. Если вы разместите средство просмотра отчетов внутри панели управления, вы сможете достичь желаемого результата. Так как ваш пользовательский интерфейс позволяет пользователям решать, какие столбцы включать, вы должны иметь возможность привязывать значение ширины к каждому необязательному столбцу и суммировать их и соответственно изменять размер контейнера.

Помните, что если вы измените размер контейнера, проблема с пробелом внутри отчета просто превратится в проблему с пробелом в форме. Тем не менее плотная рамка вокруг отчета с пустым пространством за пределами этого кадра вполне может быть тем, что вы хотите.

НТН & Cheers,

ЦИК

+0

Вы можете отрегулировать ширину столбца, загрузив rdlc в объект XmlDocument и отрегулировав элемент «размер». Я делаю это все время, чтобы скрыть столбцы во время выполнения. – clamchoda

1

У меня есть обходной путь, который может быть глупо, но, по крайней мере, это работает для меня; , после завершения работы с конструктором отчетов rdlc закройте его, а затем откройте отчет rdlc с помощью редактора xml, а затем в теге <Report> сразу после тега <body>...</body> вы увидите тег <width>...</width>, который содержит ширину отчета, измените его значение на действительно небольшое значение (скажем <width>1in</width>), это должно сделать отчет без глупых пространств.

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

Я знаю его глупый раствор, но его глупо на стороне разработчика, чем на стороне клиента^_ ^.

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

1

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

Например, у меня есть столбцы «Имя» и «Скидка». Скидка может быть скрыта, и я должен изменить Name.Width на Name.Width + Discount.Width.

Я сделал новую колонку (называю ее «NameExt») справа от столбца «Имя» с той же шириной, что и Discount.Width. Объединенные ячейки столбца «Имя» и столбца «NameExt». Затем установите правило видимости для правила «Скидка» и «Обратное видимость» для «NameExt».

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

Смежные вопросы