Hướng dẫn lập trình báo cáo BIRT cho người mới bắt đầu

1- Giới thiệu

Tài liệu này được viết dựa trên:
  • Eclipse 4.4 (LUNA) (or newer)
  • BIRT 4.4

2- Giao diện báo cáo sẽ làm

Đây là hình ảnh báo cáo sẽ làm trong bài viết này:

Dữ liệu thô:

Trước hết chúng ta cần hiểu một chút về nghiệp vụ:
  • Một khách hàng (CUSTOMER) có thể mở 1 hoặc nhiều tài khoản (ACCOUNT) tại một chi nhánh ngân hàng (BRANCH) nào đó.
  • Mỗi tài khoản ứng với một sản phẩm dịch vụ (PRODUCT) cung cấp bởi ngân hàng.
  • Mỗi tài khoản có một số dư tài khoản sẵn có (AVAILABLE BALANCE).
Để tiện theo dõi bạn có xem dữ liệu thô dưới đây.
** SQL **
Select Acc.Account_Id
     ,Acc.Cust_Id -- Mã số khách hàng
     ,Cus.Address        Cust_Address -- Địa chỉ khách hàng
     ,Acc.Product_Cd -- Mã sản phẩm (dịch vụ của ngân hàng)
     ,Acc.Open_Branch_Id -- Mã Chi nhánh (Ngân hàng)
     ,Bra.Name           Branch_Name -- Tên Chi nhánh (Ngân hàng)
     ,Acc.Avail_Balance -- Số tiền còn trong tài khoản
From   Account  Acc
     ,Customer Cus
     ,Branch   Bra
Where  Acc.Cust_Id = Cus.Cust_Id
And    Acc.Open_Branch_Id = Bra.Branch_Id;

3- Các cài đặt đòi hỏi

BIRT Plugin:

Để lập trình báo cáo BIRT bạn cần cài đặt công cụ  BIRT vào Eclipse. Bạn có thể xem hướng dẫn tại:

Cơ sở dữ liệu mẫu:

LearningSQL là một cơ sở dữ liệu nhỏ, dùng trong nhiều hướng dẫn của o7planning. Bài viết này cũng sử dụng dữ liệu trên cơ sở dữ liệu này. Bạn cần tạo nó (Chỉ mất 5 phút) theo hướng dẫn dưới đây:

Các thư viện Java JDBC cho các cơ sở dữ liệu (Oracle, MySQL, SQLServer) và cách sử dụng:

Tùy thuộc vào bạn sử dụng cơ sở dữ liệu nào, bạn cần thư viện điều khiển cơ sở dữ liệu đó (Bạn cần 3 phút để hoàn thành), xem hướng dẫn download tại:

4- Tạo BIRT Project

Trên Eclipse chọn:
  • File/New/Other...
Nhập vào tên Project:
  • HelloBIRT

5- Tạo Data Source

Tạo một nguồn dữ liệu ( Data Source) có thể là từ JDBC, từ XML, ... Trong tài liệu này chúng ta sẽ tạo Data Source từ JDBC kết nối vào cơ sở dữ liệu LearningSQL
Ở đây tôi tạo JDBC kết nối vào cơ sở dữ liệu LearningSQL (Trên Oracle). Tuy nhiên với các loại cơ sở dữ liệu khác hoàn toàn tương tự.
ojdbc6.jar là thư viện điều khiển loại cơ sở dữ liệu  Oracle.
Xem thêm:
Kiểm tra xem đã kết nối được tới cơ sở dữ liệu  LearningSQL chưa.

6- Tạo báo cáo

6.1- Tạo dataset

Nhập vào:
  • Data Set Name: Account avail balance
Select Acc.Open_Branch_Id
     ,Bra.Name           Branch_Name
     ,Acc.Cust_Id
     ,Cus.Address        Cust_Address
     ,Acc.Account_Id
     ,Acc.Product_Cd
     ,Acc.Avail_Balance
From   Account  Acc
     ,Customer Cus
     ,Branch   Bra
Where  Acc.Cust_Id = Cus.Cust_Id
And    Acc.Open_Branch_Id = Bra.Branch_Id
Order  By Acc.Open_Branch_Id

6.2- Tạo mới báo cáo

Trên Eclipse chọn:
  • File/New/Other...
  • File name: BranchReport01.rptdesign

6.3- Cấu hình kích thước báo cáo

Mặc định báo cáo được tạo ra có kích thước giống khổ giấy A4.
Chọn thuộc tính:
  • Orientation: Landscape
Cấu hình Border:
Bạn cũng có thể thay đổi các thông số khác.

6.4- Thiết kế giao diện (Header)

<H3>
Vietcombank
</H3>
<B>
<I>
For internal use only
</I>
</B>

6.5- Thiết kế biểu đồ

6.6- Chạy thử bảo cáo lần 1

6.7- Thiết kế phần dữ liệu báo cáo

Dữ liệu thô giống như hình minh họa dưới đây:
Nhưng chúng ta sẽ thiết kế để trên báo cáo hiển thị theo một cách dễ nhìn hơn (Giống hình minh họa dưới).
Chúng ta sẽ làm lần lượt từng bước.
Kéo thả đối tượng Table vào màn hình báo cáo.

6.8- Chạy thử báo cáo lần 2

6.9- Chỉnh style cho bảng (Lần 1)

Báo cáo đã chạy, tuy nhiên giao diện chưa được đẹp. Chúng ta cần phải chỉnh một số style.

6.10- Chạy thử báo cáo lần 3

6.11- Sub Total

6.12- Chạy thử báo cáo