【发布时间】:2015-04-08 16:08:04
【问题描述】:
我正在使用几个自定义函数来执行 SSRS 中的一些统计信息。该代码是在 Visual Studio 2010 中构建和测试的,当我尝试预览报告时工作得很好。但是,当我尝试将报告部署到 SSRS 2008R2 时,出现错误:
There is an error on line 40 of custom code: [BC30201] Expression expected.
我到处寻找解决这个问题的方法,但我还没有找到。这是有问题的代码:
Public Function Avrg(c1 As Double, c2 As Double, c3 As Double, c4 As Double, c5 As Double, c6 As Double, c7 As Double, c8 As Double, NumQuarters As Integer) As Double
Dim AV_Data As Double() =
IIf(NumQuarters = 1, {c1, c2, c3, c4, c5},
IIf(NumQuarters = 2, {c1, c2, c3, c4, c5, c6},
IIf(NumQuarters = 3, {c1, c2, c3, c4, c5, c6, c7}, {c1, c2, c3, c4, c5, c6, c7, c8})))
Dim stats = STDEV_Ave(AV_Data)
Avrg = stats(2)
End Function
编辑:第 40 行显然是函数声明(呈现的第一行)......虽然我找不到任何问题。
该函数从报告中获取 8 个参数,并根据报告正在读取的未存档数据的季度数(可以从 1 到 4 变化),数组声明是不同的。该数组输入一个统计函数,该函数执行实际统计并返回所需的数字。在这个例子中,它是一个简单的平均值。
我更改了一次代码,最初它是一个 if-elseif-else 子句,但我阅读了几个需要用级联 IIF 替换它的地方,因为 SSRS 的 VB 编译器是 gimped。
任何帮助将不胜感激!
【问题讨论】:
-
我们无法分辨其中哪一行是
Line 40。 -
是代码块的第一行;我已经在问题中澄清了。谢谢!
-
调试该函数并查看它是哪一行。甚至可以是函数
STDEV_Ave -
这个函数我已经调试过了。正如我所说,报告在预览模式下运行良好,代码在我为测试它而制作的控制台应用程序中编译和运行完美。它只是没有部署我的 SSRS 报表服务器。
-
我在 Visual Studio 2008 中开发 SSRS 2008 R2 报告,并且我的自定义代码没有问题。我想知道这可能是版本兼容性问题吗?来自:stackoverflow.com/questions/12470969/…“只有 SQL Server 2012 支持在 Visual Studio 2010 中开发 SSRS 报表。”
标签: vb.net visual-studio-2010 reporting-services ssrs-2008-r2