Report Viewer là gì ?
Report Viewer là một công cụ hỗ trợ tiện dụng trong bộ thư viện dot NET của Microsoft giúp lập trình viên xuất báo cáo dựa trên dữ liệu có sẵn trong hệ thống.
Tuy nhiên, với công nghệ WPF thì control này không mặc định tồn tại nên phải chủ động thêm vào.
Hướng dẫn
Bước 1: tạo Window mới
Tạo 1 cửa sổ mới.
Chọn project hiện tại, nhấn chuột phải bấm vào menu Add.. chọn Window, nhấn chuột phải vào cửa sổ vừa tạo ở khung Solution Explorer và chọn Add Reference.
Bước 2: thiết lập WindowsFormsHost
Ở trang xaml của cửa sổ vừa tạo, kéo thả control WindowsFormsHost
vào cửa sổ vừa tạo và thiết lập như sau:
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms; assembly=Microsoft.ReportViewer.WinForms" Title="MainWindow" Height="350" Width="525"> <Grid> <WindowsFormsHost VerticalAlignment="Top" HorizontalAlignment="Left" Width="100" Height="100" Margin="127,191,0,0"/> <WindowsFormsHost> <rv:ReportViewer x:Name="_reportViewer"/> </WindowsFormsHost> </Grid> </Window>
Bước 3: thiết lập Report Wizard
Chuột phải vào project và chọn Add new item, chọn Report Wizard.
Bước 4: thiết lập dataset
Lần lượt thiết lập Data Set trong cửa sổ Report Wizard.
Chọn Database và bấm Next.
Chọn Dataset và bấm Next.
Khi chọn New Connection.. để thêm database vào project.
Ở đây thêm database "RAPCHIEUPHIM
".
Sau đó bấm Next sẽ hiện cửa sổ như trên, chọn "No".
Chọn Next và đợi load dữ liệu từ database.
Ở khung DataSet name, đặt tên cho Data set source, lưu ý nên đặt tên dễ lưu nhớ vì tên này sẽ dùng để truy xuất data set ở trong phần tải report.
Một dataset bao gồm nhiều thành phần của database tạo nên, chọn Data Set là bảng KHACHHANG
.
Sau khi đã chọn và đặt tên, bấm Finish.
Sau khi cửa sổ này xuất hiện, đặt tên cho Data set và bấm Next.
Chọn thuộc tính của Data set sẽ hiển thị trong report, ở đây chọn hiển thị tất cả các thuộc tính của Bảng KHACHHANG
nên kéo thả toàn bộ thuộc tính ở vùng “Available fields” sang vùng “Values”.
Sau khi đã chọn thuộc tính cần hiển thị, bấm Next.
Bấm Next để tiếp tục.
Chọn style của report, ở đây để mặc định và bấm Finish để hoàn tất.
Bước 5: thiết lập cửa sổ hiện thị report
Thiết lập trong file .cs của cửa sổ hiển thị report.
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); _reportViewer.Load += ReportViewer_Load; } private bool _isReportViewerLoaded; private void ReportViewer_Load(object sender, EventArgs e) { if (!_isReportViewerLoaded) { Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource(); NameOfDataSet dataset = new NameOfDataSet(); dataset.BeginInit(); reportDataSource1.Name = "NameOfDataSet"; reportDataSource1.Value = dataset.KHACHHANG; this._reportViewer.LocalReport.DataSources.Add(reportDataSource1); this._reportViewer.LocalReport.ReportEmbeddedResource = "WpfApplication1.NameOfReport.rdlc"; dataset.EndInit(); //fill data into adventureWorksDataSet NameOfDataSetTableAdapters.KHACHHANGTableAdapter datasetAdapter = new NameOfDataSetTableAdapters.KHACHHANGTableAdapter(); datasetAdapter.ClearBeforeFill = true; datasetAdapter.Fill(dataset.KHACHHANG); _reportViewer.RefreshReport(); _isReportViewerLoaded = true; } } }