使用birt遇到的问题记录
Q: birt连接oracle数据库的报表,发布到tomcat下,运行报错!
--------------------------------------------------------------------------
A:把oracle的driver考到 \WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc_XXXXXXXXXXX\drivers
==============================================================================================================
Q: 数据集如何使用oracle存储过程?
--------------------------------------------------------------------------
A: 1.建立数据源
2.建立数据集
a.建立存储过程
CREATE OR REPLACE PACKAGE stored_procedure IS
TYPE rtncursor IS REF CURSOR;
PROCEDURE data_set(batch IN VARCHAR2,out_data OUT rtncursor);
END stored_procedure;
CREATE OR REPLACE PACKAGE BODY stored_procedure IS
PROCEDURE data_set(batch IN VARCHAR2,out_data OUT rtncursor) IS
BEGIN
OPEN out_data FOR
SELECT b.* FROM sf_feed_stock_product b WHERE b.product_batch = batch;
END;
END stored_procedure;
b. 在Outline中的Data Sets中右键新建Data Set
注意: 在New Data Set 对话框中, 一定要把Data Set Type 选为SQL Stored Procedure Query, 默认是SQL Select Query.
否则在后面的操作中, 无法处理返回游标.
(小叶刚开始没注意到, 试了很多次也没成功, 还以为birt不支持oracle的存储过程了..)
c. click next, 进入Query对话框 , 在右边的文本区中填入
{call SF_FEED.STORED_PROCEDURE.DATA_SET(?,?)}
注意: 需要填入包名
d. click finish
e. 编辑parameters
由于传入了一个参数, 所以要设置传入参数默认值或者和请求参数绑定
f. 剩下的就和普通的sql select Query 操作是类似的了
==============================================================================================================
Q: 自定义的模板放在什么位置?
--------------------------------------------------------------------------
A: 默认是放在%DESIGNER_HOME%\plugins\org.eclipse.birt.resources_XXXXX\custom-templates目录下, 可以通过Window->Preferences->Report Design->Template进行设置