亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在winform應用程序中生成產品收據?

如何在winform應用程序中生成產品收據?

C#
DIEA 2022-11-21 22:13:13
我是第一次使用 winform 應用程序,我有一個 gridview,其中包含用戶購買的產品列表。我有一個點擊打印按鈕,允許用戶生成如下所示的收據:所以在這里我很困惑我是否應該使用“winform default RDLC or Crystal Report”或者我是否應該生成 PDF 然后讓它作為收據打印出來,但我不確定 PDF 是否是生成收據的好選擇。對于 Crystal Report,我讀到我需要安裝它,而客戶端(將使用此桌面應用程序的用戶)必須安裝 Crystal Report,并且我不希望涉及 Crystal Report 的一些許可。另外,如果我使用 Crystal Report,那么我不確定是否可以生成完全高于收據(帶有表格格式)的收據,它會很復雜嗎?收據有點復雜所以有沒有更好的工具或方法,或者我應該如何生成上圖中顯示的收據?更新: 打印紙總尺寸為:7.50 厘米,用戶希望打印中心的所有內容。Discount = FinalAmount - MRP;客戶姓名、手機號碼、賬單號碼、支付方式值由用戶自己在表單上輸入。我有一個包含產品列表的 Excel 文件,對于每個產品,我都有ProductId、ProductName、MRP、CGST、SGST 等稅務信息。根據產品 ID 從 excel 文件填充 gridview 的代碼: using (OleDbConnection cnnxls = new OleDbConnection(strConn))                    using (OleDbDataAdapter oda = new OleDbDataAdapter(query, cnnxls))                    {                        oda.Fill(dtProductList);                        DataColumnCollection columns = dtProductList.Columns;                        if (!columns.Contains("FinalAmount"))                        {                            dtProductList.Columns.Add(new DataColumn() { ColumnName = "FinalAmount", DataType = typeof(decimal) });                        }                        if (!columns.Contains("Quantity"))                        {                            dtProductList.Columns.Add(new DataColumn() { ColumnName = "Quantity", DataType = typeof(int) });                        }                        DataRow lastRow = dtProductList.Rows[dtProductList.Rows.Count - 1];                        lastRow["FinalAmount"] = Convert.ToDecimal(lastRow["MRP"]);                        lastRow["Quantity"] = 1;                    }
查看完整描述

4 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

生成并打印收據

您可以使用任何報表設計器工具(如 RDLC Reports 或 Crystal Reports)生成報表。RDLC 報告已經足夠好了。您可以在顯示或不顯示打印對話框的情況下打印 RDLC 報告。您還可以輕松地手動或使用代碼導出 RDLC 報告。

如果出于任何原因您不想使用報告工具,作為另一種選擇,您可以考慮使用運行時 T4 模板輕松生成 HTML 報告。

使用 RDLC 報告,如何在單個單元格中顯示多個字段

您可以輕松地使用表達式在單個單元格中顯示多個值。此外,作為另一種選擇,您可以在單個行組中使用行,并在單個列中顯示不同的字段。

示例 1 - RDLC - 使用表達式在單個列中顯示多個字段

以下步驟向您展示了如何使用表達式在單個列中顯示多個字段。我假設您已經設置了數據源并且有ProductName,UnitPriceQuantity字段。然后,按照下列步驟操作:

  1. Tablefrom 工具箱放在報表設計圖面上。

  2. 在第一列,第一個數據行(不是標題行)中,右鍵單擊并選擇ProductNameimage )

  3. 選擇第二列的標題并鍵入UnitPrice/Quantity圖像

  4. 在第二列第一數據行中,右鍵單擊并選擇Expression。(圖片

  5. 在表達式窗口中,輸入需要的表達式,例如:

    = "UnitPrice: " & Fields!UnitPrice.Value.ToString() & System.Environment.NewLine & "Quantitye: " & Fields!Quantity.Value.ToString()

示例 2 - RDLC - 使用行組在單個列中顯示多個字段

以下步驟向您展示了如何在單個列中顯示多個字段。我假設您已經設置了數據源并且有ProductName,UnitPriceQuantity字段。然后,按照下列步驟操作:

  1. Tablefrom 工具箱放在報表設計圖面上。

  2. 在第一列,第一個數據行(不是標題行)中,右鍵單擊并選擇ProductNameimage )

  3. 選擇第二列的標題并鍵入UnitPrice/Quantity圖像

  4. 右鍵單擊第一個數據行的行標題并選擇Insert Row→ Inside Group - Below圖像

  5. 在第二列第一數據行中,右鍵單擊并選擇UnitPrice。(圖片

  6. 單擊[UnitPrice],然后按Home并鍵入UnitPrice:圖像

  7. 對組中的下一行中的數量執行相同的操作。

  8. 如果您需要組中的另一行,請重復步驟 3。您可以通過選擇它們并BorderStyle分別設置頂部、左側、底部和右側來設置單元格的邊框。


查看完整回答
反對 回復 2022-11-21
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

我之前使用的一種快速簡便的方法是生成一個html頁面,然后使用html2pdf庫將其轉換為pdf文件。

您也可以考慮這種方法,因為 RDLC 報告/Crystal 報告對您的情況來說可能有點矯枉過正。


查看完整回答
反對 回復 2022-11-21
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

RDLC 和水晶報表一樣強大。您可以選擇在消除許可成本方面接近的 rdlc。

使用 RDLC

數據 您需要在此處添加數據集或數據源到您將操縱的報告以滿足您想要的設計和數據。

設計 在設計上,您只需根據自己的喜好拖放控件。有一個挑戰,有時您在設計中看到的可能與您在最終輸出中看到的不同,因此您需要進行大量測試。

打印 您可以使用 rdlc 進行打印預覽或直接發送到 pdf 查看器。是一個例子。

結論 我認為如果您在報表上生成的數據很好,那么使用 rdlc 和 Crystal Reports 的設計和布局不會有太大問題。

更新根據提供的更多信息,我嘗試做一些可能接近您想要實現的事情。由于時間關系,我用過水晶報表和數據庫表來模擬。否則同樣可以使用 rdlc 實現。

我創建的示例表

http://img1.sycdn.imooc.com//637b87b50001a36606550184.jpg

這是來自數據庫的示例查詢和結果。我創建了可以由水晶報告容納的組。您可以使用相同的計算文本值來區分稅務信息和交易備忘錄。

http://img1.sycdn.imooc.com//637b87c80001b83613820655.jpg

這是調整設計后的最終外觀。頁面布局也可以根據您的喜好進行調整。

更新。對于 RDLC,我認為您需要為備忘錄數據和稅務信息添加數據集。如果接近,請查看下面的內容。我沒有進行預覽,因為有些組件我沒有安裝。

http://img1.sycdn.imooc.com//637b87d50001d87214010803.jpg

http://img1.sycdn.imooc.com//637b87da00014ef105250684.jpg

查看完整回答
反對 回復 2022-11-21
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

要在一個單元格中添加 3 列,您有兩種選擇:

1- 使用換行表達式

=Fields!MyField1.Value + System.Environment.NewLine + Fields!MyField2.Value

2- 在 rdlc 中使用類似子報表或分組的東西。

第一個選項接縫更容易


查看完整回答
反對 回復 2022-11-21
  • 4 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號