Hôm nay mình sẽ hướng dẫn các bạn cách sử dụng nhiều datasource trên một report.
Bước 1: Tạo DetailReport_Band bằng cách nhấp chuột phải vào Detail band và chọn như hình sau:
Bước 2: Thêm table vào Detail6 và đặt tên cho thuộc tính Name, để Binding các trường trong datasoure
Bước 3: Khởi tạo DataTable dùng để làm Datasource
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using System.Data;
using Data;
using System.Globalization;
namespace VanTaiToChau_Desktop.Report
{
public partial class report_ChiTietKhauTru : DevExpress.XtraReports.UI.XtraReport
{
public report_ChiTietKhauTru()
{
InitializeComponent();
}
DataTable dt_NoCuoc_di = new TiepNhanHangHoaData().getDSNoCuoc_Di(Common.Truyendulieu.SAVE_IDTRAM, Common.Truyendulieu.ID_TramDenKhauTru, Common.Truyendulieu.NgayKhauTru);
}
}
Bước 4: Tạo sự kiện BeforePrint cho report và thêm datasource cho DetailReport_Band
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using System.Data;
using Data;
using System.Globalization;
namespace VanTaiToChau_Desktop.Report
{
public partial class report_ChiTietKhauTru : DevExpress.XtraReports.UI.XtraReport
{
public report_ChiTietKhauTru()
{
InitializeComponent();
}
DataTable dt_NoCuoc_di = new TiepNhanHangHoaData().getDSNoCuoc_Di(Common.Truyendulieu.SAVE_IDTRAM, Common.Truyendulieu.ID_TramDenKhauTru, Common.Truyendulieu.NgayKhauTru);
private void report_ChiTietKhauTru_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
if (dt_NoCuoc_di.Rows.Count > 0)
{
DetailReport.DataSource = dt_NoCuoc_di;
ID_TiepNhanHangHoa.DataBindings.Add("Text", dt_NoCuoc_di, "ID_TiepNhanHangHoa");
SoTien.DataBindings.Add("Text", dt_NoCuoc_di, "TongTien", "{0:0,0}");
}
}
}
}
Lưu ý: Để có thể Binding nhiều datasoure trên report cần tạo nhiều DetailReport_Band và thực hiện tương tự các bước trên
Tác giả: Nguyễn Tuấn Khiêm