Feeds:
Bài viết
Phản hồi

Helloworld với BIRT

(Tài liệu này được viết dựa trên OnJava.com: Deploying BIRT)

BIRT API bao gồm:

  • Design Engine API (DE API): được dùng để tạo ra report design (file .rptdesign), template (rpttemplate) và library (rptlibrary).
  • Report Enging API (RE API): chịu trách nhiệm nhận file rptdesign và kết xuất kết quả. Report Designer Preview và Web Viewer servlet dùng API này để sinh ra report.
  • Chart Engine API (CE API): được dùng để tạo và render các report biểu đồ

Một số hướng triển khai BIRT:

  • Triển khai BIRT Viewer vào J2EE application server
  • Tạo một servlet bọc RE API và triển khai nó vào J2EE application server
  • Thêm một BIRT plugins vào một ứng dụng Eclipse Rich Client Platform (RCP) và sử dụng BIRT Web Viewer plugin cho việc sinh và xem reports.
  • Bọc RE API vào một ứng dụng RE API
  • Bọc RE API vào một ứng dụng Java

Điểm mình thích nhất hiện tại ở BIRT là report được sinh ra theo hai pha (2-phase). Pha đầu, gọi là pha sinh (api IRunTask), nhận report design .rptdesign và sinh ra report document rptdocument, mà giữ dữ liệu và thiết kế của report. Pha thứ hai, gọi là pha trình diễn (api IRenderTask), nhận report duocument và sinh ra HTML, HTML được phân tran hoặc PDF. Với cách này repot được run một lần và được hiển thị dưới nhiều dạng khác nhau mà không cần run lại repot.

Phần sau là code mình học từ WebReport servlet vào một ứng dụng Java được triển khai theo mô hình client-server. Client là một ứng dụng RCP được gắn plugins BIRT Viewer sẽ gửi yêu cầu lên server để lấy rptdocument (yêu cầu có thể là dạng RMI, web service hoặc http). Server là một ứng dụng bọc RE API để run report và trả về rpt document cho client.

Triển khai bao gồm một

  • BirtEngine.java: chịu trách nhiệm nhận về một
  • HelloRE.java: dung BirtEngine để run một employee.rptdesign ra thành employee.rptdocument
  • employee.rptdesign: dùng JDBC để connect db (sẽ tìm hiểu phần customize cái này trong phần sau)

Kết quả chạy lần đầu là lỗi: Birt không thể start OSGI framework. Mình thử lấy ứng dụng web chạy thì được. So sánh hai cái BirtEngine thì chúng khác nhau ở chỗ cái của mình dùng PlatformFileContext còn của ví dụ trên OnJava thì dùng PlatformHttpServletContext. Không có source nên mình không biết bên trong PlatformHttpServletContext làm cái gì mà start được OSGI framework. Đến đây thì bó cái tay.

Lục lại cái birt-runtime-2_1_0 thì thấy là nó có file readme.txt nói rằng muốn chạy RE ở console thì phải set biến môi trường BIRT_HOME=<BIRT_HOME>/ReportEngine. Coi trong file genRerport.sh thì thấy nó dùng java -DBIRT_HOME. He he thế là biết cách chạy rồi. Và kết quả cũng như mong đợi. Vấn đề còn lại là làm sao set cho nó chạy lúc runtime giống như start Eclipse hay Birt-RCP-Designer đầu cần set biến môi trường đâu.

Hôm nay viết đến đây thôi. Đại ca kêu về ăn gà :D thì mình về mai post tiếp phần RCP

technorati tags:

SWT và ảnh nền

Hôm nay là lần đầu tiên mình đặt được ảnh nền cho một control của SWT. Đoạn code mình tìm được nó nằm ở đây
Snippet214.java

Mình cũng đã thử đoạn code trên với một cái view Eclipse RCP và kết quả là như thế này

screenshot-rcp-application-with-background.png
Đây là bước đầu tiên để mình có thể set một cái ảnh nền vào Java Source Editor của Eclipse IDE. Tiếc là API này đến Eclipse 3.2 M4 mới support

technorati tags:

This page contains information on how hibernate is setup for the DAOs that use hibernate.

Hibernate Setup and Configuration – uPortal 3 – Confluence

uPortal đã ứng dụng Spring + Hibernate rồi. Mình post lên đây để ai có kinh nghiệm thì comment, còn mình thì để sau này xem để học cách dùng của uPortal

technorati tags:

Flock

Hôm này tôi download Flock, một trình duyệt base trên FiireFox. Đây là blog đầu tiên tôi dùng chức năng Blog This của Flock

Người bán vé số

Chiều nay đi qua Sở Thương Mại chợt thấyngười bán vé số cụt hai chân đi bằng cái ghế gỗ, mời từng người mua vé số bên ngoài quán cafe sang trọng với bãi giữ xe toàn là Delan, Spacy. Hôm nay cũng là ngày bác Bill đến Việt Nam chơi, không biết nguồn quỹ từ thiện hàng tỷ đô la của ông có giúp gì được cho những người ấy chăng. Mà có giúp chắc cũng vào tay các quan lớn hết thôi, còn đâu đến những người "cù bất cù bơ".

Nếu một ngày tôi giàu có tôi sẽ tìm hết người già về lại một vùng quê, ở đó sẽ có một viện trẻ mồ côi để các ông bà già chăm sóc chúng. Ước mơ vẫn là mơ ước. Muốn vậy mình phải chăm chỉ làm việc kiếm tiền thôi.

Thơ Huỳnh Văn Nghệ

Ai đi về Bắc ta đi với
Thăm lại non sông giống Lạc Hồng
Từ độ mang gươm đi mở cõi
Trời Nam thương nhớ đất Thăng Long.

Ai nhớ người chăng? Ôi Nguyễn Hoàng!
Mà ta con cháu mấy đời hoang
Vẫn nghe trong máu buồn xa xứ
Non nước rồng tiên nặng nhớ thương.

Vẫn nghe tiếng hát thời quan họ
Xen nhịp từng câu vọng cổ buồn
Vẫn nhớ vẫn thương mùa vải đỏ
Mỗi lần phảng phất hương sầu riêng.

Sứ mạng ngàn thu dễ dám quên
Chinh Nam say bước quá xa miền
Kinh đô nhớ lại xa muôn dặm
Muốn trở về quê mơ cảnh tiên.

HUỲNH VĂN NGHỆ
(Chiến khu Đ-1946)

« Newer Posts