Дизайнер отчетов Выберите подходящее значение - PullRequest
0 голосов
/ 22 июня 2010

Я использую Visual Studio для создания отчета. У меня проблема с получением соответствующего значения в текстовое поле. Голый со мной, потому что я новичок в использовании конструктора отчетов.

У меня есть DataSet со следующими значениями:
InfoPathFormsWorkflow
AvgProcessTime_Sum
AvgProcessTime_Count

Этот набор данных будет содержать только 1 или 2 значения. Он заполняется формой InfoPath (все значения в наборе данных точны и работают).

InfoPathFormsWorkflow имеет значение «Закрыть» или «Открыть». В настоящее время у меня есть 2 текстовых поля с этими выражениями:

=IIF(Fields!InfoPathFormsWorkflow.Value = "Closed",Fields!AvgProcessTime_Sum.Value / Fields!AvgProcessTime_Count.Value,"No Value")

=IIF(Fields!InfoPathFormsWorkflow.Value = "Open",Fields!AvgProcessTime_Sum.Value / Fields!AvgProcessTime_Count.Value,"No Value")

Когда DataSet имеет только 1 значение (с «Open» или «Close»), это текстовое поле будет отображаться правильно, но когда DataSet имеет 2 значения («Close» и «Open»), тогда только первый один будет отображаться правильно, а второй - «Нет значения». Таким образом, если первая строка имеет InfoPathFormsWorkflow.value = "Close", то она будет работать, а "Open" - нет. Или наоборот.

Есть ли хитрость в выборе правильной записи в строке? Я прочитал немного об использовании параметров, но я не могу понять, как это работает. Любая помощь будет отличной! Это было передано мне после того, как другой работник провел здесь 80 часов. Я бы предпочел, чтобы это работало быстрее, чем это! Спасибо

1 Ответ

1 голос
/ 23 июня 2010

Это текстовые поля внутри или за пределами вашего Tablix?

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

Для закрытого текстового поля:

=IIF(First(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Closed", 
     First(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") / 
       First(Fields!AvgProcessTime_Count.Value, "YourDataSetName"),
     IIF(Last(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Closed",
         Last(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") /
           Last(Fields!AvgProcessTime_Count.Value, "YourDataSetName")
         "No Value"
     )
)

Аналогично для открытого текстового поля:

=IIF(First(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Open", 
     First(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") / 
       First(Fields!AvgProcessTime_Count.Value, "YourDataSetName"),
     IIF(Last(Fields!InfoPathFormsWorkflow.Value, "YourDataSetName") = "Open",
         Last(Fields!AvgProcessTime_Sum.Value, "YourDataSetName") /
           Last(Fields!AvgProcessTime_Count.Value, "YourDataSetName")
         "No Value"
     )
)

Если вы хотели чего-то другого, дайте мне знать. Службы Reporting Services иногда упрямо пытаются упростить ситуацию, но в конечном итоге большинство вещей можно заставить вести себя, как ожидается, с правильным (длинным) выражением.

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