質問

コードスニペット、チュートリアルリンク、またはオブジェクトのリストからMicrosoft Reportでレポートを作成する方法に関する情報を提供できますか?

次のDogクラスがあります:

namespace MyNS
{
   public class Dog
   {
      public int Legs { get; set; }
      public string Name { get; set; }
      public string Breed { get; set; }
   }
}

次に、Window Formsに、次のような MyNS.Dog オブジェクトの 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;
        }
    }

ソリューションを構築し、reportviewerコントロールをフォームに追加し、reportviewerスマートタグで、新しいレポートを作成してオブジェクトデータソースを選択し、クラスを展開して、Dogクラスをオブジェクトデータソースとしてチェックします。 reportviewerコントロールを再度選択し、新しく作成されたレポートを選択すると、DogBindingSourceが自動的に作成されます。フォームクラスで、クラスの先頭に次のコードを追加します。最初の行は、公開部分クラスForm1:Form {ステートメントの後、コンストラクターの前に使用できます

private DogBll _dogBll = new DogBll();

formload()で、次を追加します。

this.DogBindingSource.DataSource = _dogBll.GetDogs();

webform reportviewerの場合: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;
      }
    }
} 

レポートビューアーウィザードコントロールを追加し、作成したばかりの新しい関数GetDogs()としてデータソースを選択し、Dogクラスの3つのパブリックプロパティに基づいてレポートを定義します。フォームにオブジェクトデータソースを追加し、オブジェクトデータソースを使用するようにレポートをポイントします。最後に、オブジェクトデータソースでGetDogs()のパラメーターを設定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top