Trong các phiên bản Visual Studio thường có hẳn nhiên khí cụ Crystal Report để tạo ra các report (report) mang đến ứng dụng. Tuy nhiên, Tính từ lúc Visual 2010 thì luật Crystal Report đã bị xoá. Nếu bọn họ ước ao cần sử dụng Crystal Report thì chúng ta cần cài đặt nó về với setup.

Bạn đang xem: Crystal report là gì

Một bí quyết thông dụng là sử dụng Google nhằm kiếm tìm tìm Crystal Report khớp ứng cùng với phiên bạn dạng Visual Studio. lấy một ví dụ tôi sẽ sử dụng Visual Studio 2012 thì trong Google tôi đang gõ từ khoá tìm kiếm và đã chọn mẫu link trước tiên (ô đỏ):

*

Lúc nhấp vào dòng liên kết trước tiên (ô đỏ) sẽ tới trang cất links cho chỗ để mua Crystal Report:

*

Nhấp vào dòng link (ô đỏ) để download Crystal Report:

*

Cài đặt tập tin exe bằng phương pháp nhấp đôi loài chuột trái vào tập tin vừa mua về:

*

Tạo một dự án công trình Windows Form (VS 2012)

Chúng ta sẽ khởi tạo một dự án Windows Form (cần sử dụng VB) nlỗi sau:

Mngơi nghỉ Visual Studio với lựa chọn File > New > Project > Windows Form ApplicationĐặt tên đến dự án là Report_Wins cùng dìm OK.

Tôi đã minc hoạ cùng với đại lý dữ liệu (SQL Server) infobandarpkr.com với bảng Genre bao gồm lược trang bị với tài liệu nhỏng sau:

Lược đồ

*

Dữ liệu

*

Tạo một report 1-1 giản

trước hết họ sẽ tạo nên một tập tin XSD nlỗi một mối cung cấp dữ liệu trống rỗng để bạn có thể cần sử dụng với những vẻ bên ngoài tài liệu. Cách chế tác XSD nlỗi sau:

Tạo tập tin XSD bằng phương pháp dìm loài chuột nên vào Report_Wins chọn Add > Add New Item > DataSet

*

Nhấn nút Add một màn hình hiển thị trống rỗng xuất hiện:

*

Thêm một bảng dữ liệu trống rỗng (data table) vào tập tin XSD vừa chế tạo ra bằng phương pháp bấm chuột đề nghị vào vùng trống color xám với lựa chọn Add > Datatable:

*

Một bảng dữ liệu tên DataTable1 được cung cấp màn hình:

*

DataTable1 được thêm vào tập tin XSD. Bây tiếng chúng ta sẽ khởi tạo những cột đến bảng DataTable1 với lưu ý rằng, những cột nên được sắp xếp thương hiệu theo đúng tên cùng loại dữ liệu của các cột trong bảng Genre sinh hoạt trên với phần đa cột được thêm trong bảng DataTable1 đang xuất hiện trong report. Để thêm cột Id (vẻ bên ngoài int) vào bảng DataTable1 ta bấm chuột phải vào DataTable1 lựa chọn Add > Column:

*

Gõ thương hiệu cột là Id. Nhấp chuột bắt buộc vào phía bên trái cột Id và chọn Properties:

*

Trong vỏ hộp thoại Properties bọn họ tìm tới DataType cùng chọn vẻ bên ngoài tài liệu tương xứng (mặc định là hình trạng System.String). Trong bảng Genre, cột Id gồm đẳng cấp int cùng tương tự System.Int32 trong .NET Framework:

*

*

Tương trường đoản cú chế tạo cột Name

*

Tạo cột SortOrder:

*

Id là khoá chủ yếu trong bảng Genre yêu cầu vào DataTable1 bọn họ cũng thiết lập nó làm khoá chủ yếu bằng phương pháp click chuột phải vào Id và chọn Set Primary Key:

*

Kết quả:

*

Lưu toàn bộ và đóng góp tập tin XSD.Bây giờ bọn họ thêm Crystal Report bằng cách kích con chuột cần vào Report_Wins vào cửa sổ Solution Explorer lựa chọn Add > Add New Item > Crystal Report :

*

Khi thừa nhận nút Add để thêm Crystal Report đã mở ra vỏ hộp thoại Crystal Report Gallery như sau:

*

Nhấp OK đang xuất hiện thêm vỏ hộp thoại và chúng ta đang chọn Project Data > ADO.NET DataSets > MyDataSample > DataTable1 nlỗi hình sau:

*

Nhấn vào nút ít > nhằm thêm bảng DataTable1 vào size Selected Tables mặt phải:

*

Nhấn Finish sẽ xuất hiện màn hình hiển thị nlỗi sau:

*

Các vùng trong một báo cáo:Section1 (Report Header): các ngôi trường (xuất xắc cột) đặt vào vùng này được in ấn một đợt nghỉ ngơi tức thì đầu report.

Xem thêm: Sonication Là Gì - Nghĩa Của Từ Sonicate

Section2 (Page Header): các ngôi trường (hay cột) đặt vào vùng này được in ấn tại đầu của từng trang new.Section3 (Details) : những trường (xuất xắc cột) đặt trong vùng này được in với từng hàng (giỏi bạn dạng ghi) new.

Xem thêm: Báo Cáo Tình Trạng Vấn Đề ( Problem Statement Là Gì ? Problem Statement Là Gì

Section4 (Report Footer)): những trường (xuất xắc cột) đặt vào vùng này được in ấn một đợt làm việc ngay lập tức cuối report.Section5 (Page Footer) : những ngôi trường (tuyệt cột) đặt vào vùng này được in nghỉ ngơi ngay cuối mỗi trang new.Trong cửa sổ Field Explorer tìm đến Database Fields và mở rộng đang thấy DataTable1 và những cột vừa tạo:

*

Chọn và kéo thứu tự từng cột trong DataTable1 đặt lịch sự vùng Section3 (Details) của report:

*

bởi vậy report đang được thiết kế theo phong cách xong xuôi. Bây giờ bọn họ đang lấy tài liệu từ database cùng kết buộc (bind) nó mang lại datamix cùng kết buộc datamix mang lại size quan sát report (CrystalReportViewer).Trong tkhô hanh Toolbox trên mục Reporting chọn CrystalReportViewer kéo và thả vào Form1

*

Kết quả:

*

Nhấp đôi con chuột vào Form1 nhằm mang đến khung viết code của việc kiện Form1_Load và viết mã như sau:

Mã VB

Imports System.Data.SqlClientImports CrystalDecisions.CrystalReports.EnginePublic Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDyên ổn rptDoc As ReportDocument = New ReportDocument()Dlặng ds As MyDataSample = New MyDataSample() " tập tin .xsdDlặng dt As DataTable = New DataTable()" Đặt tên mang lại DataTabledt.TableName = "Crystal Report Example"dt = getAllGeres() "Gọi cách tiến hành getAllGenresds.Tables(0).Merge(dt)" Lấy băng thông tập tin crystal report (CrystalReport.rpt)Dyên reportPath As String = Application.StartupPath và "" và "CrystalReport.rpt"rptDoc.Load(reportPath)"gán dataphối mang đến report viewerrptDoc.SetDataSource(ds)CrystalReportViewer1.ReportSource = rptDocCrystalReportViewer1.DisplayToolbar = TrueEnd SubPublic Function getAllGeres() As DataTableDim connectionString As StringconnectionString = "Data Source=.SQLEXPRESS;Initial Catalog=infobandarpkr.com;Integrated Security=True;"Dyên ổn Con As SqlConnection = New SqlConnection(connectionString)Dim cmd As SqlCommand = New SqlCommand()Dyên ds As DataSet = NothingDim adapter As SqlDataAdapterTryCon.Open()cmd.CommandText = "SELECT * FROM Genre"cmd.CommandType = CommandType.Textcmd.Connection = Conds = New DataSet()adapter = New SqlDataAdapter(cmd)adapter.Fill(ds, "Genre")Catch ex As ExceptionThrow New Exception(ex.Message)Finallycmd.Dispose()If Con.State ConnectionState.Closed ThenCon.Close()End IfEnd TryReturn ds.Tables(0)End FunctionEnd ClassMã C#

using System.Data.SqlClient;using CrystalDecisions.CrystalReports.Engine;public class Form1private void Form1_Load(object sender, EventArgs e)ReportDocument rptDoc = new ReportDocument();// tập tin .xsdMyDataSample ds = new MyDataSample();DataTable dt = new DataTable();// Đặt tên mang đến DataTabledt.TableName = "Crystal Report Example";dt = getAllGeres();//Gọi thủ tục getAllGenresds.Tables<0>.Merge(dt);// Lấy đường truyền tập tin crystal report (CrystalReport.rpt)string reportPath = Application.StartupPath + "\" +"CrystalReport.rpt";rptDoc.Load(reportPath);//gán dataphối đến report viewerrptDoc.SetDataSource(ds);CrystalReportViewer1.ReportSource = rptDoc;CrystalReportViewer1.DisplayToolbar = true;public DataTable getAllGeres()string connectionString = null;connectionString = "Data Source=.\SQLEXPRESS;Initial Catalog=infobandarpkr.com;Integrated Security=True;";SqlConnection Con = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand();DataSet ds = null;SqlDataAdapter adapter = default(SqlDataAdapter);try Con.Open();cmd.CommandText = "SELECT * FROM Genre";cmd.CommandType = CommandType.Text;cmd.Connection = Con;ds = new DataSet();adapter = new SqlDataAdapter(cmd);adapter.Fill(ds, "Genre"); catch (Exception ex) throw new Exception(ex.Message); finally cmd.Dispose();if (Con.State != ConnectionState.Closed) Con.Close();return ds.Tables(0);Lưu cùng tiến hành vận dụng. Kết trái đã tạo nên một ngoại lệ nlỗi sau:

*

Xử lý nước ngoài lệ này bằng cách msống tập tin App.config cùng bổ sung cập nhật đoạn mã sau trong thành phần :

*

Lưu cùng xúc tiến lại ứng dụng:

*

Lời kết