Элементы отчета, влияющие на позиции друг друга в SSRS 2008

У меня возникают проблемы с некоторыми элементами отчета, которые меняют позиции других позиций, когда они условно скрыты.

Я использую Reporting Services 2000 для печати меток цен на товары в формате PDF, а отчет состоит из одной таблицы с одной ячейкой для каждого элемента. Поля данных и другие элементы на ярлыке помещаются внутри одного прямоугольника. Из-за того, что требуется очень конкретный макет, некоторые элементы отчета перекрываются в дизайнере, чтобы правильно позиционировать отображаемый PDF файл.

Это отлично работает в течение нескольких лет, пока мы не перешли на SSRS 2008, и мне пришлось перенести отчет в новую версию.

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

После довольно многого поискового запроса я пришел к пониманию того, что SSRS 2008 пытается поддерживать относительное расстояние между элементами отчета, так что если элемент слева от другого изменяется в размере, элемент справа соответственно корректируется.

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

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

Итак, кто-нибудь знает способ "зафиксировать" позиции позиции отчета, чтобы на них не повлияли скрытие других элементов?

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

Будем очень благодарны за любые идеи.

Ответ 1

В примере сбоку вы можете поместить элемент управления, который может быть скрыт в прямоугольник, достаточно большой, чтобы удерживать оба; но затем поместите другой элемент управления, который должен оставаться в фиксированной позиции ЗАЯВЛЕНИЕМ прямоугольника (т.е. родителем этого элемента управления является отчет, а не прямоугольник).

Если этого недостаточно, а скрытые и не скрытые элементы используют один и тот же набор данных, вы можете (содрогаться) использовать гигантский элемент управления tablix с группировкой = 1 и правильным количеством строк и столбцов для управления макетом ( потому что вы можете вставлять прямоугольники внутри).

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

Ответ 2

Другой подход: создать прямоугольники, содержащие поля, которые вы хотите скрыть, затем поместить строку WHITE по всему дну (или верхней части) прямоугольника. Это сохраняет прямоугольник того же размера, даже если поля внутри него скрыты. Прямоугольник будет уменьшаться, если поля внутри него уменьшатся, но линия, охватывающая весь прямоугольник, не позволяет этому произойти.

Ответ 3

Не уверен, что это поможет кому-то еще, поскольку это довольно специфическое требование, но оно решило мой вариант проблемы с OP, поэтому здесь идет речь. Я разрабатывал отчет SSRS для печати этикеток (в моем случае Avery 5164), и пользователи хотели выбрать, какие метки на листе они будут печатать, поскольку они, возможно, уже использовали одну или две метки со страницы. Поскольку расположение печатных этикеток важно, мне нужно, чтобы они оставались на месте, даже если надписи на них были спрятаны. Моим решением было создать пустые прямоугольники того же размера, что и метка, и разместить их непосредственно поверх существующих прямоугольников. Даже если я скрою две, три, четыре и т.д. Этикетки, остальные останутся.