`
redfeather
  • 浏览: 31414 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

BIRT and POJOs as datasources example

    博客分类:
  • BIRT
阅读更多

In this sample i'll try to demostrate how to use POJOs as DataSource.

Java Classes

Contact.java

package gr.osmosis.report.data;
public class Contact {
    String fname;
    String lname;
    String phone;
    
    public Contact(String fname, String lname, String phone){
        this.fname = fname;
        this.lname = lname;
        this.phone = phone;
    }
    
    /**
     * @return Returns the fname.
     */
    public String getFname() {
        return fname;
    }
    /**
     * @param fname The fname to set.
     */
    public void setFname(String fname) {
        this.fname = fname;
    }
    /**
     * @return Returns the lname.
     */
    public String getLname() {
        return lname;
    }
    /**
     * @param lname The lname to set.
     */
    public void setLname(String lname) {
        this.lname = lname;
    }
    /**
     * @return Returns the phone.
     */
    public String getPhone() {
        return phone;
    }
    /**
     * @param phone The phone to set.
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }
}

ContactListFactory.java

package gr.osmosis.report.data;
public class ContactListFactory {
    
    public Contact[] createContactList(){
        Contact[] c = new Contact[4];
        
        c[0] = new Contact("stavros", "kounis", "2310886269");
        c[1] = new Contact("dimitris", "kounis", "2310888270");
        c[2] = new Contact("dimitris", "adamos", "2310998417");
        c[3] = new Contact("nikos", "koufotolis", "2321013770");
        
        return c;
    }
}

Report

Create a new BIRT report file (.rptdesign) and name it (for example) contactscript.rptdesign.

Datasources

DataExlorer.gif

Change to "Report Design" perspective. Find the "DataExplorer" View and create a new "Data Source -> Script Data Source" (named srcScript).

Now right click on "Data Sets" node and create a new dataset:


Data Set Name: setScript
DataSource: srcScript (we have allready create it above)

 

 

Set up columns
Right click in your just created data set (setScript) and select "edit"
In the "Edit Data Set" Window select the node "Output Columns".
Add here 3 entries:

Name / Type
--------------
columnFirstName / Any
columnLastName / Any
columnPhoneNumber / Any

EditDataSet.gif
Script code
Select now your Data Set (setScript) and set your report editor to have "Code" tab selected

1. put the below code in open method of your DataSet

count = 0;
cf = new Packages.gr.osmosis.report.data.ContactListFactory();
c = cf.createContactList();

now we have an array of Contacts stored in "c" variable.

open.gif

2. put the below code in fetch method of your DataSet

if (count < c.length-1){
	count ++;
	row["columnFirstName"] = c[count].getFname();
	row["columnLastName"] = c[count].getLname();
	row["columnPhoneNumber"] = c[count].getPhone();
	return true;
}

return false;

 

fetch.gif

Report Design

In your report editor change to "Layout" Tab

In Data Explorer View your data set must have 3 children nodes (one for each column you have created). Drag 'n drop each one from Data Explorer View to report's layout view.

Preview

Here is a litle problem when we are working in design mode. Report's script must be able to find our java classes (Contact.java, ContactListFactory.java). Report designer use BIRT's web-app viewer to render (preview) the report. But this WEB-APP does not know where to look for our java classes. This web-app exist as an eclipse plug-in.

for example:


C:\JProgramFiles\eclipse-SDK-3.0.2-win32\eclipse\plugins\org.eclipse.birt.report.viewer_1.0.0

 

We have to put our classes in a "classes" folder in this web-app. To do this create a "classes" folder at birt\web-inf.

Build Contact.java and ContactListFactory.java and put the produced .class files in this "classes" folder.
Dont forget to create inside "classes" folder the directory structure that match the package name.

for example:


if you just copy paste the code from this post then you must have a path like:
C:\JProgramFiles\eclipse-SDK-3.0.2-win32\eclipse\plugins\org.eclipse.birt.report.viewer_1.0.0\birt\WEB-INF\classes\gr\osmosis\report\data

 

Now you can preview your report selecting "Preview" tab.

report.gif

 

分享到:
评论
1 楼 wangbinjr 2009-07-08  
图片没有显示!!

相关推荐

    POJOs入门到精通

    **POJOs(Plain Old Java Objects)** 是Java编程中的一个基本概念,它是指那些没有特殊框架或库依赖,纯粹的、普通的Java对象。在Java世界里,POJOs是面向对象设计的基础,它们通常用来封装数据和业务逻辑。本教程...

    Manning - Pojos In Action

    《Pojos in Action》是一本专注于Java编程领域中Plain Old Java Objects(POJOs)技术的专业书籍。这本书由Manning出版社出版,旨在深入探讨如何在实际开发中有效地使用POJOs,以及它们在现代Java应用程序设计中的...

    Generate POJOs.groovy

    IDEA通过Generate.POJOs.groovy映射数据库自动生成对应的Java实体类, 具体逻辑不详细展示,可参考:https://blog.csdn.net/weixin_40375601/article/details/106807644

    IDEA代码生成,Generate POJOs.proovy内容替换

    打开里面的内容,替换idea项目中的Generate POJOs.groovy文件(文件路径:SCratches and Consoles -&gt; extensions -&gt; Database Tools and SQL -&gt; schema - &gt; Generate POJOs.groovy)

    POJOS in Action

    《POJOS in Action》是一本专注于简单Java对象(Plain Old Java Objects,简称POJOs)的实战指南,由Manning出版社在2005年出版。POJOs是Java编程中的一个基本概念,它代表那些没有特殊框架依赖、遵循传统Java类结构...

    MyVo Generate POJOs.groovy.zip

    在给定的压缩包文件"MyVo Generate POJOs.groovy.zip"中,包含了一系列以"Generate POJOs.groovy"命名的脚本,如"My Generate POJOs.groovy"、"MyDto Generate POJOs.groovy"、"MyInsertDto Generate POJOs.groovy...

    Manning - Pojos In Action.pdf

    《Pojos In Action》这本书由Chris Richardson撰写,聚焦于使用POJOs(Plain Old Java Objects)设计轻量级Java企业应用的关键问题,通过深入的实例解析,为读者提供了实践指导。该书不仅扩展了Martin Fowler的...

    IDEA逆向生成POJO/DAO/MAPPER 《Generate POJOs.groovy》

    IDEA自带的插件Generate POJOs.groovy 比较简陋,不能生成完整的dao/mapper,切生成的POJO没有注解。没有统一格式化,所以在此基础上进行了扩展能够简单的生成pojo/dao/mapper. 使用时选择目录后会在改目录下生成...

    pojos in action

    《Pojos in Action》是一本深入探讨Java轻量级解决方案的经典教程,它主要针对企业级应用开发领域,尤其关注EJB(Enterprise JavaBeans)编程模型的局限性以及为何转向POJOs(Plain Old Java Objects)和轻量级框架...

    pojos_in_action_-_src.zip

    《Pojos in Action - 源码探索与工具运用》 "pojos_in_action_-_src.zip" 这个压缩包文件,暗示我们它包含了与《Pojos in Action》一书相关的源代码。这本书主要讲解了Plain Old Java Objects(POJOs)的使用和实践...

    POJOS IN ACTION开发轻量级企业应用程序

    POJOS IN ACTION开发轻量级企业应用程序

    Custom Generate POJOS.groovy

    在idea中逆向生成实体

    POJOs.in.Action

    ### POJOs in Action:利用轻量级框架开发企业应用 #### 一、概述与背景 《POJOs in Action》是一本针对轻量级Java企业应用开发的实践指南。该书通过构建一个完整的应用程序来深入探讨POJO(Plain Old Java Object...

    springboot jpa 自动生成实体类的 文件 Generate POJOs.groovy

    springboot jpa 自动生成实体类的 文件 可以拿走直接用 Generate POJOs.groovy

    pojos.groovy

    idea利用自带插件Generate POJOs.groovy生成pojo类。idea可以连接数据库,datagrip集成在里面了。

Global site tag (gtag.js) - Google Analytics