Reporting services SSRS:报表生成器:计算文本框中的条件格式

Reporting services SSRS:报表生成器:计算文本框中的条件格式,reporting-services,reportbuilder,Reporting Services,Reportbuilder,我知道您可以对报表生成器中的字段应用条件格式: 上面页面上的示例给出了在属性框颜色中设置表达式的示例: =IIF(Fields!Profit.Value < 0, "Red", "Black") =IIF(字段!利润值1,“红色”,“465678”)

我知道您可以对报表生成器中的字段应用条件格式:

上面页面上的示例给出了在属性框颜色中设置表达式的示例:

=IIF(Fields!Profit.Value < 0, "Red", "Black")
=IIF(字段!利润值<0,“红色”、“黑色”)
如果您知道字段的名称,这是一个很好的示例。但是,我希望在派生的字段中应用条件格式,我不确定字段的名称

例如,在我的SSRS报告中,我有一个矩阵,其中有两个文本框,提供两个数字。然后,我将计算结果放入第三个文本框中,该文本框引用了前两个:

在报表生成器中,我的计算仅显示为expr或expression。如何引用IF语句中的计算文本框进行条件格式设置


我曾尝试使用计算字段而不是文本框,但问题是矩阵想要求和百分比,因此计算文本框比计算字段更有效。

我认为首先必须在数据集中编写第三个文本框表达式添加“计算字段”

然后使用IF条件内的计算字段


根据范围的不同,您可以使用
ReportItems
引用文本框,因此,如果包含计算的文本框的名称为“百分比”,则您可以在另一个表达式中引用它,如下所示:

=ReportItems!Percentage.Value
如果您想对包含计算的文本框进行条件格式设置,也可以使用
Me.Value
,尽管我有时会得到一些奇怪的结果

此外,您还可以重复计算中使用的表达式以提供条件格式,例如,如果您希望更改包含可以使用表达式的百分比的文本框的文本颜色:

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

如果您在一个组中,则维护范围

你有两个选择。。。您只需使用表达式中另一个字段的相同计算即可获得颜色(与前面的答案相同)

在这种情况下,最好的解决方案是尝试在SQL上进行计算。由于性能问题,我建议这样做。一般来说,由于解析的原因,使用SQL引擎进行que计算会快得多


尝试将所有计算都保留在SQL中。

我尝试过,但由于这是一个百分比,矩阵希望将百分比相加。所以,这就是为什么我使用textbox并计算整个文本框的百分比。我用截图编辑了我的问题,试图澄清一下。我使用了你的第二个建议,效果非常好。被选为最佳答案,因为它有例子说明了一个优雅的解决方案提出的问题。谢谢以下是经验证有效的表达式:=IIF((总和(字段!总额收缩值)/总和(字段!总额销售收入详情值))*100>1,“红色”,“465678”)