Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » Thiết lập báo cáo

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • VOCW

    This module is included inLens: Vietnam OpenCourseWare's Lens
    By: Vietnam OpenCourseWare

    Click the "VOCW" link to see all content affiliated with them.

Recently Viewed

This feature requires Javascript to be enabled.
 

Thiết lập báo cáo

Module by: KS. Lâm Hoài Bảo. E-mail the author

Summary: Mục tiêu: Chương này giới thiệu cách thức để tạo báo cáo bao gồm hiển thị dữ liệu cũng như sắp xếp và phân nhóm dữ liệu.

Học xong chương này, sinh viên có thể:

  • Sử dụng tính năng Report của Microsoft Access trong các ứng dụng nhỏ.
  • Sử dụng Data Report để tạo báo biểu.
  • Sử dụng Crystal Report, công cụ mạnh để tạo báo biểu.

Kiến thức cần thiết:

  • Thư viện đối tượng ActiveX Data Objects (ADO).
  • Môi trường dữ liệu Data Environment.

Tài liệu tham khảo:

Visual Basic 6.0 và Lập trình cơ sở dữ liệu - Chương 21, trang 637 - Nguyễn Thị Ngọc Mai (chủ biên) – Nhà xuất bản Giáo dục - 2001.

SỬ DỤNG MICROSOFT ACCESS ĐỂ LẬP BÁO CÁO

Có hai kỹ thuật để thi hành một báo cáo Access từ ứng dụng VB:

- Sử dụng Automation để phóng một thể hiện (instance) của Microsoft Access, thi hành báo cáo trực tiếp từ trong ứng dụng. Automation là một kỹ thuật cho phép giao tiếp giữa các ứng dụng trên Windows. Ở đây Microsoft Access sẽ làm Automation Server.

- Dùng VSREPORTS của VideoSoft cho phép người sử dụng VB thi hành báo cáo của Microsoft Access bất kể máy của họ có cài đặt Microsoft Access hay là không. Đây là một điều khiển ActiveX chuyển đổi báo cáo từ tập tin MDB thành một định dạng mà ta có thể cung cấp cùng ứng dụng.

Trong bài giảng này, chúng tôi chỉ trình bày cách thứ nhất mặc dù cách này có nhiều hạn chế. Đối với cách thứ hai, để có thể thực hiện được ta cần phải cài đặt một số thư viện liên kết động (DLL). Các thư viện này tương đối khó tìm và nhất là chúng đòi hỏi bản quyền.

Bất lợi của kỹ thuật dùng Automation là buộc người dùng phải chạy một thể hiện (instance) của Microsoft Access cũng như phải cài đặt Microsoft Access trên máy. Để lập trình theo kỹ thuật này, ta tiến hành theo các bước sau:

- Tham chiếu đến Microsoft Access bằng cách từ menu Project chọn Preferences -> Microsoft Access 9.0 Object Library.

- Sau đó ta tạo một đối tượng như là đối tượng ứng dụng của Access như sau:

Dim MSAccess As Access.Application

  • Sau đó ta cần tạo mới đối tượng này cũng như tạo một tham chiếu đến cơ sở dữ liệu chứa báo cáo:

Set MSAccess = New Access.Application

MSAccess.OpenCurrentDatabase(“Database Name”)

- Sử dụng thuộc tính DoCmd để thi hành báo cáo:

MSAccess.DoCmd.OpenReport "Report Name",acViewNormal

- Đóng cơ sở dữ liệu:

MSAccess.CloseCurrentDatabase

Lưu ý: Tránh dùng ràng buộc trễ với Automation

Phiên bản cũ của Automation là OLE Automation, dùng trong VB 3.0 và Microsoft Access 2.0.

Trong VB 3.0, ta có thể viết chương trình như sau:

Dim MSAccess As Object

Set MSAccess = CreateObject(“Access.Application”)

Đoạn chương trình trên hoạt động tốt đối với VB 3.0 nhưng có một cách khác tốt hơn. Thay vì dùng kiểu Object, ta nên chỉ rõ kiểu dữ liệu đối tượng mà Automation Server cung cấp (chẳng hạn Access.Aplication nếu là Access). Bởi vì khi đó, VB không cần thi hành câu truy vấn trên Automation Server mỗi khi ta truy cập nó để xác định kiểu đối tượng cần tạo. Kỹ thuật này gọi là ràng buộc trễ, giờ đây chỉ phủ hợp với 2 tình huống:

  • Ta không biết trước kiểu đối tượng Automation Server.
  • Ta đang sử dụng một môi trường phát triển ứng dụng không hỗ trợ ràng buộc sớm, như VBScript hay ASP.

SỬ DỤNG THIẾT KẾ DATA REPORT

Thiết kế báo cáo dùng DataReport là điểm mới trong VB6, đây là một công cụ được hỗ trợ bởi VB6, cung cấp một cách trực quan về thiết kế báo cáo và có ưu diểm là rất dễ dùng.

Thiết kế với DataReport

- Chọn Project -> Components.

- Chọn Tab Designers, đánh dấu chọn Data Report.

Hình 1
Hình 1 (.png)
Hình 13.1 Đưa thiết kế báo cáo về đề án

Các thành phần của một báo cáo như sau:

- Report Header: Hiển thị một lần ở đầu báo cáo.

- Report Footer: Hiển thị một lần ở cuối báo cáo.

- Page Header: Hiển thị tại đầu mỗi trang.

- Page Footer: Hiển thị tại cuối mỗi trang.

- Detail Section: Hiển thị các dòng dữ liệu.

- Một hoặc nhiều nhóm đầu cuối hiển thị tại đầu và cuối mỗi phân nhóm.

Các điều khiển của thiết kế Data Report như sau:

- Điều khiển nhãn (Rpt Label).

- Điều khiển hộp văn bản (Rpt Textbox).

- Điều khiển ảnh (Rpt Image).

- Điều khiển hình dạng (Rpt Shape).

- Điều khiển các hàm tính toán (Report Function: rptFuncSum, rptFuncAve, rptFuncMin, rptFuncMax…).

Hình 2
Hình 2 (.png)
Hình 13.2 Cửa sổ Data Report

Các điều khiển của Data Report cũng giống như là các điều khiển chuẩn trên biểu mẫu, chúng có thể ràng buộc với nguồn dữ liệu. Tuy nhiên, ta có một cách thức khác dễ dàng hơn đó là sử dụng môi trường dữ liệu (được giới thiệu ở chương trước).

Sử dụng DataEnvironment trong việc tạo DataReport:

Quá trình thực hiện trải qua các bước sau:

- Tạo đối tượng Command.

- Kéo thả các trường của đối tượng Command này vào thiết kế của Report.

- Thêm các tiêu đề đầu trang & cuối trang.

Ví dụ: Tạo báo cáo về các sinh viên trong bảng STUDENT thuộc cơ sở dữ liệu Student.

Hình 3
Hình 3 (.png)
Hình 13.3 Thiết lập Data Environment- Bước 1: Tạo một nối kết đến CSDL Student trong trình Data Environment, thêm một đối tượng Command cho phép lấy dữ liệu từ bảng Student.

- Bước 2: Kéo thả các trường cần hiển thị vào báo cáo tại mục Detail, chỉ giữ lại trường liên quan đến thông tin dữ liệu (đặt trong phần Detail Section). Thiết lập tên trường dưới dạng tiếng Việt tại phần Page Header.

- Bước 3: Cung cấp các thông tin cho phép DataReport nhận dữ liệu từ đâu bằng cách xác lập: DataSource: DataEnvironment1, DataMember: Student.

Hình 4
Hình 4 (.png)
Hình 13.4: Report khi đã kéo thả các trường

Thiết kế báo biểu có phân nhóm dữ liệu

Hình 5
Hình 5 (.png)
Hình 13.4: Nhóm dữ liệu- Chọn đối tượng Command của trình DataEnvironment cần nhóm cơ sở dữ liệu.

- Hiển thị trang thuộc tính, chọn Tab Grouping.

- Chọn tùy chọn Group Command Object.

- Đặt tên cho nhóm cũng như chọn các trường tham gia vào nhóm dữ liệu.

- Đặt lại giá trị cho thuộc tính Data Member chỉ đến nối kết mới đã nhóm dữ liệu.

- Chọn báo cáo thiết kế, ấn chuột phải, chọn Insert Group Header/Footer.

- Chọn tên trường nhóm dữ liệu đưa vào đoạn Group Header.

Khi đó báo cáo được thiết kế như sau:

Hình 6
Hình 6 (.png)
Hình 13.5 Báo cáo có nhóm dữ liệu

Xem và xuất Data Report

Ta có thể xem thông tin và in báo cáo trên một cửa sổ riêng biệt sử dụng chế độ Print Preview bằng cách thi hành phương thức Show.

Khi đó báo cáo sẽ được hiển thị như sau:

Hình 7
Hình 7 (.png)
Hình 13.6: Thi hành báo cáo trong VB

Khi đó người sử dụng có thể duyệt qua các trang nếu như báo cáo có nhiều trang, cũng như chọn một trang báo cáo nào đó để in.

Ngoài ra người dùng có thể chọn Export báo cáo của mình ra tập tin có định dạng khác, các loại định dạng ở đây có thể là tập tin văn bản, tập tin HTML. Ta có thể chọn lựa xuất một số trang cụ thể nào đó hoặc toàn bộ báo cáo.

Hình 8
Hình 8 (.png)
Hình 13.7: Hộp thoại xuất báo cáo

SỬ DỤNG CRYSTAL REPORT ĐỂ LẬP BÁO CÁO

Crystal Report cho phép tạo báo cáo cơ sở dữ liệu trong ứng dụng viết bằng VB. Nó gồm 2 phần chủ yếu:

- Trình thiết kế báo cáo xác định dữ liệu sẽ đưa vào báo cáo và cách thể hiện của báo cáo.

- Một điều khiển ActiveX cho phép thi hành, hiển thị, điều khiển và in báo cáo khi thi hành ứng dụng.

Crystal Report không có sẵn khi cài VB6, ta cần cài đặt thêm. Chương trình cài đặt Crystal Report chỉ có trên bản Professional. Chạy tập tin Crystl32.exe trong thư mục \COMMON\TOOLS\VB\CRYSREPT.

Thiết kế báo cáo

Một điểm khác biệt khi dùng Crystal Report là ta không thiết lập báo cáo đi đôi với ứng dụng cụ thể. Ta sẽ xây dựng báo cáo trước và sau đó sẽ gọi thi hành báo cáo từ phía ứng dụng, báo cáo không phải là một bộ phận thuộc ứng dụng. Cửa sổ thiết kế Crystal Report như hình bên dưới:

Hình 9
Hình 9 (.png)
Hình 13.8 Cửa sổ Crystal Report

Khi ta chọn tạo một báo cáo mới, Crystal Report trình bày một hộp thoại cho phép lựa chọn một trong nhiều những khuôn mẫu báo cáo đã định sẵn.

Hình 10
Hình 10 (.png)
Hình 13.9 Hộp thoại chọn các mẫu

Bảng 1
Kiểu báo cáo Mô tả
Standard Báo cáo sắp xếp thông tin theo dòng và cột, cho phép nhóm dữ liệu.
Listing Báo cáo là danh sách dữ liệu liên tục không có tổng kết hay trường tổng cộng..
Cross-Tab Sắp xếp dữ liệu theo hai chiều.
Mail label Báo cáo được thiết kế để in dữ liệu theo cột cho nhãn thư.
Summary Báo cáo chỉ hiển thị thông tin tổng quát, không chứa dữ liệu chi tiết.
Graph Báo cáo thể hiện dữ liệu một cách trực quan bằng biểu đồ
Top N Báo cáo cho phép chỉ hiển thị một số mẩu tin được chọn
Drill Down Báo cáo cho phép nhấn đúp chuột lên dữ liệu tổng quát để hiển thị dữ liệu chi tiết.
Another Các báo cáo có khuôn mẫu do người dùng định nghĩa trước đó.

Chúng ta xét qua một ví dụ sử dụng Crystal Report để lập báo cáo

- Khởi động Crystal Report và chọn New, chọn kiểu báo cáo là Standard.

- Tiếp theo chọn Data File.

- Trong hộp thoại chọn tập tin cơ sở dữ liệu, ta chỉ đến một tập tin cơ sở dữ liệu, sau đó ấn nút Done. Ta sẽ thấy các bảng cũng như các quan hệ giữa các bảng được hiển thị.

Hình 11
Hình 11 (.png)
Hình 13.10 Hộp thoại quan hệ giữa các bảng

Quan hệ giữa các bảng đã được xác định ở mức thiết kế cơ sở dữ liệu nên ta không cần phải thay đổi những mối liên kết này.

- Nhấn nút Next qua bước tiếp theo, ta sẽ chọn những trường tham gia vào báo cáo.

- Bước kế tiếp ta chọn qua Tab Sort để thực hiện việc sắp xếp dữ liệu.

- Tab Style cho phép chọn các dạng khác nhau của báo cáo.

- Sau khi đã thiết kế xong, ta ấn Save để lưu lại báo cáo.

Khi mở lại báo cáo đã thiết kế, ta thấy Crystal Report hiển thị báo cáo ở hai mức, thiết kế và duyệt trước.

Hình 12
Hình 12 (.png)
Hình 13.11: Cửa sổ xem trước báo cáo và thiết kế báo cáo

Thi hành báo cáo trong ứng dụng thông qua điều khiển ActiveX của Crystal Report

Bước đầu tiên để có thể thi hành báo cáo Crystal Report, ta cần tham khảo đến điều khiển ActiveX của Crystal Report bằng cách thêm công cụ Crystal Report vào đề án của chúng ta.

Chọn công cụ Crystal Report và đưa vào ứng dụng, biểu tượng trên hộp công cụ như sau. Trong sự kiện Click của một nút lệnh, ta viết đoạn mã sau:

Private Sub Command1_Click()

CrystalReport1.ReportFileName = "d:\VB\bc.rpt"

CrystalReport1.PrintReport

End Sub

Thuộc tính ReportFileName xác định đường dẫn cũng như tên tập tin báo cáo.

Việc thi hành báo cáo được thực hiện nhờ vào thuộc tính PrintReport. Ngoài ra, báo cáo có thể thi hành bằng cách hiển thị trên một cửa sổ khác hoặc là xuất ra thẳng trên máy in, … Ta thiết đặt thuộc tính đó qua hộp thoại thuộc tính.

Hình 13
Hình 13 (.png)
Hình 13.11 Hộp thoại xác lập thuộc tính

Báo cáo thi hành trên một cửa sổ riêng biệt, ta có thể lựa chọn nhiều công việc như xem qua các trang, in ấn báo cáo, phóng to thu nhỏ …

Hình 14
Hình 14 (.png)
Hình 13.12: Báo cáo Crystal Report

LỜI KẾT

Chương Thiết lập báo cáo cũng là chương kết thúc của giáo trình Visual Basic. Tuy nhiên lập trình sự kiện và lập trình cơ sở dữ liệu với VB chỉ là một phần trong những khả năng mà VB mang lại. Hy vọng chúng tôi sẽ gặp lại bạn đọc trong những chuyên đề khác của VB.

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks