10

我正在尝试创建一个本地 SQL Server Reporting Services 报告(.rdlc文件)并将此报告连接到我在代码中生成的一些数据集(无直接 SQL Server 连接)。

我创建了一个ReportDataProvider带有一些实例方法的类,这些实例方法返回IList<T>各种标准集 - 但我似乎无法找到一种方法让这些数据提供方法显示在 Visual Studio 2013 内的 Reporting Services 设计器中。

当我查看在资源管理器窗口中单击节点后出现的对话框Add DataSet时,我看到那里列出了很多我的类 - 但不是我的数据提供者类。DatasetsReport Data

在此处输入图像描述

有什么特别需要注意的吗(创建类static?用一些属性装饰它?)以便它显示在可能的数据源的下拉列表中?我尝试了各种方法,但未能找到任何方法让它正常工作......

4

3 回答 3

3

我做了一些研究,并尝试了不同的方法来添加类。不幸的是,您在这个设计器中看不到静态类。我尝试了不同的方法,但没有运气。

对于非静态类,本手册每次都适用于我,即使使用Interfaceslike IList,但我在这里不代表它:

  1. 确保带有 .rdlc 文件的项目中的数据报告类的命名空间可用。可以是你需要添加参考。
  2. 编写数据报表类并重建解决方案。
  3. 在 VS 中关闭并重新打开 .rdlc 文件。

我使用 VS 2013 Ultimate Update 2。

这是我的课:

using System.Collections.Generic;

namespace YourReportNamespace
{
    public class ReportClass
    {
        public List<string> TestReportData()
        {
            return new List<string>();
        }
        public static List<string> StaticTestReportData()
        {
            return new List<string>();
        }
    }


    public class ReportWithFieldsClass 
    {
        private List<string> Data = new List<string>();

        public List<string> TestReportData()
        {
            return Data;
        }

        public List<string> TestReportData2()
        {
            return Data;
        }

        public static List<string> StaticTestReportData()
        {
            return new List<string>();
        }
    }

    public static class ReportWithFieldsStaticClass //This class will not appear
    {
        private static List<string> Data = new List<string>();

        public static List<string> StaticTestReportDataFromField()
        {
            return Data;
        }
        public static List<string> StaticTestReportData()
        {
            return new List<string>();
        }
    }
}

这是我通过手册后在设计师那里得到的:

在此处输入图像描述

于 2014-12-06T11:48:38.163 回答
0

有类似的问题。发现如果设法获得没有错误的构建,那么我的命名空间似乎可以从数据源中进行选择。

于 2015-06-26T10:55:14.163 回答
0

我遇到了同样的问题,并发现了另一个可能很容易错过的案例。在我的情况下,包含 List 返回方法的类有一个带有必需参数的构造函数,并且它没有显示在 DataSource 下拉列表中。在我向我的类添加无参数构造函数并重建后,它现在是可见的!

这可能与 RDLC UI 分析合格方法的方式有关,它可能会尝试在该过程中实例化类。

于 2018-11-07T10:21:28.340 回答