SSRS 自定义代码循环

SSRS Custom Code Loop

你们谁能解释一下这里的循环 (For, While) 是如何工作的

A      B
Apple  13
Grape  5
Orange 16  

我已经写了这段代码,但它在这里不起作用。

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

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

请您也回答这个问题。

我有一个矩阵,其文本框包含 3 个值,如果值小于 5,如何计算 Q27_A_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))

是的,我理解你的 Sum 函数执行此操作的观点。使用 Sum 函数很容易实现这一点。但是我有一份包含 5000 多个矩阵框的巨型报告,我需要在上面申请。所以只想确认自定义代码在这里是否有效,以及这段代码有什么问题。

Public 函数 SafeConvert(ByVal num As String) As String

将 S 调暗为整数

对于我作为整数 = 0 到 2

s += 数

下一个

Return s

结束函数

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