Условная видимость и разрывы страниц в службах SQL Server 2005 Reporting Services

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

Вопрос

Я знаю, что в SQL 2005 есть ошибка с условной видимостью и разрывами страниц, но мне интересно, придумал ли кто-нибудь обходной путь.

У меня есть таблица, которая имеет выражение условной видимости, и мне нужен разрыв страницы в конце таблицы.

  • Если я установлю для свойства PageBreakAtEnd значение true.Это игнорируется, несмотря ни на что.Уберите условие видимости, и это сработает.
  • Если я помещу таблицу внутри прямоугольника с условной видимостью в таблице и разрывом страницы в таблице.Тот же результат.Свойство разрыва страницы игнорируется.
  • Если я задам прямоугольнику свойство PageBreakAtEnd, а таблице - условие видимости, то я все равно получу разрыв страницы, даже если таблица не показана.

Есть еще идеи, что попробовать?Я почти дошел до того, что мне нужен отдельный отчет, а не условная видимость :(

Редактировать:@Джош: У этого те же проблемы.Если вторая таблица имеет условную видимость, она не работает.Если у него нет выражения видимости, то я постоянно получаю разрыв страницы.

@Эрик: Я действительно хотел, чтобы это был ответ, но, к сожалению, это не сработало.Когда выражение видимости принимает значение hidden , там, где были бы прямоугольники, остается большой пробел (с которым я могу смириться), а когда оно принимает значение visible, разрывы страниц по-прежнему не работают.

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

Решение

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

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

Редактировать:Когда я попробовал это, оказалось, что это не работает на вкладке предварительного просмотра в Visual Studio, но это сработало в режиме предварительного просмотра и при экспорте отчета в PDF.

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

Привет, это Бала самснай, Я тоже столкнулся с ошибкой того же типа.

Я сделал это, не используя Rectangle.

Вместо того, чтобы присваивать выражение полной (целой таблице)

выберите одну строку в этой вкладке, укажите выражение видимости.таким образом, повторите это для всех строк (например, Header, Detailed, Footer) и дайте выражение visibilty.

Таким образом, мы можем работать как с визуализацией, так и с разбиением по страницам одновременно

Бала самсани

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

Добавьте вторую (пустую) таблицу сразу после первой.После этого выполните разрыв страницы.

Я попробовал решение Bala Samsnai, и оно работает.Подробнее объясню позже.Решение Эрика Би об использовании двух прямоугольников вроде как сработало, когда я наткнулся на проблему, заключающуюся в том, что я не могу встроить таблицу в строку сведений другой таблицы.Так что это был облом.

Я последовал решению Bala в своем отчете, который содержит только одну таблицу и две группы внутри таблицы.Вместо того чтобы принимать и применять выражение для управления видимостью групп, я просто оставил его видимым и применил выражение условия видимости к скрытому свойству каждой строки.Щелкните правой кнопкой мыши на маркере строки в крайнем левом углу, и справа или слева появится всплывающее окно свойств (обычно в виде вкладки рядом с обозревателем решений).В группе видимости вы увидите свойство с именем "Hidden", которое будет иметь значение по умолчанию FALSE.нажмите на значение, и в выпадающем списке первым параметром будет выражение.Viola, и вы можете настроить свое условие, когда строка скрыта.На меня это подействовало как по волшебству.

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

Я боролся с этой проблемой довольно много часов, пока не обнаружил, что мой макет должен широкий чтобы поместился на принтере (формата А4).Я использовал дополнительную ширину для комментирования другого поля в текстовых полях с помощью Hidden= false, и в результате было сгенерировано в два раза больше страниц, чем необходимо для отображения пробелов.

Итак, возможно, вы также захотите проверить ширину страницы.

Одна вещь, которую я заметил, - это различия между отчетами, хотя я использовал один и тот же отчет в качестве "шаблона" в разное время в SSRS2005.Я имею в виду, что если вы откроете отчет, с которым у вас возникли проблемы, в программном редакторе (скажем, UltraEdit) и посмотрите на файл RDL, вы можете заметить небольшие изменения ширины и высоты страницы.Я заметил это и настроил отчет, с которым у меня возникли проблемы, на правильную ширину ожидаемого листа бумаги, и отчет отлично печатался как в формате PDF, так и на принтере, а также при предварительном просмотре.Просто мысль.

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