2014-12-03 2 views
1

Доброе утро,SSRS: Report Builder: Условное форматирование в рассчитанном Text Box

Я знаю, что вы можете применить условное форматирование к полю в построитель отчетов: http://technet.microsoft.com/en-us/library/dd220466%28v=sql.100%29.aspx

Пример на странице выше, дает это Пример установки выражения в поле свойств Цвет: = IIF (Fields! Profit.Value < 0, «Красный», «Черный»)

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

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

enter image description here

В рамках отчетов мой расчет только появляется как выражение или выражение. Как ссылаться на вычисленное текстовое поле внутри оператора IF для условного форматирования?

Я попытался использовать такие вещи, как вычисленные поля вместо текстового поля, но проблема в том, что матрица хочет суммировать процент, и поэтому вычисленное текстовое поле работает лучше, чем вычисляемое поле.

ответ

3

В зависимости от объема вы можете ссылаться на текстовое поле с помощью ReportItems, поэтому если текстовое поле, содержащее ваш расчет имел название «Процент», то вы можете ссылаться на нее в другом выражении следующим образом:

=ReportItems!Percentage.Value 

Если вы хотите сделать условное форматирование в текстовом поле, которое содержит расчет, вы также можете использовать Me.Value, хотя иногда у меня были странные результаты.

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

=IIF((Fields.Numerator.Value/Fields.Denominator.Value) > 0.5, "Green", "Red") 
+0

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

+0

Вот выражение, которое проверено для работы: = IIF ((Sums! TOTAL_SHRINK.Value)/Sum (Поля! TOTAL_SALES_INCOME_DETAIL.Value)) * 100> 1, «Красный», «# 465678») – rynsmns

0

Я думаю, что сначала вы должны написать третье выражение в текстовом поле DataSet Добавить «вычисляемое поле»

затем использовать рассчитанное поле внутри IF условия.

enter image description here

+0

Я пробовал это, но поскольку это процентная доля, матрица хочет суммировать процент.Поэтому я использую текстовое поле и вычисляю процентное соотношение. – rynsmns

+0

Я отредактировал мой вопрос с скриншотом, чтобы попытаться его прояснить. – rynsmns

1

Если вы находитесь внутри группы, вы сохраняете область действия.

У вас есть два варианта ... Вы можете использовать те же вычисления из другого поля в выражении для цвета (как и предыдущие ответы).

Лучшим решением в этом случае является попытка сделать расчет на SQL. Я рекомендую это из-за проблем с производительностью. В общем случае вычисление que будет намного быстрее с использованием механизма SQL из-за разбора.

Попробуйте сохранить все вычисления в SQL.

+0

У вас есть некоторые хорошие предложения здесь. Благодарю. – rynsmns

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