Hướng dẫn Binding Extra Report với nhiều Datasource

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