SSRS----报表表达式、参数、变量使用

--在做点击流数据分析的过程中,有这样一种需求,参数选项可以设置不同度量,方法如下:

--设定度量参数(下拉框)

=IIf(Parameters!量值.Value < 2,Sum(Fields!咨询量.Value),Sum(Fields!预约量.Value))
=Switch(Parameters!量值.Value = 1, Sum(Fields!展现量.Value), 
        Parameters!量值.Value = 2, Sum(Fields!点击量.Value), 
        Parameters!量值.Value = 3, Sum(Fields!消费.Value), 
        Parameters!量值.Value = 4, Sum(Fields!咨询量.Value),
        Parameters!量值.Value = 5, Sum(Fields!有效咨询量.Value), 
        Parameters!量值.Value = 6, Sum(Fields!资源量.Value), 
        Parameters!量值.Value = 7, Sum(Fields!预约量.Value))


--设定度量参数(标题随参数下拉框的选项而变动)
=Switch(Parameters!量值.Value = 1, "展现量", 
        Parameters!量值.Value = 2, "点击量", 
        Parameters!量值.Value = 3, "消费", 
        Parameters!量值.Value = 4, "咨询量",
        Parameters!量值.Value = 5, "有效咨询量", 
        Parameters!量值.Value = 6, "资源量", 
        Parameters!量值.Value = 7, "预约量")

--在报表的表达式中需要多次使用某个复杂计算时,需要创建一个变量:

--打开“报表属性”对话框,单击“变量”,然后输入名称和值:

--在表达式中引用变量XXX:

=Variables!XXX.Value


--当表格需要美观,隔行显示不同颜色时:

--设置Table/Matrix隔行不同背景色:
 
Table BackgroundColor表达式:
=IIf(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
=IIf(RunningValue(Fields!XXX.Value,CountDistinct, Nothing) Mod 2 = 0,"LightBlue","White")

--该值大于某个数,返回“Red”;否则返回“Black”

-- 用于控制报表项中的文本框的 Color 属性:

=IIF(DateDiff("d",Fields!XXXDate.Value, Now())>7,"Red","Blue")

--返回三个值中的一个,根据文本框中的值更改背景色

=IIF(Fields!XXX.Value >= 10, "Green", IIF(Fields!XXX.Value >= 1, "Blue", "Red"))

=Switch(Fields!XXX.Value >= 10, "Green", 
        Fields!XXX.Value >= 1, "Blue", 
        Fields!XXX.Value = 1, "Yellow", 
        Fields!XXX.Value <= 0, "Red",)


--添加的计算字段除数为0 处理方法:

=iif(B=0, 0, A / iif(B=0, 1, B))

--报表当当中嵌入代码,可以自定义函数

--打开“报表属性”对话框,单击“代码”,然后输入:

public  function divide(x as double, y as double) as double
    if  y=0.0  then
    return 0.0
    else
    return x/y
    end if
    end function
--然后在表达式当中引用
=Code.divide(Sum(Fields!消费.Value),Sum(Fields!点击量.Value))

--日期函数表达式:
--取昨天日期:
=DateAdd("d",-1,Today())
--取上月今天日期
=DateAdd("m",-1,Today())
=DateAdd(DateInterval.Month, -1, Today())
--取上一个小时日期
=DateAdd("h",-1,Today())
--取上年今天日期
=DateAdd("yyyy",-1,Today())
--取上月

=month(Fields!月份.Value)-1

--合并两个字段,分别位于同一文本框的不同行中:

=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value 

你可能感兴趣的:(SSRS----报表表达式、参数、变量使用)