web-dev-qa-db-ja.com

c#winformでのレポートの印刷と作成

Delphi QuickReportで、レポートの作成と印刷に使用しました。 .NET C#でこれを行うために何を使用できますか?

プロジェクト(Winformsアプリ)にいくつかのレポート要素(MicrosoftレポートとCrystalレポート)を追加しましたが、データベースからのデータしか挿入できないことがわかりました。私が欲しいのは、実行時に作成されたオブジェクトの値を使用することです。これは、私のレポートが実際には領収書と請求書で構成されているためです。

私のニーズに使用するのに最適なツールはどれですか?

12
Andres

組み込みのレポートを使用して、データベースを必要とせずにニースレポートを生成できます。

データのクラスを作成します。私の場合は、personクラスを作成します。

class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
}
  • 次に、レポートウィザード([新しいアイテムの追加]-> [レポート]-> [レポートウィザード])を使用してレポートを追加します。

  • データソースとして、Objectを選択し、Personクラスをポイントします。 Datasource from a class

  • 詳細に必要な列を選択します。簡単にするために、すべての列を値にドラッグしています。

Report Wizard Fields

  • デフォルトを選択するだけでウィザードの残りの部分をウォークスルーすると、レポートが表示されます。

  • これで、ReportViewerコントロールをフォームに追加し、作成したばかりのレポートにレポートを設定できます。これにより、フォームにもPersonBindingSourceが作成されます。

  • PersonBindingSourceのデータをメモリ内のリストに設定します。

    BindingList<Person> myPeople = new BindingList<Person>();
    myPeople.Add(new Person() { FirstName = "John" , LastName = "Doe"});
    myPeople.Add(new Person() { FirstName = "Jane" , LastName = "Doe"});
    myPeople.Add(new Person() { FirstName = "Jerry" , LastName = "Smithers" });
    
    PersonBindingSource.DataSource = myPeople;
    reportViewer1.RefreshReport();
    this.reportViewer1.RefreshReport();
    

最終レポートは次のようになります。

Final Report

15
John Koerner

CrystalReportsは完璧に機能します。実際には、データベースなしでレポートを生成できます。 this プロジェクトをチェックしてください。そうすれば、あなたは始められるはずであり、あなたがやろうとしていることとまったく同じです。

あなたはこれがあなたを助けます!

1
FrostyFire