随笔 - 59, 文章 - 4, 评论 - 184, 引用 - 7
数据加载中……

[BIRT]-[Tutorial]-使用ScriptDataSet从POJO中获得数据(四)

开始说正题

二、建立使用ScriptDataSourceScripteDataSetBIRT报表

在你的Web项目中建立一个report目录,并在其中建立一个报表文件,如下:

o_Snap1.jpg

首先,根据BIRTHelp文档中的教程,建立一个ScriptDataSource

o_Snap2.jpg
然后建立
ScriptDataSet

o_Snap3.jpg

然后鼠标右击建立的DataSet,选择编辑,在左边选择‘输出列’,为其添加三个输出列,类型为‘任何’,建立后DataSet如下:

o_Snap4.jpg

三、编写ScriptDataSet方法

ScriptDataSet的主要方法有三个:openfetchclose

打开rptdesign文件,用鼠标点击srcDataSet,并在报表文件窗口下方选择‘代码’,就可以看到这些方法,这些是一些类javaScript的代码,并提供了一些BIRT自己的函数,下面说明这三个方法:

l         Open方法:

Open方法用于引入java包,并创建数据库访问资源

写入如下代码:

(其中in_sys_user是数据库中的表)

o_Snap5.jpg
l         fetch方法:

fetch方法用于取得数据并为报表复制

代码如下:
o_Snap6.jpg

l         close方法:

close方法用于关闭资源

代码如下:
o_Snap7.jpg

 

 

 

 

posted @ 2005-09-06 13:44 fisher 阅读(2178) | 评论 (0)编辑 收藏

[BIRT]-[Tutorial]-使用ScriptDataSet从POJO中获得数据(三)

RowSet.java代表行的集合,代码如下:

 1package com.bat.afp.DAOComm;
 2
 3import java.util.Iterator;
 4import java.util.Vector;
 5
 6/**
 7 * @author liuyf
 8 */

 9public class RowSet {
10
11    private Vector<Row>    vector    = new Vector<Row>();
12
13    public RowSet() {
14    }

15
16    public void add(Row row) {
17        vector.addElement(row);
18    }

19
20    public int length() {
21        return vector.size();
22    }

23
24    public Row get(int which) {
25        return (Row) vector.elementAt(which);
26    }

27    
28    public Iterator getIterator(){
29        return vector.iterator();
30    }

31
32    public void dump() {
33        Iterator<Row> itr = vector.iterator();
34        for (;itr.hasNext();) {
35            itr.next().dump();
36        }

37    }

38}

39

Row.java代表数据库中的一行数据,代码如下:

 1package com.bat.afp.DAOComm;
 2
 3import java.util.Hashtable;
 4import java.util.Iterator;
 5import java.util.Vector;
 6
 7/**
 8 * @author liuyf
 9 */

10public class Row {
11
12    private Vector<String>                ordering    = new Vector<String>();
13
14    private Hashtable<String, String>    hashtable    = new Hashtable<String, String>();
15
16    public Row() {
17    }

18
19    public void put(String name, String value) {
20        if (!hashtable.containsKey(name))
21            ordering.addElement(name);
22        hashtable.put(name, value);
23    }

24
25    public int length() {
26        return hashtable.size();
27    }

28
29    public String get(String name) {
30        if(hashtable.get(name)!=null){
31            return hashtable.get(name);
32        }
else if(hashtable.get(name.toLowerCase())!=null){
33            return hashtable.get(name.toLowerCase());
34        }
else if(hashtable.get(name.toUpperCase())!=null){
35            return hashtable.get(name.toUpperCase());
36        }

37        
38        return null;
39    }

40
41    public String get(int which) {
42        String key = ordering.elementAt(which-1);
43        return hashtable.get(key);
44    }

45
46    public String getKey(int which) {
47        String key = ordering.elementAt(which-1);
48        return key;
49    }

50
51    public void dump() {
52        Iterator<String> itr = hashtable.keySet().iterator();
53        for (; itr.hasNext();) {
54            String name = itr.next();
55            String value = hashtable.get(name);
56            System.out.print(name + "=" + value + "");
57        }

58    }

59}

60

posted @ 2005-09-06 13:33 fisher 阅读(1804) | 评论 (0)编辑 收藏

[BIRT]-[Tutorial]-使用ScriptDataSet从POJO中获得数据(二)

     摘要: 配置文件dbconfig.xml如下: 1<config>2    <dbinfo>3        <url>jdbc:oracle:thin:@133.1.72.44:1521:test</url>4  ...  阅读全文

posted @ 2005-09-06 13:30 fisher 阅读(1892) | 评论 (0)编辑 收藏

[BIRT]-[Tutorial]-使用ScriptDataSet从POJO中获得数据(一)

     摘要: 在前面说明过使用Script数据源来获得web service数据源的做法,在实际操作中,发现虽然有BIRT的帮助文件,但同事对BIRT的Script数据源的使用还是不太理解,于是写出下文以便帮助使用BIRT的高级特性   熟悉了BIRT的Script数据源之后,你会感叹BIRT功能之强大,BIRT团队承诺在2.0中加入对数据库连接池的支持,但目前为止,我们还只能通过Script数据...  阅读全文

posted @ 2005-09-06 13:26 fisher 阅读(6891) | 评论 (7)编辑 收藏

[BIRT]-如何使用web service作为数据源

今天跟好友在网上聊天,被问到如何使用web serivce作为数据源来制作BIRT报表,BIRT的例子里都是基于数据库表来构建报表的,所以产生了这个疑问,本想写一篇step by step的文章来详细介绍一下,可是最近实在太忙了,只好在这里介绍一下思路。

这个问题,可以使用ScriptDataSource和ScripteDataSet来解决,ScripteDataSource后台基于java bean,可以在bean里连接自己的数据源,无论是用web service还是用socket取数据源都应该没什么问题,另外还可以为BIRT报表提供数据库连接池,因为本来的报表设计文件是自己去连数据库的,所以难免会比较慢

另外一个问题是基于属性拖拽的问题,这个问题我没有具体试验过ScriptDataSet中的属性拖拽是否可用,但我想既然基于表的可以,基于Bean的对于BIRT的开发组来说也没什么难度,毕竟属性都已经绑定到DataSet里了,拖拽一下又有何妨

posted @ 2005-08-27 10:41 fisher 阅读(2043) | 评论 (1)编辑 收藏

仅列出标题
共12页: First 上一页 4 5 6 7 8 9 10 11 12 下一页