在VS 2013中将代码类中的数据提供给Reporting Services设计器

mar*_*c_s 10 c# localreport dataset reporting-services

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

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

当我看到那个点击后出现的对话框Add DataSetDatasets的节点Report Data资源管理器窗口,我看到一吨的上市有我的课的-但不是我的数据提供程序类.

在此输入图像描述

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

teo*_*kot 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>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述