如何在本地模式的Microsoft报告中使用自己的实用程序类(在应用程序代码中使用的实用程序类)?它甚至可能吗?
我已经阅读了一些规范,并且有一些元素表明它可以完成但是不清楚该怎么做。
即使我用名称空间前缀调用它,简单地调用代码也不起作用。
答案 0 :(得分:3)
假设您使用实用程序方法将程序集完全限定为ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
。
它有两个类:
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的报表设计器中设计报表而不会出错。
我最近使用过这个,所以这应该是实现目标的所有必要步骤。