Tạo các báo cáo tuỳ chỉnh với BIRT và Rational Team Concert, Phần 2 : Các báo cáo phức tạp và các tập dữ liệu lồng nhau

Loạt bài viết ba phần này giải thích cách bạn có thể hiển thị trực quan thông tin trong IBM® Rational Team Concert™ bằng cách thiết kế báo cáo với BIRT (Eclipse Business Information and Reporting Tools – Các công cụ tạo báo cáo và thông tin nghiệp vụ của Eclipse). Bài viết này, bài thứ hai trong loạt bài này, cho thấy cách thực hiện xử lý nâng cao hơn các thông tin từ kho lưu trữ như thế nào.

Tim McMackin, Kỹ sư phần mềm, IBM

Author photoTim McMackin là tác giả viết về kỹ thuật cho phần mềm Rational của IBM tại Raleigh, Bắc Carolina. Ông có kinh nghiệm viết giới thiệu các sản phẩm kỹ thuật và đã làm cho IBM từ năm 2004.



12 01 2012

Giới thiệu về bài viết này

IBM® Rational Team Concert™ có thể giúp các nhóm phát triển phần mềm lưu trữ và tổ chức một khối lượng thông tin to lớn, bao gồm các kế hoạch và các nhiệm vụ công tác, các việc xây dựng và các việc thử nghiệm phần mềm và các tệp mã nguồn và cả các tệp khác nữa. Với bất kỳ kho lưu trữ nào có kích thước lớn như vậy, việc hiển thị trực quan trở thành một vấn đề. Làm thế nào để bạn có được một khung nhìn mức cao về trạng thái của các dự án mà Rational Team Concert đang theo dõi? Các bảng điều khiển và các truy vấn mục công việc cung cấp các cách để xem thông tin này, nhưng để có một khung nhìn tùy chỉnh hơn, Rational Team Concert hỗ trợ các báo cáo BIRT của Eclipse tùy chỉnh được nạp trực tiếp vào một máy khách Web.

Phần 1 của loạt bài ba phần này đã trình bày những cơ sở về cài đặt Rational Team Concert và BIRT và tạo các báo cáo đơn giản. Phần này trình bày hai chủ đề sau:

  • Thực hiện tham khảo chéo phức tạp với dữ liệu trong các báo cáo.
  • Giải quyết các liên kết giữa các mục công việc để cho thấy các mối quan hệ cha-con trong các báo cáo.

Các điều kiện cần trước

Loạt bài này giả định rằng bạn đã hiểu cơ bản về các báo cáo trong Rational Team Concert, bao gồm việc tạo ra các báo cáo, làm việc với các nguồn dữ liệu và các tập dữ liệu và thêm các bảng vào một báo cáo. Các chủ đề này được trình bày trong Phần 1. Nếu bạn chưa quen với các báo cáo trong Rational Team Concert và BIRT, trước tiên hãy tìm hiểu bài viết đó.

Để làm theo bài viết này, bạn cần một tài khoản miễn phí trên trang Jazz.net và các phiên bản đầy đủ hoặc dùng thử của máy chủ Rational Team Concert và máy khách Rational Team Concert. Nếu bạn không có máy chủ và máy khách, Phần 1 mô tả cách nhận được một phiên bản dùng thử của máy chủ Rational Team Concert và một phiên bản miễn phí của máy khách Rational Team Concert.


Tạo một báo cáo phức tạp có các bảng lồng nhau

Một trong những khác biệt giữa các báo cáo BIRT và các truy vấn mục công việc Rational Team Concert là ở chỗ BIRT cho phép bạn làm việc với nhiều nguồn dữ liệu, trong khi đó, máy khách Web Rational Team Concert chỉ cho phép một truy vấn mục công việc mỗi lần. Vì vậy, bạn đưa ra cùng một lúc nhiều hơn một bảng dữ liệu trong một báo cáo, cộng với bạn có thể tham khảo chéo các tập dữ liệu để hiển thị thêm thông tin phức tạp.

Giả sử bạn là một người quản lý một số nhân viên. Nếu bạn muốn xem lướt qua các mục công việc trong nhóm của bạn, bạn có thể tạo ra một truy vấn để cho thấy các mục công việc dành cho vùng nhóm làm việc của bạn, được sắp xếp theo người chịu trách nhiện. Một cách tốt hơn sẽ là hiển thị thông tin về các thành viên của nhóm làm việc, mỗi thành viên có một danh sách các mục công việc của mình. Điều này thực hiện được với các bảng lồng nhau trong một báo cáo BIRT.

Như cụm từ hàm ý, một bảng lồng nhau được chứa trong bảng khác. Trong ví dụ này, mỗi hàng của bảng bên ngoài hiển thị thông tin về một người dùng khác nhau. Bảng lồng trong gồm các mục công việc được đặt trong bảng bên ngoài, sao cho bảng lồng trong lặp lại theo mỗi hàng của bảng bên ngoài. Bảng lồng trong này của các mục công việc được lọc để chỉ hiển thị các mục công việc cho người dùng trong hàng đang xét của bảng bên ngoài. Dữ liệu kết quả trên báo cáo có cấu trúc giống như Liệt kê 1.

Liệt kê 1: Dữ liệu mẫu từ một bảng lồng nhau
CONTRIBUTOR_NAME    TEAM_AREA_NAME
John Doe            Team A
                                    WI_ID    SUMMARY
                                    101      A task for John
                                    102      Something for John to do
Jane Smith          Team B
                                    WI_ID    SUMMARY
                                    103      Jane's task
                                    104      Jane needs to do this

Quan trọng:
Phần này giả định bạn đang làm việc với báo cáo đã được tạo ra trong Phần 1. Nếu bạn vẫn chưa làm việc qua hết Phần 1 và hiểu rõ các báo cáo Rational Team Concert, bạn có thể chuẩn bị làm theo cùng với phần này bằng cách tạo một báo cáo, tạo các nguồn dữ liệu cho COMMON_SNAPSHOT và WORKITEMS_SNAPSHOT và tạo một tập dữ liệu từ bảng LIVE_WORKITEMS_CNT trong ảnh chụp WORKITEMS_SNAPSHOT.

  1. Chuyển đến phối cảnh Report Design (Thiết kế báo cáo) và xóa bảng khỏi báo cáo mục công việc mà bạn đã tạo trong bài viết trước.

Mẹo:
Để chọn và xóa toàn bộ bảng, di con trỏ chuột trên bảng đó cho đến khi bạn nhìn thấy một thẻ Table ở dưới cùng bên trái của bảng. Nhấn vào thẻ đó để chọn toàn bộ bảng, sau đó nhấn Delete.

Hình 1. Chọn bảng để xóa
Con trỏ chuột trên thẻ Table

Tiếp theo, tạo một tập dữ liệu liệt kê những người dùng theo các bước sau:

  1. Tạo ra một nguồn dữ liệu có tên là Common từ ảnh chụp COMMON_SNAPSHOT.
Hình 2. Tạo một nguồn dữ liệu từ ảnh chụp COMMON_SNAPSHOT
Cửa sổ Jazz Data Source mới
  1. Tạo một tập dữ liệu có tên là Users từ ảnh chụp chung bằng cách sử dụng bảng LIVE_CONTRIBUTOR (Hình 3).
  2. Đánh dấu chọn CONTRIBUTOR_USERID, CONTRIBUTOR_NAME và TEAM_AREA_NAME làm các trường đầu ra.
  3. Đánh dấu chọn CONTRIBUTOR_ARCHIVED làm một trường tham số.
Hình 3. Tạo một tập dữ liệu từ bảng LIVE_CONTRIBUTOR
Cửa sổ Jazz Data Set mới
  1. Nhấn Finish.
  2. Trên thẻ Parameters (Các tham số) của trình soạn thảo tập dữ liệu, thiết lập tham số CONTRIBUTOR_ARCHIVED là kiểu Boolean với giá trị là False (Sai). Bằng cách này, tập dữ liệu chỉ gồm những người dùng chưa được lưu trong kho lưu trữ.
Hình 4. Thiết lập tham số đã lưu trữ
Hộp thoại Edit Parameter
  1. Nhấn vào thẻ Preview Results (Xem trước các kết quả) để xem danh sách của những người dùng và các vùng nhóm làm việc của họ.
Hình 5. Xem trước kết quả từ tập dữ liệu của những người dùng
Xem trước kết quả từ tập dữ liệu của những người dùng

Mẹo:
Lưu ý rằng những người dùng được liệt kê nhiều lần: một lần cho mỗi vùng nhóm làm việc mà họ có liên quan. Bài viết tiếp theo của loạt bài này sẽ cho thấy cách lọc các mục này, chỉ lấy các vùng nhóm làm việc mà bạn đang quan tâm. Một cách khác để bạn có thể hiển thị mỗi người dùng chỉ một lần là bằng cách loại bỏ bảng TEAM_AREA_NAME khỏi đầu ra. Trong trường hợp này, mỗi người dùng được hiển thị chỉ một lần trong các kết quả vì các cá thể khác của mỗi người dùng đã được lọc ra khỏi tập kết quả.

Nếu bạn không nhìn thấy bất kỳ dữ liệu trên thẻ Preview Results, có hai thứ có thể gây ra vấn đề này:

  • Không có các vùng nhóm làm việc nào tồn tại trong vùng dự án. Nếu không có các vùng nhóm tồn tại, thì không có người dùng nào được liệt kê trong bảng LIVE_CONTRIBUTOR ngay cả khi kho lưu trữ có một hoặc nhiều người dùng. Trong trường hợp này, hãy thêm một vùng nhóm và thêm ít nhất một người dùng vào vùng đó.
  • Tác vụ tự động ghi lại dữ liệu vào ảnh chụp có thể vẫn chưa chạy. Điều này có thể xảy ra vì bạn đang sử dụng một cá thể riêng của máy chủ Rational Team Concert mới hay không chạy liên tục mọi lúc. Để ghi lại dữ liệu vào các ảnh chụp, hãy chuyển đến thẻ Reports của ứng dụng khách Web như một người quản trị, nhấn vào Administer Data Warehouse (Quản trị kho dữ liệu) và sau đó nhấn vào Update All Snapshot Data (Cập nhật tất cả dữ liệu ảnh chụp). Trong một vài phút, dữ liệu sẽ có sẵn cho tập dữ liệu.
  1. Kéo tập dữ liệu Users (Những người dùng) vào báo cáo đó.
  2. Thêm một cột mới vào bảng bằng cách nhấn chuột phải vào khung ở phía trên cùng của bảng và sau đó nhấn vào Insert > Column to the Right (Chèn>Cột tới bên phải). Cột mới có một ô tiêu đề ở trên cùng, một ô dữ liệu ở giữa, và một ô chân trang ở phía dưới cùng. Bất cứ thứ gì bạn đưa vào ô dữ liệu đều được lặp lại với mỗi hàng trong bảng.
Hình 6. Thêm một cột vào bảng
Các lựa chọn trình đơn thả xuống: Insert > Column sang bên phải
  1. Từ khung nhìn Data Explorer, kéo tập dữ liệu các mục công việc vào ô dữ liệu trong cột mới. Bây giờ bảng các mục công việc được lồng bên trong bảng người dùng.
Hình 7. Bảng lồng nhau
Ảnh chụp màn hình cho thấy bảng lồng nhau

Nếu bây giờ bạn xem trước báo cáo này, bạn sẽ thấy một báo cáo liệt kê những người dùng trong cơ sở dữ liệu và dưới mỗi người dùng, có một bảng tất cả các mục công việc trong kho lưu trữ. Để cho báo cáo này có nghĩa, bạn phải giới hạn bảng bên trong chỉ hiển thị các mục công việc thuộc sở hữu của người dùng ở hàng của bảng bên ngoài. Bạn có thể làm việc này bằng cách chuyển một tham số (trong trường hợp này là ID người dùng của chủ sở hữu) từ hàng của bảng bên ngoài tới bảng bên trong.

  1. Chọn bảng bên trong của các mục công việc bằng cách nhấn vào thẻ Table ở phía dưới cùng bên trái của bảng này (xem Hình 8). Lưu ý rằng khung nhìn Property Editor (Trình soạn thảo thuộc tính bây giờ có tên là "Property Editor - Table". Điều quan trọng là chọn phần tử đúng trên báo cáo trước khi làm việc với khung nhìn Property Editor, vì khung nhìn này tác động đến báo cáo khác nhau tùy thuộc vào việc bạn chọn một bảng, một cột, một hàng, một ô hoặc một phần tử trong bảng.
Hình 8. Chọn bảng lồng nhau
Con trỏ chuột chọn biểu tượng Bảng
  1. Trong thẻ Binding (Kết buộc) của khung nhìn Property Editor, nhấn vào Dataset Parameter Binding (Kết buộc tham số của Tập dữ liệu).
Hình 9. Chỉnh sửa các kết buộc tham số cho bảng
Khung nhìn Property Editor, nút nhấn Kết buộc tham số tập dữ liệu

Cửa sổ Dataset Parameter Binding cho thấy các tham số của tập dữ liệu. Bạn có thể sử dụng nó để ghi đè lên các giá trị mà bạn đã chỉ định khi bạn đã tạo tập dữ liệu này.

  1. Chọn tham số CONTRIBUTOR_USERID rồi nhấn Edit.
  2. Trên cửa sổ bật lên "Edit data set parameter binding" (Chỉnh sửa kết buộc tham số của tập dữ liệu), nhấn vào nút Open Expression Builder (Mở trình xây dựng biểu thức) ở bên phải của trường Value, như hiển thị trong Hình 10.
Hình 10. Thiết lập một kết buộc tham số cho ID người dùng
Nút nhấn Open Expression Builder, labeled 'fx'

Bạn có thể sử dụng trình soạn thảo biểu thức BIRT để viết các biểu thức phức tạp với sự kết hợp mã JavaScript và mã BIRT. Bạn sẽ tìm hiểu thêm về các biểu thức sau này. Bây giờ, hãy nhập một biểu thức tham chiếu đến ID người dùng vào hàng hiện tại của bảng bên ngoài, như mô tả trong các bước sau đây:

  1. Trong trình xây dựng biểu thức, trong Category, nhấn Available Column Bindings (Các kết buộc cột có sẵn).
  2. Trong Sub-Category (Thể loại con), nhấn Table, nói đến bảng người dùng bên ngoài, không phải là bảng bên trong của các mục công việc.
  3. Trong Double Click to insert (Nhấn đúp chuột để chèn vào), nhấn đúp vào CONTRIBUTOR_USERID.

Trình soạn thảo biểu thức bây giờ hiển thị đoạn mã sau:
row["CONTRIBUTOR_USERID"]

  1. Nhấn OK ba lần để đóng các cửa sổ bật lên.

Bây giờ, khi bạn xem trước báo cáo này hoặc tải phiên bản mới lên máy chủ Concert Rational Team (như mô tả trong bài viết trước), bảng bên trong gồm các mục công việc chỉ hiển thị các mục có liên quan đến người dùng trong bảng bên ngoài. Nhờ tham khảo chéo các bảng theo cách này, bạn có thể hiển thị dữ liệu phức tạp trong báo cáo và liên kết các tập dữ liệu với nhau.

Hình 11. Báo cáo hoàn thành có các bảng lồng nhau
Ảnh chụp màn hình của thẻ Preview

Lấy ra các mục có liên kết với các bảng lồng nhau

Một nhiệm vụ phổ biến trong các báo cáo Rational Team Concert là lấy ra các mục công việc được liên kết từ một mục công việc cụ thể. Ví dụ, bạn có thể muốn hiển thị một danh sách các mục công việc quan trọng và sau đó chỉ hiển thị các mục công việc con của các việc quan trọng đó. Nhiệm vụ này hơi phức tạp hơn vẻ bên ngoài của nó, vì không có các trường "cha mẹ" hoặc "con" trong bảng mục công việc. Thay vào đó, các liên kết giữa các mục công việc là các thực thể riêng biệt trong bảng LINKS của ảnh chụp COMMON_SNAPSHOT.

Vì thế, việc lấy ra mục con của các mục công việc quan trọng đòi hỏi ba bảng lồng nhau:

  • Bảng ngoài cùng cho thấy các mục quan trọng.
  • Bảng tiếp theo cho thấy các liên kết cha mẹ từ các mục quan trọng.
  • Bảng trong cùng cho thấy các mục công việc là đích của các liên kết này.


Ví dụ sau đây cho thấy cách bạn có thể hiển thị mục con của các mục công việc:

  1. Tạo một tập dữ liệu từ bảng LIVE_WORKITEM_CNT cho các mục công việc cha mẹ. Đối với các tham số, bạn có thể sử dụng cột WI_TYPE để hạn chế tập dữ liệu theo các mục hoặc các cải tiến quan trọng, hoặc bạn có thể sử dụng cột TEAM_AREA_NAME để giới hạn các mục theo một vùng nhóm làm việc cụ thể. Tập dữ liệu này phải bao gồm cột WI_ITEMID ở đầu ra, vì bảng này cung cấp khóa mà bạn sẽ sử dụng để lấy ra các liên kết từ các mục công việc này.
Hình 12. Tập dữ liệu hiển thị các mục công việc quan trọng
Cửa sổ Edit Data Set
  1. Tạo một tập dữ liệu từ bảng LINKS trong ảnh chụp COMMON_SNAPSHOT để lấy các liên kết cha-con. Ít nhất, bao gồm các cột SOURCE_ITEMIDTARGET_ITEMID ở đầu ra. Thiết lập tham số LINK_TYPE là 'com.ibm.team.workitem.linktype.parentworkitem' (bao gồm cả dấu nháy đơn) và bao gồm cột TARGET_ITEMID trong danh sách các tham số. Các liên kết trong Rational Team Concert đi từ con (nguồn) tới cha mẹ (đích), do đó, bạn sẽ so khớp tham số TARGET_ITEMID này với cột WI_ITEMID trong bảng bên ngoài.
Hình 13. Tập dữ liệu cho thấy các liên kết cha mẹ
Cửa sổ Edit Data Set
  1. Tạo một tập dữ liệu từ bảng LIVE_WORKITEM_CNT (Hình 14) để lấy các mục công việc con. Với các tham số, bao gồm cột WI_ITEMID làm tham số để cho bạn có thể hiển thị các mục công việc là các nguồn của các liên kết.
Hình 14. Tập dữ liệu cho thấy các mục công việc con
Cửa sổ Edit Data Set
  1. Kéo tập dữ liệu các mục công việc cha mẹ vào báo cáo và thêm một cột bổ sung để hiển thị các mục công việc con trong đó. Bạn có thể trực tiếp thêm một cột hoặc xóa các trường khỏi các cột hiện có để tạo chỗ trống.
  2. Kéo tập dữ liệu của các liên kết vào một ô dữ liệu rỗng trong bảng các mục công việc quan trọng.
  3. Chọn bảng bên trong của các liên kết và kết buộc cột TARGET_ITEMID của nó với cột WI_ITEMID của bảng bên ngoài (Hình 15). Bây giờ bảng bên trong chỉ hiển thị các liên kết có mục công việc là đích ở trong bảng bên ngoài.
Hình 15. Kết buộc tham số trong bảng các liên kết
Khung nhìn bật lên kết buộc Tham số
  1. Kéo tập dữ liệu của các mục công việc con vào một ô dữ liệu rỗng trong bảng các liên kết.
  2. Chọn bảng các mục công việc con và kết buộc cột WI_ITEMID của nó với cột SOURCE_ITEMID trong bảng các liên kết (Hình 16). Bây giờ bảng trong cùng chỉ hiển thị các mục công việc là nguồn của các liên kết trong bảng các liên kết.
Hình 16. Ràng buộc tham số trên bảng các mục công việc bên trong
Kết buộc ID của các mục công việc
  1. Vì bạn không quan tâm đến thông tin về chính các liên kết này, nên hãy nhấn vào các trường trong bảng các liên kết (Hình 17) và nhấn Delete (Xóa). Bằng cách loại bỏ các dữ liệu khỏi bảng nhưng vẫn giữ lại bảng đó, bạn có thể giữ lại dữ liệu có sẵn cho bảng trong cùng mà không cần hiển thị trực tiếp nó trên báo cáo.
Hình 17. Loại bỏ các dữ liệu khỏi bảng các liên kết mà không cần xóa các bảng
Cột rỗng trong bảng các liên kết

Báo cáo hoàn thành cho thấy các mục cha mẹ và các mục con của chúng (Hình 18).

Hình 18. Báo cáo hoàn thành của các mục công việc cha mẹ và con
Xem trước báo cáo đã hoàn tất

Kỹ thuật các bảng lồng nhau này rất có ích trong nhiều lĩnh vực khác không được thảo luận ở đây. Bất cứ lúc nào bạn cần liên kết đến một tập dữ liệu khác, kỹ thuật này là một tùy chọn. Bài viết cuối cùng trong loạt bài ba phần này trình bày cách tham khảo chéo dữ liệu khác, bao gồm các bảng nối.


Lời cảm ơn

Tác giả biết ơn các nhà phát triển Rational Team Concert James Moody và Rafik Jaouani vì đóng góp của họ cho bài viết này và vì thông tin rất có ích mà họ cung cấp trên jazz.net và các diễn đàn jazz.net.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Rational
ArticleID=785179
ArticleTitle=Tạo các báo cáo tuỳ chỉnh với BIRT và Rational Team Concert, Phần 2 : Các báo cáo phức tạp và các tập dữ liệu lồng nhau
publish-date=01122012