2

您如何在本地模式下的 Microsoft 报告中使用您自己的实用程序类(您在应用程序代码中使用的那些)?甚至可能吗?

我已经阅读了一些规范,并且有一些元素表明它可以完成,但并不清楚该怎么做。

即使我使用命名空间前缀调用代码,简单地调用代码也不起作用。

4

1 回答 1

3

假设您有一个完全符合ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null您的实用程序方法的程序集。

它有2个类:

  • 具有公共方法的公共静态ReportUtils.Foostring GetValue()
  • Bar具有无参数构造函数和公共属性的公共类Id

视觉工作室 2008

Report -> Report Properties -> References-参考资料部分。

RDL xml

添加

<CodeModules>
    <CodeModule>ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</CodeModule>
</CodeModules>

Report元素下。

您还可以添加您的类的实例,这些实例将在您加载报告时自动构建:

视觉工作室 2008

与以前相同的菜单 -课程部分。

RDL xml

添加

<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 的报表设计器中设计您的报表而不会出错。

我最近使用过这个,所以这应该是实现你的目标的所有必要步骤。

于 2011-03-12T20:42:17.610 回答