SSRS — выражение с использованием разных полей набора данных

У меня есть отчет с несколькими наборами данных. Различные поля из разных наборов данных используются в разных местах отчета.

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

Например, я хотел бы сделать что-то вроде этого:

=Fields.Dataset1.Field / Fields.Dataset2.Field

person Zolt    schedule 12.03.2012    source источник


Ответы (3)


Вы можете добиться этого, указав область ваших полей следующим образом:

=First(Fields!fieldName_A.Value, "Dataset1") / First(Fields!fieldName_B.Value, "Dataset2")

Предполагая, что A равно 10, а B равно 2, и они имеют числовой тип, вы получите результат 5 при отображении отчета.

Когда вы находитесь в построителе выражений, вы можете выбрать категорию: наборы данных, нужный набор данных выделен в разделе «Элемент:», а затем дважды щелкнуть нужное поле в разделе «Значение:», и оно появится в вашей строке выражения с добавленной областью.

Используя ту же логику, вы можете объединить два поля следующим образом:

=First(Fields!fieldName_A.Value, "Dataset1") & “ “ & First(Fields!fieldName_B.Value, "Dataset2")
person PerPlexSystem    schedule 13.03.2012
comment
Спасибо. Это именно то, что мне нужно. - person Zolt; 13.03.2012

Как пишет PerPlexSystem, если вы хотите сравнить только первое значение из набора данных со значениями из другого набора данных, вы можете использовать функцию First.

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

person Community    schedule 13.03.2012
comment
или если вы не можете мириться с проблемами, вызванными вложенными отчетами, такими как проблемы с выравниванием и нюансы различий SSRS в рендеринге, вы можете использовать метод =LookupSet() в выражениях фильтра. - person Rudy Hinojosa; 12.10.2017

Другой вариант — использовать параметр в качестве переменной. Это полезно, если вы хотите создать вычисляемое поле в одном из наборов данных. Это лучше всего применять, когда значение параметра поступает из набора данных с одной записью.

person user2340013    schedule 01.05.2013