リストからのMicrosoft WinForm ReportViewer
-
03-07-2019 - |
質問
コードスニペット、チュートリアルリンク、またはオブジェクトのリストから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()のパラメーターを設定します。