Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表中的Microsoft WinForm ReportViewer_C#_Winforms_Reporting_Reportviewer - Fatal编程技术网

C# 列表中的Microsoft WinForm ReportViewer

C# 列表中的Microsoft WinForm ReportViewer,c#,winforms,reporting,reportviewer,C#,Winforms,Reporting,Reportviewer,任何人都可以提供代码片段、教程链接或有关如何从对象列表在Microsoft report中创建报表的信息吗 我有以下犬类: namespace MyNS { public class Dog { public int Legs { get; set; } public string Name { get; set; } public string Breed { get; set; } } } 然后,在窗口窗体中,我有一个ReportVie

任何人都可以提供代码片段、教程链接或有关如何从对象列表在Microsoft report中创建报表的信息吗

我有以下犬类:

namespace MyNS
{
   public class Dog
   {
      public int Legs { get; set; }
      public string Name { get; set; }
      public string Breed { get; set; }
   }
}
然后,在窗口窗体中,我有一个ReportViewer对象,我想从MyNS.Dog对象的列表中填充它,如下所示:

List<MyNS.Dog> MyDogs = new List<MyNS.Dog>();
// populate array here
// and use it as datasource for ReportViewer
var reportViewer = New ReportViewer();
var reportDataSource = New ReportDataSource("MyNS_Dog", MyDogs);
reportViewer.LocalReport.DataSources.Add(reportDataSource);
List MyDogs=new List();
//在此处填充数组
//并将其用作ReportViewer的数据源
有什么想法吗


谢谢

对于本地报告,您可以如下方式指定数据源:

List<MyNS.Dog> MyDogs = new List<MyNS.Dog>();
// populate array here
// and use it as datasource for ReportViewer
var reportViewer = New ReportViewer();
var reportDataSource = New ReportDataSource("MyNS_Dog", MyDogs);
reportViewer.LocalReport.DataSources.Add(reportDataSource);

对于winform reportviewer:包括以下代码

public class Dog
    {

        int legs;

        public int Legs
        {
            get { return legs; }
            set { legs = value; }
        }
        string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string breed;

        public string Breed
        {
            get { return breed; }
            set { breed = value; }
        }

    }

    public class DogBll
    {
        List<Dog> myDog;
        public DogBll()
        {
            myDog = new List<Dog>();
            myDog.Add(new Dog() { Legs = 10, Name = "mimi", Breed = "german" });
            myDog.Add(new Dog() { Legs = 4, Name = "momo", Breed = "english" });
        }
        public List<Dog> GetDogs()
        {
            return myDog;
        }
    }
在formload()上,添加:

对于webformreportviewer:您应该提供一个函数来返回Dog的列表,在这个类中,它应该包含一个默认构造函数

namespace MyNS 
{ 
   public class Dog 
   { 
      public int Legs { get; set; } 
      public string Name { get; set; } 
      public string Breed { get; set; } 
   }
   public class DogBll
   {
      public DogBll()
      {
      }
      public List<Dog> GetDogs(List<Dog> myDog)//make sure you set the parameter in object datasource
      {
          return myDog;
      }
    }
} 
名称空间MyNS
{ 
公家犬
{ 
公共整数{get;set;}
公共字符串名称{get;set;}
公共字符串{get;set;}
}
公开课
{
公犬
{
}
public List GetDogs(List myDog)//确保在对象数据源中设置了参数
{
归还我的狗;
}
}
} 

添加报表查看器向导控件,选择数据源作为刚创建的新函数GetDogs(),根据Dog类中的3个公共属性定义报表。在表单中添加对象数据源,将报表指向使用该对象数据源。最后,在对象数据源中设置GetDogs()的参数。

Awesome。我将尝试并让您知道。如果我希望列表中的文本框中包含这些项目,那么报表(RDLC)本身中这些文本框的参数是什么?这是一个救命稻草!在VS 2019中表现得很有魅力!一步一步的指导有很多。