【问题标题】:How to use custom utility classes in RDL?如何在 RDL 中使用自定义实用程序类?
【发布时间】:2011-03-12 20:39:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# .net visual-studio-2008 rdl report-designer


    【解决方案1】:

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

    它有 2 个类:

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

    Visual Studio 2008

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

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

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

    【讨论】:

    • 我必须在 C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\ 中有我的程序集的副本
    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多