用Reporting Service的自定义代码实现“累乘”功能

    技术2022-05-12  15

    SSRS2008中已经有很多系统提供的函数, 包括文本处理类(如Replace),数学计算类(如Atan),统计类(如Sum), 但笔者刚好需要一个类似Sum(累加)的函数--累乘, 找遍其函数库无果。上有人给出两种解决方案:1. 用SQL算好结果将参数传进来;2.通过SSRS的自定义代码, 实现“累乘”功能。由于我的报表中多处需要使用到累乘功能,故采用第2种方法, 具体如下:

    a. 打开自定义代码编辑框(报表属性--》代码);

    b.输入VB.NET的代码

    Public Dim sngColumnA As Single =1.0 Public Dim sngColumnB As Single =1.0 Public Function fnMultiPly(sngTemp As Single, ByRef sngFinal As Single) As Single sngFinal = sngFinal * sngTemp return sngTemp End Function

    c.假设需要累乘的栏位是ColumnA, 则将其表达式由:

    =Fields!ColumnA.Value

    改为:

    =Code.fnMultiPly(Sng(Fields!ColumnA.Value),Code.sngColumnA)

    d.将需要显示累乘结果的栏位, 表达式改为:

    =Code.sngColumnA

     

    需要注意的是, 显示结果的栏位需要放在所有累乘待累乘栏位的后面。

    做完后, 发现此方法相对于系统提供函数(比如Sum)还有一优点, 即可以灵活控制需要累乘的个体。具体怎么玩, 大家自己研究吧~


    最新回复(0)