12

我在 Delphi QuickReport 中使用过创建报告和打印。我可以在 .NET C# 中使用什么来执行此操作?

我在我的项目(Winforms 应用程序)中添加了一些报表元素(Microsoft 报表和 Crystal 报表),但我看到的是我只能从数据库中插入数据。我想要的是使用在运行时创建的对象的值。这是因为我的报告实际上由收据和发票组成。

哪个是满足我需求的最佳工具?

4

2 回答 2

18

您可以使用内置的报告来生成漂亮的报告而不需要数据库。

为您的数据创建一个类,在我的例子中,我将创建一个 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 类。来自类的数据源

  • 为您的详细信息选择您想要的列,为了简单起见,我只是将它们全部拖到值中。

报告向导字段

  • 完成向导的其余部分,只需选择默认值,然后您应该会看到您的报告。

  • 现在您可以将 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();
    

最终报告如下所示:

总结报告

于 2013-01-13T20:17:22.133 回答
1

Crystal Reports 将非常适合您。实际上,您可以在没有数据库的情况下生成报告。看看这个项目,它应该让你开始,就像你正在尝试做的一样。

你这对你有帮助!

于 2013-01-13T19:50:39.077 回答