2013-12-10 153 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個數據表的我的數據集? –