Linq对象为Crystal报表

时间:2012-12-19 16:46:09

标签: c# .net crystal-reports datasource

我有一个List<Customer>,它是表中的linq对象。我希望通过遍历此列表并将PDF写入光盘来为每个客户生成一封信。

我想使用Crystal Reports,在数据库专家中我选择.Net Objects并选择我的Linq.Customer对象作为源。这会按预期显示我的所有字段,我可以很好地创建报告。

我收到异常“数据源无效”

这是我的代码

public void GenerateLetters(List<Customer> customers){

      foreach(Customer cust in customers){

             this.Generate(cust);

       }

}

Generate()的位置是:

public Generate(Customer cust){

            // this is the crystal reports letter
            Letter letter = new Letter();

            // set data source
            letter.SetDataSource(cust);    // exception thrown here

            // get the pdf stream
            pdfStream = (MemoryStream)letter.
                        ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            // copy to byte array
            fileBytes = pdfStream.ToArray();

            // clean up
            pdfStream.Close();
            letter.Dispose();


}

我在设置数据源时遇到异常,是否有人有任何想法?

1 个答案:

答案 0 :(得分:1)

我对Crystal不太熟悉,但尝试传递List<Customer>作为数据源:

letter.SetDataSource(new List<Customer>() { cust });