关闭

birt报表笔记一

403人阅读 评论(0) 收藏 举报
运行时环境要下载birt-runtime     
运行的参数:
  • frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:
    http://localhost:8080/birtApp/frameset?__report=报表文件路径&参数=........
  • run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:
    http://localhost:8080/birtApp/run?__report=报表文件路径&参数=........

对于以上2个动作,以下列出可用的参数:

选项 说明
__format 报表输出格式:html或pdf,缺省是html。对于frameset不起作用。
__isnull 指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。
__locale 本地化选项,缺省是jvm的locale。
__report 报表设计文件路径。
报表参数 报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,弹出的参数值已经改变。
 

 中文传参:

1.之前看网上有人发帖说有个解决办法是“在viewservlet.jar下找到org/eclipse/birt/report/utility下找到ParameterAccessor.class文件,现在要修改这个文件的源代码, 

你可以在你从CVS中签出的源代码中的org.eclipse.birt.report.viewer/birt/WEB-INF/classes/org/eclipse/birt/report/utility文件夹中找到ParameterAccessor.java文件,在这个java文件中找到这行:

public static final String UTF_8_ENCODE = "UTF-8"; //$NON-NLS-1$

将这行改为

public static final String UTF_8_ENCODE = "GBK"; //$NON-NLS-1$

然后将这个编译好的class文件压缩到viewservlets.jar的同等目录下,替换原来的文件”,本人也试了这种方法,但没见凑效,不过上面的解决方法好像是在birt2.1的环境下,这个没仔细试,也许对birt2.1有效吧。


2.在JSP中调用BIRT报表时,传的参数中有中文字符,即URL中包含中文字符,这时在BIRT端接收到的参数拼SQL语句后发现中文字符被转码,造成SQL中的条件不正确。
因为在JSP中调用BIRT是在一个JS脚本中,因此要想办法在JS中先将中文转成UTF-8,并且在BIRT获取参数后再将UTF-8转换回中文即可。
实现代码:
页面JS:
Var mychecktype = “中文”;
sqlWhere+="and t.CHECK_TYPE = '"+escape(encodeURI(mychecktype))+"'";

BIRT脚本:
sql+=decodeURI(mycondition);

3.jsp页面:
window.open('frameset?__report=reports/pz_report.rptdesign&__format=HTML&cphParameter='+escape(encodeURI(cph)));
birt 的Script中的initialize中这样写
var cph = params["cphParameter"].value
params["cphParameter"].value = decodeURI(cph);

4.修改tomcat--->conf---->server.xml

 <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" URIEncoding="UTF-8"
               redirectPort="8443" />

其中: URIEncoding="UTF-8"是加上去的,之前没有

注意:JSP页面的编码和server.xml中的URIEncoding要一致。




 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25549次
    • 积分:351
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:62篇
    • 译文:0篇
    • 评论:0条
    文章分类