0

Я использую SSRS 2008. У меня есть 3 разных группы выше моих данных отчета, которые вычисляются суммами. Я пытаюсь окрасить предел красным, если какая-либо сумма счетов (А) в дочерней группе выше предела (B).В SSRS, как мне сравнить значение родительского элемента отчета с элементами отчета в дочерней группе?

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

= IIF

enter image description here

Мое решение (ReportItems Invoice_DueDate.Value> ReportItems Limit.Value, "Красный", "Black"!): я решил использовать SQL, чтобы получить сумму от суммы счета, сгруппированной по сроку. Я тогда назвал это поле в родительской группе

+0

Я решил использовать SQL для получения суммы суммы счета, сгруппированной по сроку. Затем я вызвал это поле в родительской группе. –

ответ

0

Если я правильно понимаю ваш вопрос, то я думаю, что вы можете использовать

=IIF(MAX(ReportItems!Invoice_DueDate.Value) > ReportItems!Limit.Value,"Red","Black") 

Вам нужно какой-то агрегатной функции, такие как MAX() сказать SSRS, что сфера и о том, что должно быть сделано. (Например, если вы хотите, чтобы убедиться, что общий не превышает предел, вы будете использовать SUM(...)

+0

Я пробовал это решение, но получил ошибку. Выражение: = IIF (MAX (ReportItems Invoice_DueDate.Value)> ReportItems Limit.Value, "Красный", "Black"!) Ошибка: [rsAggregateReportItemInBody] Выражение цвета для TextRun «Limit.Paragraphs [ 0] .TextRuns [0] 'использует агрегатную функцию в элементе отчета. Агрегатные функции могут использоваться только для элементов отчета, содержащихся в верхних и нижних колонтитулах страниц. –

0

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

Например , скажем, у нас есть некоторые простые данные:

enter image description here

И простая таблица, основанная на этом, с группой, основанной на grp

0.

Здесь BackgroundColor свойства для value текстового поля в строке детализации устанавливается как:

=IIf(Fields!value.Value > Min(Fields!limit.Value, "Group1") 
    , "Red" 
    , Nothing) 

Это проверяет все строки в родительской группе текущей строки, а не только текущей строка. Это работает, как ожидалось:

enter image description here

Не зная ваши данные, невозможно сказать, если это будет работать в вашем случае, но мы надеемся, что это дает вам что-то рассмотреть.

Edit после комментариев

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

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

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

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

+0

Данные находятся в десятичном формате (1200000.00), но элементы отчета отформатированы для отображения суммы в долларах. Вот выражение, которое я пробовал: (! MAX (ReportItems Invoice_DueDate.Value, "table1_DueDate")> ReportItems Limit.Value, "Красный", "Black") = IIF Я попытался это решение и Я получаю следующую ошибку: \t [rsAggregateReportItemInBody] Выражение цвета для textrun 'Limit.Paragraphs [0] .TextRuns [0]' использует агрегатную функцию в элементе отчета. Агрегатные функции могут использоваться только для элементов отчета, содержащихся в верхних и нижних колонтитулах страниц. –

+0

На моем скриншоте группы настроены совсем немного, чем ваши. Спасибо вам за помощь. –

+0

В моем примере я использую 'Fields! ... 'ссылки, а не' ReportItems! ... ', поэтому вы можете использовать это выражение свойства. Если вы предоставите некоторые образцы данных, которые демонстрируют ваши требования, я могу привести некоторые дополнительные подробности. –

Смежные вопросы