Динамические отчеты с использованием SSRS - PullRequest
1 голос
/ 02 октября 2011

Позвольте мне объявить ... Я новичок в этом месте временно временно.

Проблема: Разработка сводного отчета о приложении с использованием SSRS 2008 (готовым продуктом должен быть файл RDL, который можно развернуть на сервере SSRS) для онлайнзаявка заполнена заявителем.

Немного предыстории: Заявитель заполняет онлайн-заявку с помощью нашего веб-приложения, где заполняет обязательные и дополнительные поля.Сводный отчет по приложению предоставляется заявителю, заполняющему заявку, в качестве резюме его приложения и должен отображать только поля, заполненные заявителем.

Пример:

Дай нам сказать, что Джон Смит живет вДобавить строку 1: 123 Any StreetДобавить строку 2: NullГород: какой-то городШтат: какой-то штат

А его супруга Джейн Смит живет вДобавить строку 1: 321 Любая другая улицаДобавить строку 2: кв. AГород: какой-то городState: Some State

Таким образом, в отчете нулевое поле (Добавить строку 2) должно отображаться не для Джона, а для Джейн.Когда я говорю «не отображается», это означает, что метка поля должна быть скрыта, а отчет должен корректировать интервал, чтобы в отчете не отображалась пропущенная пустая строка.

У нас есть около 1000 таких полей, на которые заявитель может или не может ответить.Таким образом, отчет должен быть общим и использовать как можно больше встроенных функций.

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

Я сделал простые отчеты, но я понятия не имею, как подойти к этой ситуации.Любая помощь будет отличной помощью.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

У меня была похожая ситуация, и я использовал этот подход в текстовом поле.Используя приведенный выше пример, у вас будет эта настройка для ваших полей в текстовом поле, с [] являющимися полями из набора данных:

Name: [first_name] [m_name] [last_name]
Add Line 1: [address_1]
[expression]City: [city_name]
State: [state_name]
Zip: [zip_code]

Обратите внимание, что между выражением и городом нет пробелов.Что произойдет, если город будет на своей текущей строке, когда [адрес_2] равен нулю, и переместится на следующую строку, когда есть адресная строка 2, используя это выражение:

=IIF(IsNothing(Fields!address_2.Value), "", 
“Add Line 2: “ & Fields!address_2.Value & VbCrLF)

Когда IFF равен true и[адрес_2] равен нулю, выражение напишет «» (ничего), а [город_имя] останется в той же строке.Если IFF имеет значение false и имеется [address_2], метка «Добавить строку 2» будет записана вместе со значением [address_2], а [city_name] будет перемещена на следующую строку с помощью «VbCrLf».Более надежный метод, который обрабатывает, если [address-2] имеет строку длины 0 или несколько пробелов, это выражение:

=IIF(IsNothing(Fields!address_2.Value) OR Len(Trim(Fields!address_2.Value)) < 1, "", 
“Add Line 2: “ & Fields!address_2.Value & VbCrLF)

Это останавливает странный двойной пробел, когда поле пустое, но не нулевое;что-то подобное работает отлично для отчеств.Надеюсь, это поможет вам или кому-то другому, читающему этот пост.

0 голосов
/ 12 октября 2011

Это было действительно просто ...

Допустим, у нас есть отчет в табличном формате с использованием прямоугольников и текстовых полей,

--------------------
|FIRST NAME : AAAA  |
|LAST NAME : BBBB   |
|PHONE: XXX-XXX-XXXX|
--------------------

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

=IsNothing(First(Fields!WorkPhoneNumber.Value, "DataSet1"))

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...