- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
[DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
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#.
[DEVEPXRESS] How to print multi invoice in Xtrareport C#
Đầu tiên, các bạn thiết kế giao diện Report như hình bên dưới:
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.
Fullsource 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; }
}
}
Thanks for watching!
Bạn nào thao tác không thành công, có thể liên hệ mình thông tin bên dưới phần tác giả.