SSRS自定义代码循环

时间:2017-01-10 20:44:19

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012 ssrs-tablix

你们中的任何一个人都可以解释一下循环(For,While)循环如何在这里工作

Public Function SafeConvert(ByVal num As String) As String

Dim S as Integer
For i as Integer = 0 to 2
  s += num
next
Return s

End Function

我已经编写了这段代码,但它在这里没有用。

Q27_A_1

SSRS不是添加每个数字,而是仅添加最后一个单元格16 * 3次并显示不正确的结果。

你也可以回答这个问题。

我有一个矩阵,其文本框包含3个值,如果值小于5,如何计算{{1}}的所有值的总和?

1

2 个答案:

答案 0 :(得分:1)

您无需使用任何自定义代码即可实现此目的。如果您确信所有字符串值都是实际数字,则可以在Tablix表达式中使用众多转换函数之一以及sum来将所有内容添加到一起。

对于整数:

=sum(cint(Fields!B.Value))

对于十进制值:

=sum(cdec(Fields!B.Value))

对于双重值:

=sum(cdbl(Fields!B.Value))

要使用这些表达式,您需要根据数据集向Tablix添加一个组,并将这些表达式放在Group Total文本框中。

要总结所有小于5的值,您需要在Tablix上创建一个组,并且可以使用sum函数。但是,在这种情况下,您需要使用0替换5或以上的任何值,因此它们不会添加到sum的总和中:

=sum(iif(Fields!Q27_A_1.Value < 5, Fields!Q27_A_1.Value, 0))

答案 1 :(得分:0)

是的,我理解你的Sum函数点来执行这个操作。通过使用Sum函数可以很容易地实现这一点。但我有一个超过5000矩阵盒的巨型报告,我需要申请。所以只想确认自定义代码是否在这里工作,并且在这行代码中有什么错误。

Public Function SafeConvert(ByVal num As String)As String

Dim S as Integer

对于i为Integer = 0到2

s + = num

返回s

结束功能

它正在做的只是添加最后一个单元格3次。我想在运行时添加单元格的所有值。