Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
683,94 KB
Nội dung
Bài 1: Tổng quan Crystal Reports NET 1.1 Crystal Reports gì? Crystal Reports cơng cụ thiết kế báocáo cho phép bạn tạobáocáo cách tìm định dạng liệu từ nguồn liệu hay từ nguồn liệu khác Bên cạnh , Crystal Reports có ngơn ngữ riêng để tính tốn số tính khác để biến liệu thô thành báocáo đầy tính chun nghiệp.Bạn tạobáocáo từ danh sách đơn giản gồm vài cột báocáo phức tạp có biểu đồ ,bảng số Key Performance Indicator (KPI).Ngồi , Crystal Reports có số hàm API công cụ đặc biệt thiết kế dành cho nhà phát triển phần mềm cho phép hội nhập báocáo vào ứng dụng riêng họ 1.2 Đặc điểm Crystal Reports -Bạn không cần mở ứng dụng riêng rẽ để thiết kế báocáo dùng Crystal Reports -Đối với Windows Form , Crystal Reports cho phép xem báocáo cung cấp tất chức cho người sử dụng bao gồm xoáy sâu vào chi tiết ,truy xuất ,xuất khẩu…Đối với ASP.NET ,cung cấp phần lớn chức Windows Form Viewer môi trường DHTML “zero client ” (Nghĩa không client nạp xuống hay cài đặt) -Crystal Reports giúp việc truy cập liệu trở nên dễ dàng -Crystal Reports cho phép truy cập liệu nguồn khác -Crystal Reports cho phép chia sẻ sử dụng bảng báocáotạo ứng dụng phân phối sử dụng cho nhiều người dùng Chương 2: Thiết kế báocáo sử dụng Report Design Environment Trong chương ta sử dụng Report Designer bên Visual Studio.NET để thiết kế báocáo đơn giản Bạn thấy chương bạn đơn giản click chọn kéo thả hồn thành báocáo mà khơng cần phải lập trình 2.1 Các thành phần Report Designer Trên Crystal Reports.NET cung cấp cho bạn cửa sổ công cụ giúp bạn thuận tiện thiết kế báocáo hình 2-01 Crystal Reports – Insert Crystal Reports – Main Crystal Reports – Toolbox Hình 2-01: Các thành phần Report Designer Thanh công cụ Crystal Reports – Main chứa control định dạng Font, Size Thanh công cụ Crystal Reports – Insert cho phép bạn chèn vào Summary, Group, Subreport, Chart Picture Hộp công cụ Crystal Reports cho phép bạn thêm vào đối tượng Text, Line Box Muốn thêm Field vào báo cáo, có cửa sổ Field Explorer Bạn cần bung nhánh tương ứng cửa sổ kéo thả Field bạn cần lên báocáo Cuối cửa sổ Report Designer, nơi bạn thiết kế báo cáo, bao gồm section, section chứa field, đối tượng báocáo 2.2 Các vần đề thiết kế báocáo 2.2.1 Các Section báocáo Mô tả Report Header Xuất trang báocáo thường bị huỷ theo Có thể dùng cho biết bắt đầu báocáo hay dùng làm trang bìa Report Footer Xuất vào cuối trang chót bảng báo cáo,theo cho thấy dùng tổng kết báo cáo(ghi số mẫu tin ,ngày in báocáo ,tên tập tin,…) Page Header Xuất đầu trang (khi sang trang) dùng ghi tựa đề báo cáo,tiêu đề cột ,số trang… Page Footer Xuất vào cuối trang dùng in số trang ngày in báo cáo,… Group Header Xuất đầu nhóm (khi có ngắt cấp bậc) thường ghi tên nhóm Group Footer Xuất vào cuối nhóm mẫu tin , thường dùng để in tên nhóm cũ ,tổng cộng nhóm hay tổng kết Details Xuất mẫu tin thường dùng in thơng tin cột bung thành section vùng mục tin lớn để tạo biểu mẫu 2.2.2 Các đối tượng Field Explorer: -Database Fields: Chứa tất field mà bạn đưa vào báo cáo, field lấy từ Table, View hay Stored Procedures Các field đưa vào báocáo dấu check lên bên cạnh, cho biết field sử dụng -Formula Fields: dùng để đưa tính tốn phức tạp vào báo cáo.Có cú pháp phải chọn Crystal syntax , Basic syntax -Parameter Fields: dùng để nhắc nhở người dùng nhập vào thông tin cần thiết báocáo chạy Khi bạn tạo parameter field đưa vào báo cáo,thì Crystal Reports NET hiển thị khung đối thoại nhắc nhở người dùng nhập vào chi tiết mà bạn vừa nhập vào ,khi báocáo bạn xem trước -Running Total Field: dùng để tính tốn dựa giá trị mẫu tin field khác -Group Name Fields: Thể nhóm sử dụng báocáo -SQL Experssion Fields: để đảm bảo việc tính tốn bạn server bạn thâm nhập vào tất hàm SQL -Special Fields: thể vùng mục tin đặc biệt Bảng 2-02 sau liệt kê field đặc biệt Bảng 2-02 Danh sách field đặc biệt Tên field đặc biệt Mô tả Print Date In ngày báocáo in Print Time In thời báocáo in Modification Date Ngày thay đổi chót báocáo Modification Time Thời thay đổi chót báocáo Data Date Ngày liệu đọc từ liệu Data Time Thời liệu đọc từ liệu Record Number Con số thứ tự nội mẩu tin gán cho tất mẫu tin trả cho báocáo Page Number Số thứ tự trang Group Number Số thứ tự nội nhóm Total Page Count Tổng số trang đếm Report Title Tựa đề báocáo lưu trữ Summary Infomationcủa tập tin báocáoReport Comments Chú giải đưa vào Summary Information tập tin báocáo Record Selection Formula Công thức tuyển chọn mẫu tin sử dụng báocáo Group Selection Formula Công thức tuyển chọn nhóm sử dụng báocáo File Path and Name Đường dẫn tên tập tin rpt File Author Tác giả báocáo đưa vào Summary Information tập tin báocáo File Creation Date Ngày báocáotạo Pagd N of M Theo N trang hành M tổng số trang báocáo -Unbound Fields: gồm có loại kiểu liệu Boolean, Currency, Date, Date Time, Number, String , Timer Unbound dùng để tạobáocáo generic dùng lập trình cho đặt để nội dung vùng mục tin vào lúc chạy 2.3 Thiết kế báocáo đơn giản: Ví dụ sau giúp bạn tạobáocáo đơn giản, bạn việc click click để tạobáocáo mà không cần phải lập trình Tùy theo đặc trưng báocáo mà bạn bỏ qua số bước không cần thiết, để giúp bạn hiểu rõ bước nên với ví dụ khảo sát tất bước có số bước khơng làm mà nhấn Next để qua bước 2.3.1 Thêm báocáo vào ứng dụng Khởi động Microsoft Visual Studio NET tạo project Sau đó, chọn Project | Add New Item xuất hộp thoại Add New Item (Hình 2-03) Trên khung Templates, bạn chọn CrystalReport đặt báocáo rptBaocao.rpt, chọn Open Hình 2-03 Hộp thoại Add New Item Hộp thoại CrystalReport Gallery hiển thị (Hình 2-04) Trên khung Create a New CrystalReport Document có ba lựa chọn giải thích Bàng 2-03 Và khung Choose an Expert có bảy lựa chọn giải thích Bảng 2-04 Bạn để lựa chọn theo giá trị mặc định ban đầu nhấn OK Hình 2-04: Hộp thoại CrystalReport Gallery Bảng 2-03: Các phương pháp tạoCrystalReport Document Phương pháp Mô tả Using the Report Expert Như bạn thấy hình 2-04 có nhiều Report Expert (Standard,Form Letter Form,…) mà bạn phải bước qua bước để tạobáocáo Đây phương pháp phổ biến điểm xuất phát cho triển khai sau.Lập trình viên kinh nghiệm thích sử dụng phương pháp As a Blank Report Đối với lập trình viên kinh nghiệm quen thuộc vớiReport Designer thường dùng phương pháp để tạobáocáo rỗng tự tay bổ sung phần vào báocáo không cần hỗ trợ Report Wizard Khi mục chọn chọn Expert khác khơng có sẵn From an Existing ReportTạobáocáo tương tự báocáo có sẵn Một lần chọn mục Expert khác khơng có sẵn Bảng 2-04: Các loại Expert Report Loại Expert Mô tả Standard Được sử dụng thường xuyên mang tính chung (generic) nhiều Bạn sử dụng Standard Expert để tạo kiểu báocáo kiểu hàng cột (tabular), bao gồm số tính grouping (gộp nhóm), sorting (sắp xếp) summary (tổng kết) Standard Expert bao gồm khả thêm hình đồ hoạ kiểu thống kê gọi chart, áp dụng số style định sẵn sàng lọc mẫu tin có tính phân tích cao cấp chẳng hạn TopN, BottomN (thí dụ Top10 Bottom100) From Letter Bằng cách phối hợp đối tượng văn Field CSDL, Crystal Reports.NET dùng để tạo văn thư (form letter) Form Dùng để tạobáocáo thiết kế cho biểu mẫu đặt trưng (hoá đơn, bảng kê khai, ) Bằng cách sử dụng form expert, bạn có khả cho nằm ẩn hình ảnh báocáo (ví dụ hố đơn trống) để đưa vào chỗ field biểu mẫu.Từ đây, bạn để yên hình ảnh in biểu mẩu kèm theo vùng mục tin lên giấy cho gỡ bỏ hình ảnh in trực tiếp báocáo lên biểu mẫu Cross-Tad Cross-tabs lòng Crystal Reports.NET trơng giống tính (spreadsheet) với hàng cột chứa liệu tổng kết Bằng cách sử dụng Cross-tab Expert bạn tạobáocáovới đối tượng cross-tab section report header Subreport Subreport báocáo chèn vào báocáo Subreport khơng liên hệ thơng số trao qua báocáo subreport để xác định nội dung cần hiển thị Mail Lable Crystal reports.NET hỗ trợ báocáo gồm nhiều cột chức làm cho ta có khả tạo nhãn bìa thư (mail lable) Drill Down Khái niệm nằm đằng sau drill down (xoáy sâu vào chi tiết ) bạn cho hiển thị summary (tổng kết) báocáo bạn người sử dụng xốy vào summary để xem chi tiết hình thành tổng kết 2.3.2 Chọn liệu nguồn (data source) Hộp thoại Standard Report Expert hiển thị lên Hình 2-05.và mặc định focus Tab Data Khi bạn chọn liệu nguồn thông qua Tab Data này, bước cho loại expert Có nhiều cách để chọn liệu nguồn, Bảng 2-05 sau giải thích lựa chọn khung Available data source, ví dụ bạn click vào nút Database Files hộp thoại Open mở ,chọn sở liệu xtreme.mdb Lưu ý: Cơ sở liệu xtreme.mdb có sẵn thư mục C:\ProgramFiles\Microsoft Visual Studio.NET\Crystal Reports\Samples\Database Bạn bung nhánh Tables double click lên bảng liệu Customer để thêm vào khung Tables in Report bên phải Nhấn Next để tiếp tục Lưu ý: Để bỏ chọn bảng khỏi khung Tables in Report bạn click vào bảng sau nhấn nút Delete Table bên khung Tables in Report Hình 2-05: Hộp thoại Standard Report Expert – Tab Data Bảng 2-05: Các liệu nguồn khác Dữ liệu nguồn Mơ tả Project Data Crystal Reports.NET theo NET Framework báocáo trực tiếp từ dataset xuất ứng dụng bạn Bạn thấy ADO.NET Datasets Current Connections nhánh ADO.NET Datasets cho biết lớp dataset liệt kê cửa sổ Project Explorer Các lớp cho phép bạn uyển chuyển gắn kết với kiểu liệu Còn Current Connections cho phép bạn chọn kết nối thiết lập cửa sổ Server Explorer OLE DB (ADO) Mục cho phép tạo connection string để truy cập liệu nguồn sử dụng OLE BD driver bao gồm SQL server, Oracle, MS Jet 3.51/4.00 (Access, Excel, Paradox, Dbase , …) Mục cho lên hai hình wizard “OLE DB Provider” “Connection Information” yêu cầu bạn cho biết liệu nguồn phải kết nối thơng tin có ý nghĩa vị trí đăng nhập ODBC (RDO) Mục cho phép tạo connection string để truy cập liệu nguồn sử dụng ODBDC driver có hình wizard “Datasource Selection” “Connection information” cho phép bạn chọn System DSN file DSN hữu.Ngoài việc báocáo từ bảng liệu, view stored procedure , … Crystal Reports.NET cho phép bạn nhập vào lệnh SQL dùng làm sở cho báocáo bạn Database Files Mục cho phép bạn chọn số dạng thức CSDL kiểu tập tin bao gồm Access, Excel, XML, TTS(loại tập tin định nghĩa Crystal Field Definition) Favorites Mục cho phép bạn chọn liệu nguồn thường xuyên dùng đến mà bạn đưa vào danh sách Favorites Các item hữu thêm vào cách right-click lên chúng chọn mục Add to Favorites Bạn gỡ bỏ item khỏi Favorites cách click lên item ấn History Mục cho phép bạn chọn liệu nguồn dùng báocáo khác dự án More Data Sources Mục bao gồm : ADO.NET(XML), access/Excel(DAO) Field Definition Only ADO.NET(XML) cho phép tìm đọc mẫu tin cách khai báo lối tìm tập tin XML Bạn chọn ADO.NET datasets hữu Còn Access/Excel (ADO) cho phép tìm đọc mẫu tin dùng ADO recordset truy cập CSDL MS Access Excel spreadsheet Còn Field Definition Only dùng Crystal Field Definition (TTX) mang tính tương thích lùi khơng triển khai 2.3.3 Thiết lập mối quan hệ bảng Nếu bước trước bạn chọn lúc nhiều liệu hộp thoại Standard Report Export hiển thị Tab Link cho phép bạn khai báo bảng liệu có mối quan hệ nào, hình 2-06 Lưu ý: Trong ví dụ sử dụng bảng customer nên bỏ qua bước Hình 2-06: Hộp thoại Standard Report Expert – Tab Link 2.3.4 Chọn Field cho báocáo Bước hộp thoại Standard Report Export chọn field xuất lên báocáo Trên Tab Field (Hình 2-07), muốn sử dụng field bạn chọn field khung Available Fieds nhấn nút Add g để chuyển field Hình 2-10: Tab TopN - Sắp xếp gộp nhóm dựa summarized totals Bảng 2-07 Các lựa chọn hộp combo For this group sort Các kiẻu phân tích Mô tả All Hiển thị tất giá trị Top N Bạn nhập vào số N vào ô text box where N is Bản báocáo liệt kê N nhóm dựa giá trị summary field theo thứ tự giảm dần Bottom N Bạn nhập vào số N vào ô text box where N is Bản báocáo liệt kê N nhóm cuối dựa giá trị summary field theo thứ tự tăng dần Top Percentage Bạn nhập vào tỉ lệ N% (0-100) vào ô text box where Percentage is Bản báocáo liệt kê N% nhóm dựa giá trị summary field theo thứ tự giảm dần Bottom Percentage Bạn nhập vào tỉ lệ N% vào ô text box where Percentage is Bản báocáo liệt kê N% nhóm cuối dựa giá trị summary field theo thứ tự tăng dần Với ví dụ bạn để giá trị All hộp combo For this group sort, nhấn Next để tiếp tục Lưu ý: Tab TopN thực bạn có thiết lập hai Tab Group Tab Total 2.3.8 Biểu đồ Đồ thị (Charting - Graphing) Trên hộp thoại Standard Report Export bạn thêm số loại Graph khác vào báocáo thơng qua Tab Chart[4] (Hình 2-11) Bạn nhấn Next tiếp tục Hình 2-11: Hộp thoại Standard Report Expert – Tab Chart 2.3.9 Sàng lọc thông tin báocáo Khi in báocáo từ nhiều bảng liệu khác nhau, chắn bạn không muốn xem tất liệu báocáo Bạn muốn chọn sử dụng mẫu tin mà thơi dựa tiêu chí Tab Select (hình 2-12) giúp bạn thực ý định Có số tác tử có sẵn dùng cho việc chọn lọc mẫu tin giải thích theo bảng 2-08 Đối với ví dụ này, ta khơng quan tâm việc chọn lọc mẫu tin, nghĩa tất mẫu tin xử lý, ta bỏ qua Tab Select, bạn nhấn Next để qua Tab cuối Hình 2-12: Tab Select Bảng 2-08: Các tác tử chọn lọc Tác tử chọn lọc Mô tả Is equal to So sánh Is not equal to So sánh không Is less than So sánh nhỏ Is less than or equal to So sánh nhỏ Is greater than So sánh lớn Is greater than or equal to So sánh lớn Is one of Thuộc tập hợp định trước Is between Nằm Is not between Không nằm Is like Giống (dùng tương tụ like SQL) Is starting with Bắt đầu 2.3.10 Chọn kiểu định dạng cho báocáo Tab cuối Standard Report Expert Tab Style (Hình 2-13), giúp bạn chọn lựa format cho báocáo trước hoàn tất Có tất 10 style định sẵn mà bạn chọn sử dụng nhưung bạn khơng thể thêm vào style riêng bạn Bạn thêm tựa đề (title) báocáo vào ô Title Trong trường hợp tựa đề báocáo “International Sales Report”, thông tin nỳa lưu trữ Summary Infomation tập tin báocáoReport Title Field thêm vào Report Designer Bạn nhấn nút Finish để hoàn tất việc thiết kế báocáo [ Hình 2-13: Hộp thoại Standard Report Expert – Tab Style 2.3.11 Hoàn tất việc thiết kế báocáo Sau bạn chọn Finish hộp thoại Standard Report Expert, tập tin báocáotạovới thiết lập mà bạn vừa thực hiện, theo hình 2-14 Đến coi bạn hoàn tất việc thiết kế báocáo Hình 2-14: Tập tin báocáo 2.4 Preview báocáo Muốn in báocáo bạn thêm vào Form1 ô control CrystalReportViewer Toolbox Khi IDE tự động tạo đối tượng crystalReportViewer1, bạn gán thuộc tính Dock đối tượng thành Fill để ô control viewer bao phủ toàn vùng Client Form1 Đồng thời bạn thay đổi thuộc tính WindowState Form1 thành Maximized Tại hàm xử lý kiện Form_Load bạn bổ sung dòng lệnh in đậm sau đây: private void Form1_Load(object sender, System.EventArgs e) { crystalReportViewer1.ReportSource = new rptBaocao(); } Lệnh tạo đối tượng rptBaocao (là báocáo bạn vừa thiết kế xong) gán cho thuộc tính ReportSource ô control viewer Khi ban cho chạy ứng dụng, cho thấy viewer báocáo hình 2-15 Hình 2-15: Báocáo InternationalSales chế độ Preview Bài 2: Nạp hiển thị Report chương trình Để nạp hiển thị Report chương trình tiến hành bước sau: B1 Thêm vào dự án tệp DataSet B2 Thêm vào bảng có cấu trúc tên trường giống cấu trúc liệu cần hiển thị B3 Thêm vào dự án CrystalReport Xác định nguồn liệu DataSet B4 Thêm dự án Form, thêm vào From điều khiển crystalReportViewer B5 Viết Code để lấy liệu gán cho CrystalReport hiển thị Report kiện FormLoad Các bước trình bày chi tiết đây: Bước 1: Thêm vào dự án DataSet (*.xsd file) (Giả sử dự án ta cần hiển thị thơng tin sách có thông tin Madau tên đầu.) - Vào Menu Project\Addnew Item Thêm vào dự án DataSet Bước 2: Thêm vào bảng có cấu trúc tên trường giống cấu trúc liệu cần hiển thị - R_Click trống DataSet để tạo bảng, tiếp tục tạo cột đặt tên cột giống với tên trường liệu cần hiển thị - Bước 3: Thêm vào dự án CrystalReport Xác định nguồn - liệu DataSet Vào Menu Project\Add new Item - Trong bước chọn nguồn liệu chọn liệu DataSet1 vừa tạo bước Project Data\ ADO.NET DataSets Và chọn bảng cần hiển thị DataSet1 - Nhấn Next bước phần trình bày trước B4 Thêm điều khiển crystalReportViewer để hiển thị báocáo vào From gọi Crystal Bước 5: Viết Code ThaoTacDuLieu dl;// Khai báo đối tượng lớp ThaoTacDuLieu DataSet ds; public Frmbaocao() { // khởi tạo lớp ThaoTacDuLieu với tham số truyền vào chuỗi kết nối dl = new ThaoTacDuLieu(Program.f.StringConnection); InitializeComponent(); } private void Frmbaocao_Load(object sender, EventArgs e) { // Thi hành phương thức FillDataSet để fill liệu vào DataSet dl.FillDataSet("select * from sach", "sach"); // Lấy đối tượng DataSet lớp thao tác liệu ds = dl.GetDaTaSet; // Tạo đối tượng CrystalReport tên RptBaocao RptBaocao rp = new RptBaocao(); // Thiết lập nguồn liệu DataSet cho CrystalReport // DataSet truyền vào truyền liệu cho Tệp DataSet tạo bước rp.SetDataSource(ds); rp.Refresh(); // Hiển thị CrystalReport lên crystalReportViewer cách gán đối tượng Report cho điều khiển crystalReportViewer this.crystalReportViewer1.ReportSource = rp; } Bài 3: Hiển thị trường ảnh lên CrystalReport lúc nạp chương trình Để hiển thị trường ảnh lên Crystalreport ta làm theo bước sau: Bước 1: Thêm vào tệp DataSet (*.xsd file) bảng có cột có kiểu trường mảng Byte Bước 2: Gắn nguồn liệu hiển thị cho CrystalReport Như Hoặc R_click báo biểu - Sau chọn bảng cần hiển thị Bước 3: Kéo đăt trường ảnh vào vị trí cần hiển thị ảnh báocáo B4 Viết Code // Lấy ảnh từ sở liệu DataTable dt = dl.FillDataSet("select * from anh", "anh"); // Thông tin đường dẫn tệp ảnh string anh = dt.Rows[0][1].ToString(); // Tạo luồng để đọc liệu từ File ảnh FileStream f = new FileStream(anh, FileMode.Open); BinaryReader br = new BinaryReader(f); DataSet1 datas = new DataSet1(); // Khai báo bảng có cấu trúc giống cấu trúc bảng DataSet1 DataTable dt1 = new DataTable("tblImage"); dt1.Columns.Add("name", System.Type.GetType("System.String")); dt1.Columns.Add("anh", System.Type.GetType("System.Byte[]")); // Tạo dòng gán giá trị cho trường DataRow dr = dt1.NewRow(); dr[0] = anh; // Dữ liệu trường mảng Byte đọc từ luồng đọc liệu //của tệp ảnh dr[1] = br.ReadBytes((int)f.Length); // Thêm dòng vừa tạo vào bảng dt1.Rows.Add(dr); dl.FillDataSet("select * from sach", "sach"); ds = dl.GetDaTaSet; // Thêm bảng liệu chứa ảnh vào đối tượng DataSet, mà sử dụng làm nguồn liệu cho Report ds.Tables.Add(dt1); RptBaocao rp=new RptBaocao (); rp.SetDataSource ( ds); rp.Refresh(); this.crystalReportViewer1.ReportSource = rp; ... Subreport Subreport báo cáo chèn vào báo cáo Subreport khơng liên hệ thơng số trao qua báo cáo subreport để xác định nội dung cần hiển thị Mail Lable Crystal reports.NET hỗ trợ báo cáo gồm nhiều... việc thiết kế báo cáo Hình 2-14: Tập tin báo cáo 2.4 Preview báo cáo Muốn in báo cáo bạn thêm vào Form1 ô control CrystalReportViewer Toolbox Khi IDE tự động tạo đối tượng crystalReportViewer1,... lên báo cáo Cuối cửa sổ Report Designer, nơi bạn thiết kế báo cáo, bao gồm section, section chứa field, đối tượng báo cáo 2.2 Các vần đề thiết kế báo cáo 2.2.1 Các Section báo cáo Mô tả Report