1 Mục lục 1 2 Làm quen với visual basic 0 9


Thiết lập báo cáo và Xuất thông tin



tải về 1.69 Mb.
trang33/39
Chuyển đổi dữ liệu09.10.2016
Kích1.69 Mb.
#32631
1   ...   29   30   31   32   33   34   35   36   ...   39

14Thiết lập báo cáo và Xuất thông tin


  • Sử dụng thiết kế DataReport

  • sử dụng Microsoft Access để làm báo cáo

  • Sử dụng Crystal report để lập báo cáo

Thiếy lập báo cáo trên cơ sở dữ liệu không chỉ đơn giản là hiển thịdữ liệu từ cơ sở dữ liệu. hầu hết các báo cáo cơ sở dữ liệu liên quan một số hoạt động khác trên dữ liệu.

  1. Truy vấn dữ liệu để trả về, hiển thị và in ra những phần ta muốn. ta gọi là lọc

  2. Sắp xếp Sao cho nó xuất hiện heo mmột thứ tự có ý nghĩa

  3. Phân nhóm dữ liệu để hiển thị một cách gọn gàng.

Chương này sẽ phân biệt giữa các báo cáo và xuất thông tin

Visual Basic cho phép truy cập đến một số kỹ thuật Client / server mới hỗ trợ truy cập cơ sở dữ liệu hiệu quả hơn - Đặc biệt khi nó dùng để xuất thông tin hay thiết lập báo cáo


14.1Sử dụng thiết kế DataReport


Là điểm mới trong Visual Basic 6, thiết kế DataReport là cách trực quan để tạo ra những báo cáo thích hợp trong môi trường phát triển Visual Basic. Thiết kế DataReport, cung cấp các chức năng hết sức cơ bản, nhưng nó có ưu điểm rất dễ dùng.

Để tạo thiết kế DataReport, ta theo các bước sau:



  1. trong đề án, từ menu Project, chọn Add DataReport.



  1. Thiết kế DataReport được thêm vào đề án.

DataReport chứa một số phân đoạn;

  • Report Header hiển thị một lần ở đầu báo cáo.

  • Report foodter 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 hay nhiều group header hay foodter hiển thị tại đầu hoặc cuối của một phân đoạn nhóm.

Dễ nhất là tạo DataReport dùng trên thiết kế DataEnvironment. Với DataEnvironment, ta có thể dùng cách kéo thả để thiết kế báo cáo

14.1.1Thiết kế với DataReport


Mỗi lần tạo ra thiết kế DataReport, ta phải ràng buộc nó với một cơ sở dữ liệu để hiển thị dữ liệu. ta thực hiện điều này thông qua một bộ gồm các điều khiển ràng buộc chỉ hoạt động trong ngữ cảnh thiết kế DataReport.

Các điều khiển trực quan của thiết kế DataReport bao gồm:



  • Điều khiển nhãn

  • điều khiển hộp văn bản

  • điều khiển ảnh

  • điều khiển đoạn thẳng và điều khiển hình dạng

  • điều khiển hàm cho phép chèn các tính toán tóm tắt và báo cáo

bởi vì các điều khiển của DataReport được thiết kế đặc biệt để hoạt động trong ngữ cảnhcủa thiết kế DataReport, chúng có những tên gọi khác nhau. Ví dụ tên lớp chính thức của điều khiển hộp văn bản là Rpttextbox; tên lớp điều khiển ảnh là RptImage

Sẽ đơn giản hơn nhiều nếu ta dùng kỹ thuật kéo thả để tạo báo cáo



  1. Từ menu Project, chọn Add DataReport

  2. Tạo thiết kế Data Enviroiment

  3. Trong thiết kế Data Enviroiment, tạo một câu lệnh truy vấn dựa trên bảng tblCcustomer

  4. Thiết kế Data Enviroiment hiển thị danh sách các trường dữ liệu trong bảng tblCustomer. Chọn và kéo rê trường Customer_ID từ thiết kế Data Enviroiment vào phân đoạn Detail của thiết kế DataReport

  5. Một điều khiển nhãn và một hộp văn bản ràng buộc với trường dữ liệu Customer_ID xuất hiện trên thiết kế DataReport


Nếu kéo điều khiển phân đoạn Page Header, nó sẽ được hiển thị một lần trên mỗi trang. Nếu thực hiện việc này với nhiều trường, ta sẽ có báo cáo tương tự như sau:


Khi có nhiều điều khiển được chọn, điều chỉnh kích cỡ một điều khiển sẽ làm kích cỡ các điều khiển khác bị diều chỉnh theo

Kéo và thả trường dữ liệu từ thiết kế Data Enviroiment vào báo cáo, ta phải thêm một số bước để chỉ ra nguồn dữ liệu cho ràng buộc

Bước 1: Chọn thiết kế DataReport bằng cách chọn vào nó trong danh sách drop-down của cửa sổ Properties

bước 2: Trong cửa sổ Properties, quy định thuộc tính DataSource của DataReport là tên của trình thiết kế Data Enviroiment

Bước 3: Nếu đang sử dụng trình thiết kế Data Enviroiment, quy định thuộc tính Data member của DataReport là lệnh dữ liệu mà ta muốn



14.1.2Xem và xuất DataReport


Ta có thể xem báo cáo trong chế độ Print Preview bằng cách thi hành phương thức Show. Ví dụ nếu DataReport được gọi là drCustomer thì ta có thể chạy nó bằng dòng lệnh:

drCustomer.Show

báo cáo được hiển thị nhe hình dưới đây:



14.2Sử dụng Microsoft Access để làm báo cáo


Microsoft Access cho phép viết báo cáo cơ sở dữ liệu. Nó hỗ trợ giao diện dễ dùng và trực quan mà hầu hết lập trình viên Visual Basic đều ưa thích. tương tự Crystal Report, báo cáo Microsoft Access cho phép phân nhóm và sắp xếp dữ liệu, cũng như sử dụng các biểu thức hiệu chỉnh trong báo cáo.

14.2.1Thi hành báo cáo của Access từ Visual Basic


Có hai kỹ thuật thực hiện điều này:

  • sử dụng Automation để phóng một 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 trong Windows. Ở đây Access sẽ làm Automation server

  • Dùng sản phẩm VSREPORT của Videosoft cho phép người sử dụng thi hành báo cáo của Microsoft Access bất kể họ có cài đặt Access hay không. Đây là đ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 với các ứng dụng

14.2.1.1sử dụng AUTOMATION để thi hành báo cáo Access


Ta có thể phóng một instance của Microsoft Access từ ứng dụng viết bằng Visual Basic. Với kỹ thuật này, ta có thể lập trình Microsoft Access tương tự như với đối tượng khác ngay trong Visual Basic

Bất lợi của kỹ thuật này là buộc người sử dụng phải chạy ột instance của Microsoft Access mỗi khi họ muốn xem hoặc in ấn báo cáo. Dĩ nhiên nó cũng đòi hỏi phải có Microsoft Access nạp sãn trên máy. Nếu bạn muốn khắc phục trở ngại này nhưng vẫn dùng báo cáo Access trong ứng dụng, bạn có thể xem xét giải pháp thiết lập báo cáo của Video soft VSREPORT

Để lập trình Access thông qua Automation, ta làm một tham chiếu đến Access bằng cách từ menu Project chọn References chọn hộp dánh dấu “Microsoft Access 8.0 Object Library”

14.2.1.1.1 Tránh dùng dàng buộc trễ với Automation

Nếu bạn dùng qua Automation qua OLE Automation, bạn sẽ thấy điểm khác biệt quan trọng giữa kỹ thuật Automation trong phần này và OLE Automation. Trong Visual Basic ta cần tránh định nghĩa đối tượng Automation theo kiểu Object tổng quát. Ví dụ trong Visual Basic 3.0 ta có thể viết chương trình như sau:

Dim appAcces as Object

Set appAcces =CreateObject(“Access.Application”)

Đoạn chương trình trên hoạt động tốt với Visual Basic 3.0 nhưng có cách khác tốt hơn. Thay vì dùng kiểu Object ta dùng kiểu dữ liệu đối tượng Automation Server cung cấp. Bởi vì khi đó Visual Basic không cần thi hành câu lệnh truy vấn trên Automation Server mỗi khi ta truy nhậ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 hai tình huống:



  • ta không biết trước kiểu đối tượng Automation Server khi cần tạo đối tượng

  • 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 sẽ cải tiến đáng kể tốc đọ chương trình, nhất là những lệnh cần nhiều sử lý để gọi đến Microsoft Office Automation Server
14.2.1.1.2Thi hành Automation để điều khiển Microsoft Access

Sau khi thiết lập tham chiếu đến Microsoft Access từ trong ứng dụng, ta viêt chương trình để tạo instance cho đối tượng. khi đó có một đối tượng tham chiếu đến server, Visual Basic tích hợp mô hình đối tượng của server vào tính năng liệt kê thành phần tự động

Ngoài ra ta có thể xem toàn bộ thuộc tính, phương thức và sự kiện của đối tượng Access trong cửa sổ Object Browser

Đoan chương trình sau tạo một instance của Microsoft Access trong Visual Basic. Nó sử dụng Automation để thi hành phương thức Docmd của Access


Option Explicit
Dim MSAccess As Access.Application
Private Sub Command1_Click()

Set MSAccess = New Access.Application

MSAccess.OpenCurrentDatabase ("D:\TungPT\Temp\reins.mdb ")

MSAccess.DoCmd.OpenReport "rptEmployee", acViewNormal

MSAccess.CloseCurrentDatabase

Set MSAccess = Nothing

End Sub


14.2.1.2sử dụng VSREPORTS để thi hành báo cáo Access


VSREPORT được thực hiện theo 2 phần:

  • Trình tiện ích chuyển đổi dùng tập tin MDB của Access và tạo một tập tin báo cáo từ đối tượng Report chứa trong cơ sở dữ liệu

  • điều khiển ActiveX dùng để mở tập tin báo cáo và thi hành báo cáo trong ứng dụng

Cấu trúc này tương tự Crystal Reports. Với cả hai hệ thống, ta phải tạo một tệp tin thông báo, rồi thêm một điều khiển và viết đoạn chương trình trong ứng dụng để in báo cáo. mỗi lần sửa đổi trong báo cáo, ta phải lưu và phân phát lại cho người sử dụng.

Có nhiều điểm khác nhau giữa Crystal Reports và VSREPORT. Crystal Reports có một tiện ích để thiết kế báo cáo riêng, trái lại, VSREPORT sử dụng Microsoft Access. chọn lựa các sản phẩm tuỳ thuộc vào các ứng dụng.

Nếu bạn muốn dùng báo cáo của Access, để ý rằng báo cáo của VSREPORT dùng trên Automation là người sử dụng không phải khởi động một instance của Access mỗi lần họ muốn thi hành báo cáo. Thực vậy, với mỗi VSREPORT, người sử dụng không cần nạp sẵn Access trên máy, điều này rất tiện nếu bạn là người quản lý một cơ quan lôncs định hướng sử dụng đối với nhiều loại người sử dụng. Nếu bạn khồn chắc chắn rằng toàn bộ người sử dụng có cài sẵn phoên bản Access mới nhất, bạn có thể đưa cho họ một tệp tin VSREPORT mà không cần bận tâm người sử dụng đã cài Access hay chưa.

14.2.1.2.1Dùng VSREPORT để chuyển đổi báo cáo Access

Trước hết tạo một báo cáo trong Microsoft Access, sau đó thi hành trình thông dịch VSREPORT trên đó. Kết quả của thông dịch là một tệp tin có thể dùng ActiveX VSREPORT trong ứng dụng

Có 2 trình thông dịch:



  • TRANS95.EXE: chuyển đổ báo cáo Access 95

  • TRANS97.EXE : chuyển đổ báo cáo Access 97

Các tiện ích này chứa trong thư mục cài đặt VSREPORT
14.2.1.2.2Tạo ứng dụng dùng VSREPORT

      1. phóng tiện ích thông dịch Access 97, TRANS97.EXE

      2. Nhấn đúp chuột lên More File để hiển thị hộp thoại tệp tin

      3. Chọn tệp tin cơ sở dữ liệu Novelty

      4. Trình thông dịch mở cơ sở dữ liệu và hiển thị danh sách các báo cáo. Chọn rptCustomer, sau đó nhấn mũi tên phải phía trên ở dưới hộp thoại. nhấn Next

      5. trình thông dịch yêu cầu cung cấp đường dẫn và tệp tin cần chọn. ta cũng có thể đổi tên tệp tin kết quả vào lúc này.

      6. nhấn Translate. trình thông dịch sinh ra tập tin.VSR chứa định nghĩa báo cáo
14.2.1.2.3Dùng điều khiển ActiveX VSREPORT để thi hành báo cáo có Access

Để đưa báo cáo vào ứng dụng, ta dùng điều khiển ActiveX VSREPORT. Điều khiển này không xuất hiện lúc thi hành; nó chỉ đọc và xuất ra tập tin.VRS

Để cài đặt bản DAO 3.5 của điều khiển VSREPORT, ta làm như sau:



  1. Cài đặt tập tin cập nhật lấy từ CD hoặc tải xuống từ Internet, Web side http://www.videosoft.com

  2. Bảo đảm tập tin VSREP351.OCX có sẵn trong thư mục system của windows

  3. Dùng tiện ích regsvr32 để dăng ký tệp tin OCX mới

  4. Từ menu Project, chọn Components để thêm điều khiển VSREPORT

Đưa điều khiển vào ứng dụng

  1. Từ menu Project, chọn Components để thêm điều khiển VSREPORT vào đề án

  2. điều khiển VSREPORT xuất hiện trong hộp công cụ. Nhấn đúp chuột vào điều khiển VSREPORT trong hộp công cụ để đưa nóp vào biểu mẫu. điều khiển sẽ không hiển thị lúc thi hành, ta không cần bận tâm về vị trí điều khiển

  3. Quy định thuộc tính Report File Name của điều khiển là tệp tin.VSR ta đã tạo trước đó. Sau đó, quy định thuộc tính DataBase Name của điều khiển là tên tập tin.MDB. Ta cũng có thể dùng cửa sổ Properties hoặc dùng chương trình

  4. Thi hành phương thức PrintReport để thi hành báo cáo. Ta còn tuỳ chọn cho phép gửi kết qủa ra màn hình hoặc máy in, tuỳ theo giá trị thuộc tính của máy in PrintDevice.

Đoạn chương trình sau để in trong chế đọ PrintPreview và thi hành báo cáo cơ sở dữ liệu dùng điều khiển ActiveX VSREPORT


Option Explicit
' Requires Jet 3.5 version of VSREPORTS (vsrep351.ocx)
Private Sub Form_Load()

vsReport1.ReportFileName = App.Path & "\rptCustomer.vsr"

vsReport1.DatabaseName = "..\..\DB\novelty.mdb"

End Sub
Private Sub cmdPreview_Click()

vsReport1.PrintDevice = vsrPrintDeviceScreen

vsReport1.Zoom = 50 ' Percent

vsReport1.PrintReport

End Sub
Private Sub cmdPrint_Click()

vsReport1.PrintDevice = vsrPrintDevicePrinter

vsReport1.PrintReport

End Sub
Private Sub vsReport1_LoadingDoc(ByVal Page As Integer, ByVal Of As Integer, Cancel As Boolean)

Debug.Print "Loading: " & Page & " of " & Of

End Sub

14.2.1.2.4Tạo ứng dụng báo cáo nâng cao với VSREPORT

VSREPORT có một số tính năng khác cho phép tạo ứng dụng báo cáo mạnh mẽ. Sau đây là các tính năng nâng cao của điều khiển VSREPORT:

  • Thuộc tính Zoom; cho phép phóng to hoặc thu nhỏ theo đơn vị %

  • các thuộc tính Printer để điều khiển cách thức in ấn của báo cáo

  • Hỗ trợ duyệt trangđối với báo cáo nhiều trang: Dùng thuộc tính PrevewPage để cho phép người sử dụng lật trang

  • Tích hợp với đối tượng DataBase của DAO: Thay vì gán DataBase Name cho điều khiển, ta có thể gán đối tượng DataBase của DAO cho điều khiển. giải pháp này được dùng khi ứng dụng đang dùng DAO để kết nối với cơ sở dữ liệu và ta không muốn có một tham chiếu rõ ràng đến cơ sở dữ liệu từ trong điều khiển VSREPORT. Để gán một đối tượng DataBase cho điều khiển VSREPORT , ta quy định thuộc tính DataBase Access Mode của điều khiển là 1 – vsr DataBase Objiect. Sau đó ta có thể gán đối tượng DataBase của DAO cho thuộc tính DataBase Objectcủa điều khiển VSREPORT.

Ngoài các thuộc tính trên, báo cáo thi hành với điều khiển VSREPORT có thể kích hoạt sự kiện, như cách thực hiện của báo cáo trong Access. nó cho phép ta viết chương trình đáp ứng các sự kiện sảy ra trong khi in báo cáo. tuy nhiên, mô hình sự kiện của điều khiển VSREPORT khác với mô hình sự kiện của Access, vì vậy ta phải giữ bản gốc báo cáo Access cẩn thận trước khi chuyển sang dùng VSREPORT.



tải về 1.69 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   29   30   31   32   33   34   35   36   ...   39




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương