如何在RDL中使用自定义实用程序类?

发布于 2024-10-21 08:00:05 字数 147 浏览 0 评论 0原文

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

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

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

how do you use your own utility classes (those you use in application code) in Microsoft reporting in local mode? Is it even possible?

I have read some specification and there are some elements that indicate it can be done but it is not really clear on what to do.

Simply calling the code does not work even if I call it with namespace prefix.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

任性一次 2024-10-28 08:00:05

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

它有 2 个类:

  • 带有公共方法 string GetValue() 的公共 staticReportUtils.Foo
  • 公共类 Bar带有无参数构造函数和公共属性Id

Visual Studio 2008

报告 ->报告属性->参考文献 - 参考文献部分。

RDL xml

添加

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

Report 元素下。

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

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

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

Let's say you have an assembly fully qualified as ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null with your utility methods.

It has 2 classes:

  • public static class ReportUtils.Foo with a public method string GetValue()
  • public class Bar with a parameterless constructor and a public property Id.

Visual Studio 2008

Report -> Report Properties -> References - References section.

RDL xml

add

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

under the Report element.

You can also add instances of your classes that will get auto-constructed when you report is loaded:

Visual Studio 2008

same menu as before - Classes section.

RDL xml

add

<Classes>
    <Class>
        <ClassName>ReportUtils.Bar</ClassName>
        <InstanceName>barInstance</InstanceName>
    </Class>
</Classes>

under the Report element.

You can use your static utility method like this:

<Value>=ReportUtils.Foo.GetValue()</Value>

You can use your class instance like this:

<Value>=Code.barInstance.Id</Value>

You have to add your assembly as trusted to the LocalReport instance you are using:

localReport.AddTrustedCodeModuleInCurrentAppDomain("ReportUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");

You may have to copy your ReportUtils assembly to your VS2008\Common7\IDE\PrivateAssemblies directory so you can design your reports in Visual Studio's report designer without errors.

I have used this recently so this should be all the necessary steps to achieve your goal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文