Sql server 背景色表达

Sql server 背景色表达,sql-server,visual-studio,reporting-services,ssrs-2012,Sql Server,Visual Studio,Reporting Services,Ssrs 2012,我创建了一个基本租金方差计算字段,该字段的工作原理如下: =IIF(Fields!CurrNrmRent.Value = 0 and Fields!PriorNrmRent.Value > 0, "Review", IIF(Fields!PriorNrmRent.Value = 0 and Fields!CurrNrmRent.Value > 0, "Review", IIF(Fields!CurrNrmRent.Value > 0 and Fields!PriorNrmRen

我创建了一个基本租金方差计算字段,该字段的工作原理如下:

=IIF(Fields!CurrNrmRent.Value = 0 and Fields!PriorNrmRent.Value > 0, "Review", IIF(Fields!PriorNrmRent.Value = 0 and Fields!CurrNrmRent.Value > 0, "Review", IIF(Fields!CurrNrmRent.Value > 0 and Fields!PriorNrmRent.Value > 0, (Fields!CurrNrmRent.Value-Fields!PriorNrmRent.Value)/IIF(Fields!PriorNrmRent.Value = 0, 1, Fields!PriorNrmRent.Value), nothing)))

我正在尝试创建一个背景色表达式,这样,如果基本租金方差>=15%或=0.15或字段!Base_Rent_Variance.Value这可能是您的数据类型的问题。您试图在同一字段中同时存储数字和字符串类型。我会使用转换来确保您拥有正确的数据类型。此表达式应处理不匹配的数据类型

=IIF(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15,
    "Red",
     IIF(TRIM(CStr(Fields!Base_Rent_Variance.Value)) = "Review","Red","White"))
根据下面的评论,让我们用switch语句来尝试这一条。下面的switch语句将对第一个表达式求值,如果为true,则设置单元格红色,检查第二个表达式,如果为true,则设置单元格红色,最后将所有内容设置为白色

=SWITCH(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15, "Red",
        InStr(CStr(Fields!Base_Rent_Variance.Value), "Review"),"Red",
        true, "White")

=开关(CDbl(字段!基本租金\差额.值)>=.15或CDbl(字段!基本租金\差额.值)您的数据类型可能存在问题。您试图在同一字段中存储数字和字符串类型。我将使用转换来确保您具有正确的数据类型。此表达式应处理不匹配的数据类型

=IIF(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15,
    "Red",
     IIF(TRIM(CStr(Fields!Base_Rent_Variance.Value)) = "Review","Red","White"))
根据下面的注释,让我们使用switch语句来尝试这一操作。下面的switch语句将计算第一个表达式,如果为true,则设置红色单元格,检查第二个表达式,如果为true,则设置红色单元格,最后将所有内容设置为白色

=SWITCH(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15, "Red",
        InStr(CStr(Fields!Base_Rent_Variance.Value), "Review"),"Red",
        true, "White")

=SWITCH(CDbl(Fields!Base\u Rent\u Variance.Value)>=0.15或CDbl(Fields!Base\u Rent\u Variance.Value)您也可以在颜色表达式中使用
me.Value

例如:

=iif(me.Value = "Review" OrElse me.Value >= 0.15 OrElse me.Value <= -0.15, "Red", "NoColor")

=iif(me.Value=“Review”OrElse me.Value>=0.15 OrElse me.Value您也可以在颜色表达式中使用
me.Value

例如:

=iif(me.Value = "Review" OrElse me.Value >= 0.15 OrElse me.Value <= -0.15, "Red", "NoColor")

=iif(me.Value=“Review”OrElse me.Value>=0.15 OrElse me.Value好吧,这也不起作用,我试着在SWITCH语句中使用它。谢谢你详细解释我的问题。我是一个业务终端用户,不是SQL程序员,试图自学。我已经走了很长一段路,但行话仍然让我感到困惑!@SSRSNewbie-Hmmm,似乎应该这样做。我只是补充了一条她的选项您可以尝试使用
InStr
在字段中查找“Review”。无需使用
TRIM
,并且在字段包含该搜索词时应该可以使用。我简化了表达式,并尝试了=IIF(Fields!Base\u Rent\u Variance.Value=“Review”,“Red”,“White”)。此表达式填充了所有“Review”红色的值。此外,我刚刚尝试了=IIF(CDbl(字段!基本租金\u方差.Value)>=.15或CDbl(字段!基本租金\u方差.Value)=.15或@SSRSNewbie使用
SWITCH
添加了另一个表达式。也许这个最新的表达式会起作用?好吧,这也不起作用,我尝试在SWITCH语句中使用它。感谢您详细解释我的问题。我是一个业务终端用户,不是SQL程序员,试图自学。我已经走了很长的路,但行话仍然很难我给我一个循环!@SSRSNewbie-Hmmm,似乎应该这样。我刚刚添加了另一个选项,您可以尝试使用
InStr
在字段中查找“Review”。无需
TRIM
,如果字段包含该搜索项,应该可以工作。我简化了表达式,并尝试了=IIF(Fields!Base\u Rent\u Variance.Value=“Review”、“Red”、“White”)。这个表达式用红色填充了所有的“Review”值。此外,我刚刚尝试了=IIF(Fields!Base\u Rent\u Variance.Value)>=.15或CDbl(Fields!Base\u Rent\u Variance.Value)=.15或@SSRSNewbie使用
开关添加了另一个表达式。也许这个最新的表达式会起作用?