Reporting services 值表达式错误:“0”;[BC30456]';RdlObjectModel';不是';报告服务&x27;

Reporting services 值表达式错误:“0”;[BC30456]';RdlObjectModel';不是';报告服务&x27;,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,偶然发现一个模糊的问题。发布此消息是因为我对堆栈溢出的搜索没有找到我的答案。希望这能帮助其他人 问题: 我的reporting services报告将进行编译,但在运行时会出现以下错误: [BC30456]“RdlObjectModel”不是“Reporting Services”的成员 这是在我将整个tablix从一份报告复制/粘贴到另一份报告之后发生的。 在我撤销更改并删除tablix后,它再次工作。 tablix I'm copy/pasting的原始报告工作正常。找到了此错误报告,它准确

偶然发现一个模糊的问题。发布此消息是因为我对堆栈溢出的搜索没有找到我的答案。希望这能帮助其他人

问题: 我的reporting services报告将进行编译,但在运行时会出现以下错误:

[BC30456]“RdlObjectModel”不是“Reporting Services”的成员

这是在我将整个tablix从一份报告复制/粘贴到另一份报告之后发生的。
在我撤销更改并删除tablix后,它再次工作。

tablix I'm copy/pasting的原始报告工作正常。

找到了此错误报告,它准确地解释了我遇到的问题:

以上概述:当您将reporting services表达式从一个地方复制/粘贴到另一个地方(我复制了一个完整的tablix,其中包含表达式)时,该表达式的所有部分都会扩展到其全名。复制/粘贴包含“Cstr()”的表达式时,存在一个特定于的错误。它获取的全名解析不正确

幸运的是,这很容易修复,即使您的报告中有大量这样的表达式。 --转到查看>代码 查找“RdlObjectModel”或“Cstr”。您正在寻找类似以下内容:

Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.Cstr([your expression here])
Cstr([your expression here])
-删除从“Microsoft”到“Cstr”的所有内容,使其看起来像这样:

Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.Cstr([your expression here])
Cstr([your expression here])

-保存。实际上,您已经撤销了Reporting services在复制/粘贴表达式时所做的“有益”尝试

我刚刚遇到了一个类似的问题,但它与另一个转换函数-CDEC有关。我的猜测是,使用转换组中的任何函数以及其他函数都会出现类似的问题

我自己找到了答案,删除了愚蠢的编辑器添加的Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.。显然,它在复制任何其他对象时添加了完全限定的愚蠢的dotNET符号


不幸的是,微软的那些混蛋已经将这个错误标记为“永远无法修复”(就像大多数微软的错误一样)。

如果有人偶然发现这个问题,我通过将数据集中的字段从fieldname重命名为fieldname1来修复这个问题,然后在字段的表达式中反映出来。

在将包含表达式的表复制到同一个报表中时,我遇到了同样的问题。这个答案解决了问题。非常感谢!谢谢,您节省了我的时间。此问题和解决方案已在RB2014中为“CDec”转载。有人知道它是否发生在RB2008吗?Cdbl也有同样的问题,这个修复程序解决了它。