Voy*_*ead 25 reporting-services ssrs-2008
偶然发现一个不起眼的问题.发布,因为我的堆栈溢出没有找到我的anwser.希望这会帮助别人.
问题:我的报告服务报告将编译,但在运行时提供错误的行...
[BC30456]'RdlObjectModel'不是'Reporting Services'的成员
这是在我将整个Tablix从一个报表复制/粘贴到另一个报表后发生的.在反转更改并再次删除Tablix之后,报告可以正常工作.Tablix我复制/粘贴的原始报告工作正常.
Voy*_*ead 51
找到这个错误报告,它准确地解释了我遇到的问题:
上述摘要:当您将报表服务表达式从一个地方复制/粘贴到另一个地方时(我复制了整个Tablix,其中包含表达式),该表达式的所有部分都将扩展为其全名.复制/粘贴包含"Cstr()"的表达式时,存在特定的错误.它获得无法正确解析的全名.
幸运的是,即使您的报告中有大量此类表达式,也很容易修复. - 转到"查看">"代码"查找"RdlObjectModel"或"Cstr".你正在寻找这样的东西:
Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.Cstr([your expression here])
Run Code Online (Sandbox Code Playgroud)
- 删除从"Microsoft"到"Cstr"的所有内容,如下所示:
Cstr([your expression here])
Run Code Online (Sandbox Code Playgroud)
-保存.当你首先复制/粘贴表达时,你基本上没有报告过什么"帮助"尝试做的报告服务.
我刚刚遇到了类似的问题,但它是与另一个转换函数 - CDEC 相关的。我的猜测是,使用转换组中的任何函数以及可能的其他函数都会出现类似的问题。
我自己解决了这个问题并删除了Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions。那个愚蠢的编辑补充道。显然,它在复制任何其他对象时添加了完全限定的愚蠢的 dotNET 表示法。
不幸的是,微软的那些混蛋已经将这个错误标记为“永远不会修复”(就像大多数微软错误一样)。