2012-12-19 55 views
0

我有一个List<Customer>这是一个表中的linq对象。我想通过遍历此列表并将PDF写入光盘来为每位客户生成一封信。Linq对水晶报告

我想使用Crystal Reports,在数据库专家中我选择了.Net Objects并选择了我的Linq.Customer对象作为源码。这显示所有我的领域如预期,我可以创建报告罚款。

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

这是我的代码

public void GenerateLetters(List<Customer> customers){ 

     foreach(Customer cust in customers){ 

      this.Generate(cust); 

     } 

} 

其中生成()是:

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(); 


} 

我在得到异常设置数据源,有没有人有任何想法?

+0

哪个异常的类型? –

+0

@JanP。 DataSourceException - 数据源对象无效。 – CR41G14

+0

我对Crystal不是很熟悉,但是尝试通过'List '作为数据源:'letter.SetDataSource(new List (){cust});' –

回答

1

我不是水晶很熟悉,但试图通过一个List<Customer>作为数据源:

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