Truyền Dữ Liệu Vào Crystal Report Thông Qua Parameter Field
Có thể bạn quan tâm
Truyền dữ liệu vào Crystal Report thông qua Parameter Field
Một cách tổng quát, bài viết này sẽ cung cấp thêm cho các bạn cách truyền dữ liệu vào Crystal Report. Ngoài cách sử dụng StoredProcedure mà các bạn đã biết, thì các bạn còn có thể sử dụng Parameter Field để truyền thông tin ngắn gọn dễ dàng.
Xét một ví dụ như sau:
Với cơ sở dữ liệu:

Form:

Sau khi chọn khoa trên combobox và nhấn nút In báo cáo thì báo cáo in ra sẽ có tiêu đề tên khoa tương ứng, phía dưới là danh sách sinh viên thuộc khoa đó.
Chúng ta đã quen thuộc với những bài tập tạo báo cáo dạng này bằng cách sử dụng StoredProcedure đưa dữ liệu vào. Thông thường, chúng ta sẽ tạo ngay 1 StoredProcedure lấy mã số sinh viên và họ tên sinh viên theo tham số là mã khoa, cụ thể SQL thế này:
CREATE PROCEDURE Sp_BCSVTHEOKHOA
@makhoa char(4)
AS
BEGIN
select mssv, hoten from sinhvien where makhoa = @makhoa
END
Sau đó là khâu thiết kế báo cáo, chúng ta gặp ngay vấn đề là tham số tên khoa không có trong StoredProcedure trên.

Vấn đề là làm thế nào thêm vào trường dữ liệu “tên khoa” đây?
Có một cách là ngay lập tức về lại bên cơ sở dữ liệu sửa lại StoredProcedure đó và kế tiếp là verify bên crystalreport. Chấp nhận rằng chúng ta sẽ truy vấn dư thừa.

Cách khác đó là truyền “tên khoa” từ form vào crystal report theo đường Parameter Field.
Cách thực hiện như sau:
Đầu tiên, tôi vào Report, bên cửa sổ Field Explorer, tạo mới một Parameter Field

Đặt tên là “khoa”. Tôi bỏ trống phần prompting text, vì tôi không có dự định sử dụng prompt để người dùng nhập vào parameter, mà tôi sẽ truyền vào bằng code C#. Sau khi tạo xong, thì kéo Field Khoa đến vị trí cần hiển thị.


Lưu lại và về Form để thực hiện gán vào Parameter đó khi bấm vào nút in:
private void btnPrintReport_Click(object sender, EventArgs e)
{
clssForm1BLL.MaKhoa = cboKhoa.SelectedValue.ToString();
crystalReportSVTHEOKHOA1.SetDataSource(clssForm1BLL.GetSinhVienByMaKhoa());
ParameterDiscreteValue pa = new ParameterDiscreteValue();
pa.Value = cboKhoa.Text;
ParameterFieldDefinition crParameterFieldDefinition = crystalReportSVTHEOKHOA1.DataDefinition.ParameterFields["khoa"];
crParameterFieldDefinition.CurrentValues.Clear();
crParameterFieldDefinition.CurrentValues.Add(pa);
crParameterFieldDefinition.ApplyCurrentValues(crParameterFieldDefinition.CurrentValues);
crystalReportViewer1.ReportSource = crystalReportSVTHEOKHOA1;
}
Những người bạn mới ở đây là:
–ParameterDiscreteValue : khai báo đối tượng thuộc lớp này để chứa dữ liệu rời rạc. Trong ví dụ này thì là tên khoa đang chọn được hiển thị trên combobox.
–ParameterFieldDefinition : khai báo đối tượng thuộc lớp này để tìm đến định nghĩa ParameterField muốn truyền trên báo cáo. Đó chính là ParameterField có tên là “khoa” (giống với tên ParameterField ban nãy tạo bên báo cáo). Sau đó là vài động tác xóa, thêm, sử dụng dữ liệu ta đã truyền vào theo đối tượng ParameterDiscreteValue.
Có thể viết ngắn gọn lại theo cách này cũng được:
private void btnPrintReport_Click(object sender, EventArgs e)
{
clssForm1BLL.MaKhoa = cboKhoa.SelectedValue.ToString();
crystalReportSVTHEOKHOA1.SetDataSource(clssForm1BLL.GetSinhVienByMaKhoa());
ParameterDiscreteValue pdv = new ParameterDiscreteValue();
pdv.Value = cboKhoa.Text;
ParameterValues pv = new ParameterValues();
pv.Add(pdv);
crystalReportSVTHEOKHOA1.DataDefinition.ParameterFields["khoa"].ApplyCurrentValues(pv);
crystalReportViewer1.ReportSource = crystalReportSVTHEOKHOA1;
}
}
Từ khóa » Khai Báo Biến Trong Crystal Report
-
Cách đưa Một Biến đối Tượng Vào Crystalreport???
-
Cách Dùng Crystal Report Trong ASP.NET - Trần Ngọc Minh Notes
-
Tạo Báo Cáo Với Crystal Report Trong C# | Tìm ở đây
-
Tạo Báo Cáo Với Crystal Report - Tài Liệu Text - 123doc
-
Hướng Dẫn Làm Báo Cáo Bằng Crystal Report
-
Crystal Report - Nguyenchuongit
-
Hướng Dẫn Sử Dụng Crystal Report Với Visual Studio
-
Hướng Dẫn Tạo Crystal Report - Express Magazine
-
[PDF] LẬP TRÌNH HƯỚNG SỰ KIỆN - Topica
-
Crystal Repor - SlideShare
-
BÁO BIỂU CRYSTAL REPORT - Tài Liệu, Ebook, Giáo Trình, Hướng Dẫn
-
Create Report In VB.Net With Crystal Report | Information Technology
-
Hướng Dẫn Tạo Crystal Report Là Gì ? Crystal Report Là Gì
-
Cách Tạo Crystal Report?