BIRT 学习笔记

BIRT知识集锦(基础知识大全) 

0. 
File - New - Project - BIRT - Report Project 
Report Project - New - Report 
--------------------------------- 
1.Data Sources 
Driver Class:oracle.jdbc.driver.OracleDriver ( v1.0) 
Driver  URL:jdbc:oracle:thin:@192.168.1.1:1521:ORA92  
--------------------------------- 
2. 
我现在用的birt是2.3.0的版本, 
GEF是3.5.0的 
emf-xsd-Update是2.5.0的 
emf-xsd-SDK是2.5.0的 
请问有没有兼容问题? 
--------------------------------- 
3. 
请先安装Eclipse、GEF 、EMF 和BIRT 。 

--------------------------------- 
4. 
在web工程里使用birt 
下载birt的示例工程,将示例工程里的webcontent和web-inf下的东西拷到你的工程根目录下。 
在jsp页面里访问报表使用url : frameset?__report=reportName¶m=?paramValue 
这里,frameset也可使用run,使用frameset支持ajax功能,支持报表的分页等 
--------------------------------- 
5. 
birt去除报表下面的日期 
这个问题之前也有人问过,不过觉得很简单一直没在论坛里写出来,今天又有人问了,我就写一下吧 
首先点击设计器主页 - 点击属性,- 取消“页眉”“页脚”。即取消显示页眉和页脚。 
也可以在xml里设置: 
<page-setup> 
        <simple-master-page name="Simple MasterPage" id="2"> 
            <property name="type">a4</property> 
            <property name="leftMargin">10px</property> 
            <property name="rightMargin">10px</property> 
            <property name="showHeaderOnFirst">false</property> 
            <property name="showFooterOnLast">false</property>  //是否显示页脚 
        </simple-master-page> 
    </page-setup> 
说明: 
打印报表会出现一些如网页地址的信息,那是在IE里设置的。和birt没有关系。 
--------------------------------- 
6. 
property editor table用法: 
properties可以设置整张表的属性,如边距、边框、字体等 
binding可对任何报表指定数据集 
sorting可以指定报表中数据决定排序顺序的列和排序方向 
groups可以添加、删除和编辑分组字段 
highlights格式化规则,规则可细分为两部分:条件部分和应用格式部分。如条件部分:成绩小于60分,格式部分就是:用红色字体标记成绩。 
filters可对数据集的数据进行进一步的筛选 
--------------------------------- 
7. 
请问如何将生成的.rptdesign文件内容不以文件形式存在,而是存入到数据表中的一个字段 
那个字段应该使用blob大字段了。那个报表文件其实是个xml文件,你看一下xml如何保存为blob字段里吧。 

--------------------------------- 
8. 
(1)implements 实现接口 
public class DebugProxy implements java.lang.reflect.InvocationHandler {...} 
java.lang.reflect.InvocationHandler为接口的名字 
DebugProxy 为类名 
(2)extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了 
比如 
class A extends B implements C,D,E 

--------------------------------- 
9. 
birt uil详细说明 
__report: 指定要显示的报表名称 
__title:定义报表标题 
__parameterpage:是否弹出报表参数对话框 
__format:指定输出报表的格式 
__toolbar: 是否显示工具条 
__navigationbar:是否显示导航条 
__showtitle:是否显示标题 
__locale:  指定语言 
__rtl:文字显示顺序 
__bookmark:设置书签名字 
__page:指定报表页数 
__pagerange:指定页数范围 
__masterpage:是否显示页脚 
__maxrows:设置数据最大行数 

--------------------------------- 
10. 
隐藏与显示报表工具栏,导航栏 

webcontent\birt\pages\layout\FramesetFragment.jsp里找到下面这句: 
Mask.setBaseElements( new Array( birtToolbar.__instance, navigationBar.__instance, birtReportDocument.__instance) ); 
birtToolbar.__instance报表工具栏,就是上面有打印,导出图片按钮的那行。 
navigationBar.__instance导航栏,就是有下一页,多少页什么的。 
在里只要new Array去除相应的就行了。 
--------------------------------- 
11. 
报表与页面交互功能演示: 
现在我们来看查看按钮的制作: 
插入文本,选择html,然后 输入以下内容: 
<input type="button" style="background: #F1E1CD;border: 1px solid #435425;width: 80px;height: 20px;line-height: 20px;" id="<VALUE-OF>row["TRUNKGRADE"]</VALUE-OF>" name="carradio"  value="查看"> 
注意:"<VALUE-OF>row["TRUNKGRADE"]</VALUE-OF>是取我们数据集的列数据。 
parent.getCarInfo(this),这里当点击按钮时,调用父窗口的getCarInfo方法,把自己传过去。这个方法是我写在jsp页面里的。 
我们来看看getCarInfo方法: 
carId = o.id; 
var url = "/report/preview?__report=/report/ahlz/"+ 
"carinfo.rptdesign&__parameterpage=false&carId=" + carId; 
window.open(url); 

--------------------------------- 
12. 
使用birt 制作报表,在jsp页面传中文参数到报表里显示会出现乱码情况。 
应该把tomcat里编码设置为gbk,如下: 
  <Connector port="8080" protocol="HTTP/1.1" URIEncoding="GBK" 
               connectionTimeout="30000" /> 
jsp页面的编码方式也设置为gbk 
在报表里以动态数据显示的中文字符,应该先编码中ascii码,再使用。 

--------------------------------- 
13. 
在web工程里使用birt 
下载birt的示例工程,将示例工程里的webcontent和web-inf下的东西拷到你的工程根目录下。 
在jsp页面里访问报表使用url : frameset?__report=reportName&para;m=?paramValue 
这里,frameset也可使用run,使用frameset支持ajax功能,支持报表的分页等 

--------------------------------- 
14. 
birt 动态显示列 
使用birt默认数据库, 
sql:select * 
from CLASSICMODELS.OFFICES 
只使用了officecode,city,phone三个列,将这三个列加到表格里。 
添加参数p,设置为列表,可多选。 
如下图: 
然后在表格的各列选择列,属性,可见性,设置可见性表达式如下: 
officecode列: 
var v =  params["p"].value;                     //获得参数 
var s; 
for(var i=0; i<v.length; i++){             //对参遍历 
    s+=v+";";             //加到一个变量里,因为我发现直接在这里判断是不行的。 

if(s.indexOf("officecode") != -1){            //判断是否含有officecode,如果有就显示,没有就不显示。 
    false; 
}else{ 
true; 


--------------------------------- 
15. 
安讯百灵报表BIRT设计器专业版  


16. 【DEBUG代码调试】打印信息 

Birt中的js脚本不能用alert直接弹出提示,也没法用断点跟踪(至少我没发现)。 

** 需要注意的是,必须要把报表部署在tomcat下才能打印,用Preview预览模式不能打印。 

用一个简单方法可以打印,在脚本里写上 

importPackage(Packages.java.lang); 

System.out.println("test=========="); 
复制代码 

就可以再控制台里打印出来,进行简单的调试了。 

下面例子顺便给出DEBUG信息 

--------------------------------- 

17.【数据源脚本化】 
首先: 
设置创建配置文件db.properties,我这里为了方便直接放在c盘目录下了。 
db.properties内容如下: 
driver=net.sourceforge.jtds.jdbc.Driver 
url=jdbc:jtds:sqlserver://localhost:1433/pubs 
userid=sa 
password=pass 
然后: 
importPackage( Packages.java.io); 
importPackage( Packages.java.util); 
importPackage(Packages.java.lang); 
fin = new java.io.FileInputStream("c:\\db.properties"); 
props = new java.util.Properties( ); 
props.load(fin); 
this.setExtensionProperty("odaURL", props.getProperty("url")); 
this.setExtensionProperty("odaDriverClass", props.getProperty("driver")); 
this.setExtensionProperty("odaUser", props.getProperty("userid")); 
this.setExtensionProperty("odaPassword", props.getProperty("password")); 
System.out.println("test=========="+this.getName()); 
fin.close(); 

--------------------------------- 
18. 

数据源:数据的来源,或提供者。如xml数据源、jdbc数据源等。 数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。 报表以及报表项,报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、数据源三者间的关系:数据源 --- 数据集 --- 报表。 报表参数:查询参数的表现形式,使用它可以构建更灵活的报表。 模板和库:主要用于复用报表设计,提高报表开发的效率。


原文地址:http://evoleht.iteye.com/blog/824021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值