Xin chào các bạn, bài viết hôm nay mình chia sẻ các bạn source code các in nhiều hóa đơn cùng một lúc trong Xtrareport Devexpress C#.
[DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
Kết quả khi chạy ứng dụng:Ở bài viết này mình demo 2 loại: List Object và Dataset.
FULL SOURCE CODE C#
using DevExpress.XtraPrinting.Preview; using DevExpress.XtraPrintingLinks; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevExpress.XtraPrinting; using DevExpress.XtraPrinting.Links; using DevExpress.XtraReports.UI; namespace PrintInvoice { public partial class MainForm : DevExpress.XtraEditors.XtraForm { public MainForm() { InitializeComponent(); } public List<Invoice> GetSampleData() { List<Invoice> invoices = new List<Invoice> { new Invoice { InvoiceNo = 1001, InvoiceDate = new DateTime(2023, 4, 15), CustomerName = "Nguyễn Thảo", TotalAmount = 1250.75m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product A", Quantity = 2, UnitPrice = 100.50m, TotalPrice = 201.00m }, new InvoiceItem { ItemName = "Product B", Quantity = 5, UnitPrice = 75.25m, TotalPrice = 376.25m }, new InvoiceItem { ItemName = "Product C", Quantity = 3, UnitPrice = 224.50m, TotalPrice = 673.50m } } }, new Invoice { InvoiceNo = 1002, InvoiceDate = new DateTime(2023, 4, 18), CustomerName = "Cái Trí Minh", TotalAmount = 875.40m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product D", Quantity = 1, UnitPrice = 375.60m, TotalPrice = 375.60m }, new InvoiceItem { ItemName = "Product E", Quantity = 4, UnitPrice = 124.95m, TotalPrice = 499.80m } } }, new Invoice { InvoiceNo = 1003, InvoiceDate = new DateTime(2023, 4, 20), CustomerName = "Võ Sơn Băng", TotalAmount = 1500.00m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product F", Quantity = 3, UnitPrice = 200.00m, TotalPrice = 600.00m }, new InvoiceItem { ItemName = "Product G", Quantity = 2, UnitPrice = 150.75m, TotalPrice = 301.50m }, new InvoiceItem { ItemName = "Product H", Quantity = 1, UnitPrice = 500.25m, TotalPrice = 500.25m } } }, new Invoice { InvoiceNo = 1004, InvoiceDate = new DateTime(2023, 4, 22), CustomerName = "Nguyễn Đình Tuyên", TotalAmount = 990.50m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product I", Quantity = 2, UnitPrice = 110.25m, TotalPrice = 220.50m }, new InvoiceItem { ItemName = "Product J", Quantity = 3, UnitPrice = 75.00m, TotalPrice = 225.00m }, new InvoiceItem { ItemName = "Product K", Quantity = 4, UnitPrice = 140.00m, TotalPrice = 560.00m } } }, new Invoice { InvoiceNo = 1005, InvoiceDate = new DateTime(2023, 4, 25), CustomerName = "Hoàng Thị Thảo", TotalAmount = 675.80m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product L", Quantity = 1, UnitPrice = 375.80m, TotalPrice = 375.80m }, new InvoiceItem { ItemName = "Product M", Quantity = 2, UnitPrice = 150.00m, TotalPrice = 300.00m } } }, new Invoice { InvoiceNo = 1006, InvoiceDate = new DateTime(2023, 4, 28), CustomerName = "Nguyễn Phương Nhi", TotalAmount = 1150.25m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product N", Quantity = 3, UnitPrice = 200.25m, TotalPrice = 600.75m }, new InvoiceItem { ItemName = "Product O", Quantity = 2, UnitPrice = 175.50m, TotalPrice = 351.00m }, new InvoiceItem { ItemName = "Product P", Quantity = 1, UnitPrice = 275.00m, TotalPrice = 275.00m } } }, new Invoice { InvoiceNo = 1007, InvoiceDate = new DateTime(2023, 5, 1), CustomerName = "Trịnh Quốc Khang", TotalAmount = 1450.60m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product Q", Quantity = 4, UnitPrice = 150.50m, TotalPrice = 602.00m }, new InvoiceItem { ItemName = "Product R", Quantity = 2, UnitPrice = 175.75m, TotalPrice = 351.50m }, new InvoiceItem { ItemName = "Product S", Quantity = 1, UnitPrice = 500.10m, TotalPrice = 500.10m } } }, new Invoice { InvoiceNo = 1008, InvoiceDate = new DateTime(2023, 5, 4), CustomerName = "Đinh Minh Thành", TotalAmount = 970.25m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product T", Quantity = 1, UnitPrice = 450.25m, TotalPrice = 450.25m }, new InvoiceItem { ItemName = "Product U", Quantity = 3, UnitPrice = 140.00m, TotalPrice = 420.00m }, new InvoiceItem { ItemName = "Product V", Quantity = 2, UnitPrice = 100.00m, TotalPrice = 200.00m } } }, new Invoice { InvoiceNo = 1009, InvoiceDate = new DateTime(2023, 5, 7), CustomerName = "Nguyễn Đình Tuyên", TotalAmount = 825.90m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product W", Quantity = 2, UnitPrice = 200.25m, TotalPrice = 400.50m }, new InvoiceItem { ItemName = "Product X", Quantity = 1, UnitPrice = 425.50m, TotalPrice = 425.50m } } }, new Invoice { InvoiceNo = 1010, InvoiceDate = new DateTime(2023, 5, 10), CustomerName = "Hoàng Dược Sư", TotalAmount = 550.40m, InvoiceItems = new List<InvoiceItem> { new InvoiceItem { ItemName = "Product Y", Quantity = 3, UnitPrice = 100.00m, TotalPrice = 300.00m }, new InvoiceItem { ItemName = "Product Z", Quantity = 2, UnitPrice = 75.20m, TotalPrice = 150.40m } } } }; return invoices; } public DataSet GetSampleDataSet() { DataSet dataSet = new DataSet(); DataTable masterTable = new DataTable("Invoice"); masterTable.Columns.Add("InvoiceNo", typeof(int)); masterTable.Columns.Add("InvoiceDate", typeof(DateTime)); masterTable.Columns.Add("CustomerName", typeof(string)); masterTable.Columns.Add("TotalAmount", typeof(decimal)); dataSet.Tables.Add(masterTable); DataTable detailTable = new DataTable("InvoiceItem"); detailTable.Columns.Add("InvoiceNo", typeof(int)); detailTable.Columns.Add("ItemName", typeof(string)); detailTable.Columns.Add("Quantity", typeof(int)); detailTable.Columns.Add("UnitPrice", typeof(decimal)); detailTable.Columns.Add("TotalPrice", typeof(decimal)); dataSet.Tables.Add(detailTable); dataSet.Relations.Add("Invoice_InvoiceItem", masterTable.Columns["InvoiceNo"], detailTable.Columns["InvoiceNo"]); List<Invoice> invoices = GetSampleData(); foreach (Invoice invoice in invoices) { DataRow masterRow = masterTable.NewRow(); masterRow["InvoiceNo"] = invoice.InvoiceNo; masterRow["InvoiceDate"] = invoice.InvoiceDate; masterRow["CustomerName"] = invoice.CustomerName; masterRow["TotalAmount"] = invoice.TotalAmount; masterTable.Rows.Add(masterRow); foreach (InvoiceItem item in invoice.InvoiceItems) { DataRow detailRow = detailTable.NewRow(); detailRow["InvoiceNo"] = invoice.InvoiceNo; detailRow["ItemName"] = item.ItemName; detailRow["Quantity"] = item.Quantity; detailRow["UnitPrice"] = item.UnitPrice; detailRow["TotalPrice"] = item.TotalPrice; detailTable.Rows.Add(detailRow); } } return dataSet; } private void simpleButton1_Click(object sender, EventArgs e) { var invoices = GetSampleData(); var report = new rptInvoice(); report.DataSource = invoices; var printTool = new DevExpress.XtraReports.UI.ReportPrintTool(report); printTool.ShowPreviewDialog(); } private void simpleButton2_Click(object sender, EventArgs e) { var invoices = GetSampleDataSet(); var report = new rptInvoiceDataSet(); report.DataSource = invoices; var printTool = new DevExpress.XtraReports.UI.ReportPrintTool(report); printTool.ShowPreviewDialog(); } } public class Invoice { public int InvoiceNo { get; set; } public DateTime InvoiceDate { get; set; } public string CustomerName { get; set; } public decimal TotalAmount { get; set; } public List<InvoiceItem> InvoiceItems { get; set; } } public class InvoiceItem { public string ItemName { get; set; } public int Quantity { get; set; } public decimal UnitPrice { get; set; } public decimal TotalPrice { get; set; } } }
DOWNLOAD FULL SOURCE CODE.
DOWNLOAD SOURCE CODE
Theo LapTrinhVB.Net
No comments:
Post a Comment