Как настроить общую ширину отчета rdlc, когда некоторые столбцы скрыты? - PullRequest
7 голосов
/ 09 марта 2010

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

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

Есть предложения?

Ответы [ 3 ]

1 голос
/ 18 июля 2014

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

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

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

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

1 голос
/ 27 августа 2014

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

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

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

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

0 голосов
/ 29 марта 2011

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

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

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

HTH & Cheers,

CEC

...