您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 如何使用birt的ScriptedDateSource数据源
关于如何使用birt的ScriptedDateSource数据源的问题使用java程序,通过jdbc连接数据库获得数据,然后birt的script中通过调用java类来获得数据库中的数据,最终实现报表的生成。使用脚本数据源建立报表的步骤如下:第一步:创建报表项目,然后建立一个新的报表。接着创建报表的数据源,这里我们建立的是脚本数据源。第二步:创建完脚本数据源(datesource)以后,创建数据集(dateSet),这里数据集的数据源我们选择我刚建立的脚本数据源。然后添加一些输出字段。第三步:创建数据集完成后,因为我们的目的是要通过birt调用java类中的方法去读取数据库中的数据,到这一步,数据集中是没有任何数据的,所以我们需要对数据集的一些事件进行定义(如:如何去调用java类读数据库中的数据,获得了数据后如何传递给birt之类的问题),这里就首先简单的定义了三个事件:open(),fetch(),close().这三个是常用的方法。Open()事件,就是打开数据集时,我们进行的一些操作。相应的代码:importPackage(Packages.com.***.birt);//导入相关的java类包varsqlStr=“selectci_ename,ladr_sfromtd_a”;//sql查询语句vardateSource=newPackages.com***.birt.ScriptDateSource();//这里是新建一个ScriptDateSourcejava类ResultDateList=dateSource.sendQery(sqlStr);Fetch()事件,就是每次获取数据集的一条数据。相关代码是:If(resultDateList==null||resultDateList.next()==false){Returnfalse;}else{Row[1]=resultDateList.getString(“CI_ENAME”);Row[2]=resultDateList.getString(“LADR_L”);Returntrue;}Close()方法:是在关闭数据集的时候进行的一些操作。代码:ResultDateList=null;注意:用var定义的变量是局部变量,例如上面的sqlStr等,这些只能在方法内部来使用。没有用var来修饰的变量是全局变量,例如,resultDateList就是全局变量,在所有的方法中都能使用这些变量。第四步:设计报表,我们先简单的使用了一个表列出数据库中的数据。第五步:创建java类Packagecom.***.birt;Importjava.sql.Conncetion;Importjava.sql.DriverManager;Importjava.sql.ResultSet;Importjava.sql.SQLException;Importjava.sql.Staement;PublicclassScriptDateSource{PrivateConnectionm_conn;PrivateStatementm_stmt;Stringdriver=“oracle.jdbc.driver.OracleDriver”;Stringurl=“jdbc:oracle:thin:@192.168.1.243:1521:mdev”;StringuName=“gkdemo”;StringuPwd=“gkdemo”;ResultSetrs;//构造方法PublicScriptDateSource(){This.setDriver(driver);This.setConnection(url,uName,uPwd);}PublicBooleansetDriver(Stringdriver){Try{Class.forName(driver);Returntrue;}catch(Exceptione){e.printStackTrace();}Returnfalse;}PublicBooleansetConnection(Stringurl,Stringusername,StringuserPwd){Try{m_conn=DriverManager.getConnection(url,username,userPWD);M_stmt=m_conn.createStatement();Returntrue;}Catch(Exceptione){e.printStackTrace();}Returnfalse;}//处理查询PublicResultSetsendQuery(Stringsql){Try{ResultSetm_rs=m_stmt.executeQuery(sql);Returnm_rs;}catch(Exceptione){e.printStackTrace();Returnnull;}}//处理数据更新PublicintsendUpdate(stirngsql){Returnm_stmt.exeuteUpdate(sql);}catch(SQLExceptione){e.printStackTrace();Return-1;}}//测试上面写的程序的正确性Publicstaticvoidmain(Stringargs[]){ScriptDataSourcedb=newScriptDataSource();Stringsql=“select*fromDD_034”;ResultSetrs=db.send.Query(sql);Try{If(rs!=null){While(rs.next()){System.out.println(rs.getString(“REMARK_DR”));}}}catch(SQLExceptione){e.printStackTrace();}}
本文标题:如何使用birt的ScriptedDateSource数据源
链接地址:https://www.777doc.com/doc-503 .html