2013-12-10 119 views
-1

我有我从通过一个DataGridView创建水晶报表数据集/表

MakePayment makePayment = new MakePayment(); 

var Result = GridSellProducts.Rows.OfType<DataGridViewRow>().Select(
r => r.Cells.OfType<DataGridViewCell>().Select(c => c.Value).ToArray()); 

makePayment.gridElements = Result.ToList(); 

MakePayment的值来读取创建以下列表是另一种形式,我将有一个按钮,用于制作上的项目,并显示支付销售收据。我没有在Visual Studio中使用Crystal Reports,只有SAP从SQL表中读取数据。

如何创建一个水晶报表,显示List-ItemSalesList的itemname,quantity,unit price,tax,total等列表元素?

到目前为止,我已经试过这样:

foreach (var x in ItemSalesElements) 
       { 
        ItemSalesList.Add(new ItemSales <--from makePayment.gridElements 
        { 
         ItemName = x[0].ToString(), 
         Quantity = decimal.Parse(x[1].ToString()), 
         UnitPrice = decimal.Parse(x[2].ToString()), 
         Total = decimal.Parse(x[6].ToString()), 
        }); 
       } 

       ItemSalesData itemSalesData = new ItemSalesData(); 

       ItemSalesData.ItemSalesTableRow row = itemSalesData.ItemSalesTable.NewItemSalesTableRow(); 

       foreach (var x in ItemSalesList) 
       { 
        row.ItemName = x.ItemName; 
        row.Quantity = x.Quantity; 
        row.UnitPrice = x.UnitPrice; 
        row.Total = x.Total; 

        itemSalesData.ItemSalesTable.Rows.Add(row); 
       } 

       ItemSalesReport cr = new ItemSalesReport(); 
       cr.SetDataSource(itemSalesData); 
+0

我应该编辑还是在下面写一个答案? –

+0

当你需要改进它时,编辑你的问题总是一个好主意。 –

回答

1

您可以使用.NET类作为Crystal Reports中的数据源。当您添加Crystal Report时,它将为您提供ADO.Net或.Net对象作为数据源的选择。你会想选择.Net对象作为数据源。它应该列出项目中的所有类。您只需选择要使用的类并将其设置为数据源即可。该类的属性应该列出,并从那里你可以选择必要的领域为您的报告。 请注意,我没有试过这个,但从概念上说它应该可以工作。试试看,让我知道它是怎么回事。如果您遇到问题,我将不得不建立一个示例项目来测试它。

+0

感谢您的回复。我的数据不是来自任何数据库。我将如何使用上面的列表填充具有1个数据表的我的数据集? –