我通过阅读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是另一种形式,我将有一个按钮,用于支付物品并显示销售收据。我没有将Crystal Reports与Visual Studio一起使用,只有SAP从SQL表中读取数据。
如何创建一个水晶报告,显示List-ItemSalesList中的项目名称,数量,单价,税,总等列表元素?
到目前为止我已尝试过这个:
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 :(得分:1)
您可以将.Net类用作Crystal Reports的数据源。添加Crystal Report时,它将为您提供ADO.Net或.Net对象作为数据源的选择。您可能希望选择.Net对象作为数据源。它应该列出项目中的所有类。您只需选择要使用的类并将其设置为数据源。应列出类的属性,然后从中选择报告的必要字段。 请注意,我没有尝试过这个,但从概念上讲它应该可行。试一试,让我知道它是怎么回事。如果您遇到问题,我将不得不设置一个示例项目进行测试。