【发布时间】:2011-03-12 20:39:54
【问题描述】:
您如何在本地模式下的 Microsoft 报告中使用您自己的实用程序类(您在应用程序代码中使用的那些)?有可能吗?
我已经阅读了一些规范,并且有一些元素表明它可以完成,但不清楚具体要做什么。
即使我使用命名空间前缀调用代码,仅调用代码也不起作用。
【问题讨论】:
标签: c# .net visual-studio-2008 rdl report-designer
您如何在本地模式下的 Microsoft 报告中使用您自己的实用程序类(您在应用程序代码中使用的那些)?有可能吗?
我已经阅读了一些规范,并且有一些元素表明它可以完成,但不清楚具体要做什么。
即使我使用命名空间前缀调用代码,仅调用代码也不起作用。
【问题讨论】:
标签: c# .net visual-studio-2008 rdl report-designer
假设您有一个完全合格的程序集 ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 与您的实用程序方法。
它有 2 个类:
ReportUtils.Foo 带有公共方法string GetValue()
Bar 具有无参数构造函数和公共属性 Id。Report -> Report Properties -> References - 参考资料部分。
添加
<CodeModules>
<CodeModule>ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</CodeModule>
</CodeModules>
在Report 元素下。
您还可以添加您的类的实例,它们会在您的报告加载时自动构建:
与以前相同的菜单 - 类部分。
添加
<Classes>
<Class>
<ClassName>ReportUtils.Bar</ClassName>
<InstanceName>barInstance</InstanceName>
</Class>
</Classes>
在Report 元素下。
您可以像这样使用静态实用程序方法:
<Value>=ReportUtils.Foo.GetValue()</Value>
你可以像这样使用你的类实例:
<Value>=Code.barInstance.Id</Value>
您必须将您的程序集作为受信任的方式添加到您正在使用的 LocalReport 实例中:
localReport.AddTrustedCodeModuleInCurrentAppDomain("ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
您可能必须将您的 ReportUtils 程序集复制到您的 VS2008\Common7\IDE\PrivateAssemblies 目录中,这样您就可以在 Visual Studio 的报表设计器中设计您的报表而不会出错。
我最近使用了这个,所以这应该是实现你目标的所有必要步骤。
【讨论】: