Tạo báo cáo với Crystal Report trong C#
Giới thiệu
Visual Studio đi kèm một công cụ báo cáo rất hữu ích – Crystal Report mà có sẵn cho bạo tạo các báo cáo để hiển thị dữ liệu của bạn lấy được từ CSDL.
Trong bài thực hành này chúng ta sẽ thảo luận về cách lấy dữ liệu được lưu trữ trong các bảng của hệ quản trị cơ sở dữ liệu SQL Server, rồi hiển thị trên form project của bạn.
Giả sử bạn muốn tạo một báo cáo để hiển thị dữ liệu từ bảng dữ liệu Products của CSDL NorthWinds. Đây là CSDL mẫu của Microsoft cung cấp, bạn có thể tải về và cài đặt theo link sau: http://www.microsoft.com/en-us/download/details.aspx?id=23654. Người sử dụng có quyền để đăng nhập tới hệ quản trị cở sở dữ liệu mà chứa CSDL này, giả sử trên máy tôi, User Id = sa, Password = admin123. Thông tin đăng nhập sẽ hữu ích cho bạn khi chúng ta kết nối cơ sở dữ liệu dùng code C#. Các bước được tiến hành như sau:
Bước 1: Add một DataSet tới Project
- Bây giờ bạn tạo mới một Project trong VS 2008. Trong trường hợp của tôi, tôi tạo với tên gọi là CrystalReport. Kích chuột phải vào tên của Project -> Add -> New Item. Dưới Categories, chọn Data và dưới Templates chọn DataSet. Đặt Name là dsProducts.
- Kích hoạt của sổ Server Explorer hoặc vào menu View\Server Explorer, kích vào biểu tượng icon Connect to Database để kết nối tới CSDL trên server. Trên hộp thoại Connection, kích nút Change của Data source để hiển thị danh sách cách Data source.
- Từ danh sách Data source, chọn Microsoft SQL Server, sau đó bạn sẽ nhìn thấy một hộp thoại để thêm kết nối mà hiển thị Server name. Trong ô này, bạn nhập vào tên của SQL SERVER của bạn, ví dụ của tôi là TIENPT\SQL
- Trong hộp Log on to the server, chọn Use SQL Server Authentication, rồi bạn đánh User name và Password tới các ô này.
- Trong hộp Connection to a database, chọn Select or enter a database name, rồi từ danh sách đổ xuống chọn cơ sở dữ liệu NorthWind
- Kích vào nút Test Connection để kiểm tra kết nối tới SQL SERVER. Nếu có hộp thoại hiển thị “Connection is succeed” có nghĩa rằng bạn có thể chuyển sang bước tiếp theo. Nếu có lỗi sảy ra, bạn hãy kiểm tra các thông số bạn đã cung cấp.
Bước 2: Add bảng Products tới DataSet
Sau khi bạn đã kết nối thành công tới cơ sở dữ liệu SQL Server, kiểm tra lại trong Server Explorer và kích vào Data Connection để mở rộng nó rồi chọn kết nối mà bạn vừa tạo bước trước. Kích vào Tables để hiển thị các bảng và kéo thả bảng Products tới cửa sổ DataSet designer.
Bước 3: Add một Crystal Report và liên kết với DataSet
Bây giờ bạn có một lược đồ của DataSet mà kết nối tới bảng Products của CSDL NorthWind cư trú trong SQL Server. Bước tiếp theo là thêm Crystal Report tới Project của bạn
- Từ menu Project, bạn kích vào Add New Item … trong hộp thoại New Item, dưới Categories chọn Reporting và dưới Templates chọn Crystal Report. Bạn sẽ nhìn thấy hộp thoại Crystal Reports Gallery. Chọn As a Blank Report để tạo một report trống và đặt tên trong hộp Name: crpProducts.
- Để liên kết tới bảng Products của DataSet, ở cửa sổ của crpProducts đang được chọn, bạn nhìn thấy của sổ Field Explorer, bạn kích chuột phải vào đó và chọn Database Expert. Bạn sẽ nhìn thấy hộp thoại như ở dưới
- Chọn Project Data và chọn NET DataSets, rồi bạn sẽ nhìn thây bảng Products. Chọn bảng này và kích nút “>” để add bảng này tới vùng Selected Tables. Rồi kích OK.
- Bây giờ bạn kích hoạt cửa sổ của crpProducts và kéo các trường của bảng Products mà bạn muốn tới vùng bạn thiết kế.
Bước 4: Add control Crystal Report Viewer tới Form của Project
Bạn tìm control này trên thanh Toolbox rồi kéo vào Form của bạn và viết code C# ở sự kiện Form Load.
- Crystal Report Viewer được đặt tên ở thuộc tính Name: crvProducts
- Mở cửa sổ code bằng cách kích đúp trên Form và một thủ tục Form_Load viết code sau:
private void Form1_Load(object sender, EventArgs e)
{
crpProducts rpt = new crpProducts();
SqlConnection conn = new SqlConnection("Server=TIENPT\\SQL;Database=NorthWind;Uid=sa;Pwd=admin123");
conn.Open();
SqlDataAdapter dap = new SqlDataAdapter("Select * from Products", conn);
DataSet ds = new DataSet();
dap.Fill(ds);
rpt.SetDataSource(ds.Tables[0]);
crvProducts.ReportSource = rpt;
}
Khi chạy bạn sẽ nhìn thấy kết quả như sau:
Mình muốn xem cái ?c_mau_tt này nó liên kết tới đâu và nội nuong trong nó là gì thì phải xem ở đâu vây các bạn
Bạn xem hình
Mình không hiểu câu hỏi của bạn lắm, ?c_mau_tt là cái gì?
bạn có xem dc cai anh mình gủi không?
Bạn xem dc anh là rõ ngay
Mình không thấy có cái ảnh nào cả
[IMG]http://i.imgur.com/UW7ZX8g.png[/IMG]
bạn có xem dc anh chua? hay bạn có thể giúp mình qua teamviewer
Bạn chỉ có thể xem và thay đổi biến như sau:
1. Kích chuột phải vào hàng dòng mà bạn muốn xem
2. Chọn Edit
3. Kích vào “Default Values”
5. Lúc này bạn có thể thêm hoặc chỉnh sửa giá trị tham số này
Vậy mình có thể xem ở đâu để có thể biết dc thông tin nội dung của mã đó.
Giống như cái hình bạn chụp, bạn thao tác trên đó để thay đổi Parameter của nó.
Vì khi viết code thì bạn truyền vào đúng tên Parameter mà bạn đã đặt.
Đúng rồi đó bạn. Bây giờ mình muốn biết cái tên Parameter này nó chứa cái gì hay đường dẫn nó từ đâu tới
Vậy cái này phải tìm trong Visual Studio ah. Có cách nào tìm dc nhanh không bạn vì khi vào Visual Studio nó có rất nhiều bảng
Đây là code bạn tham khảo à? Bạn có thể tìm nó trong code hoặc trong hệ quản trị CSDL của bạn. Nếu bạn đang sử dung SQL Server thì bạn có thể tìm trong phần Stored Procedured.
Mình nói thêm các Parameter này mục đích để sử dụng truyền vào cho các câu lệnh SQL.
Ví dụ:
Select * From tblSinhVien Where MaSV = {?ID_SV}. ?ID_SV giống như ?c_mau_tt mà bạn vừa thiết lập trên báo cáo trên
Phần mềm này chạy cùng với SQL 2008
Bạn thao tác trong Visual Studio nhé
Chào thầy,
Dạ thầy cho em hỏi là khi em thiết kế report thì kích thước mặt định của report là khổ giấy A4, vậy thầy cho em hỏi là khi em muốn thiết kế report cho cái hóa đơn bán hàng với kích thước khổ giấy bằng khổ giấy cuộn và không bị phân trang như cái hóa đơn ở siêu thị thì mình làm như thế nào ạ.
Em cảm ơn
Chào em.
Em có thể đặt khổ giấy cho Report em thiết kế mà. Nếu em dùng Visual Studio, em kích đúp vào file báo cáo của em (ví dụ là file Report1.rdlc) sau đó em chọn lên menu Report > Report Properties cửa sổ hiện lên em chọn Page Setup rồi em chọn Page Size. Em xem hình bên dưới.
chào add, trong Crystal reports em muốn vẽ mũi tên rồi ghi chữ vào trong mũi tên đó thì làm như thế nào ạ
Chào thầy! Em vào toolbox nhưng không tìm thấy được Crystal Report Viewer là do bị gì vậy ạ?
Bạn vào link này http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_21.exe tải về cài vào là được.