水晶 表java_月光软件站 – 编程文档 – Java – 使用水晶 表JRC(Java Report Component)在Unix下实现实时 表…

目前 上关于水晶 表比较多的是.NET下的讨论,而在JAVA下的讨论相对较少,这次一个项目中购买了水晶 表(CE,CR)来实现 表部分。我们的平台是WebLogic+HP Unix+Oracle9i,开发平台是Weblogic+WindowXP+oracle9i,对于普通 表是布署到CE上,从前台应用中直接调用即可,而 表的数据生成是每天定时调用存储过程从生产系统库上挖掘数据到统计数据库,但是对于实时 表部分CE就无能为力,因为需要直接从生产系统抓数据,所以我采用了JRC10(Java Report Component来实现的,下面是在开发调试过程中的一些问题及解决办法。

一、在开发平台上向 表传递参数时,一直出现””Some parameters are missing values”。

JRC的Sample有问题,正确的参数传递应该是这样的:(来自http://support.businessobjects.com/library/kbase/articles/c2015264.asp)

ParameterField paramField = new ParameterField();

paramField.setReportName(“”);…而它的例子中是没有上面红色的这一句。

二、ORACLE中处理

1、因为需要返回动态结果集,在Oracle中存储过程无法做到,所以定义一个Package来实现,Package是这样定义的

CREATEORREPLACEPACKAGEReportrealtimedataset

AS

/******************************************************************************

NAME:ReportRealTimeDataSet

PURPOSE:营业分类帐实时 表生成Package定义部分

REVISIONS:

VerDateAuthorDescription

———————————————————————-

1.02005-02-20goubo1. Created this package.

******************************************************************************/

/*定义ref cursor类型

不加return类型,为弱类型,允许动态sql查询,

否则为强类型,无法使用动态sql查询;

*/

TYPEmyrctypeISREFCURSOR;

PROCEDUREgetTestResultSet(staffidINTEGER,p_rcINOUTmyrctype);

/*

自定义过程

根据输入条件生成查询结果分类帐

@param condition查询条件(f.handlestaff in (6004,6005) ..etc)

@s_date查询条件,起始日期

@e_date查询条件,结束日期

*/

PROCEDUREgetdataset(conditionVARCHAR2,s_dateDATE,e_dateDATE);

/*

自定义过程

根据输入条件生成查询结果受理量

@param condition查询条件(f.handlestaff in (6004,6005) ..etc)

@s_date查询条件,起始日期

@e_date查询条件,结束日期

*/

PROCEDUREgetdatasetnum(conditionVARCHAR2,s_dateDATE,e_dateDATE);

/*

取营业帐分类清单结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param staff:统计对象(个人),workgroup班组department部门

*/

PROCEDUREgetchargedetail(

s_dateDATE,

e_dateDATE,

departmentVARCHAR2,

WORKGROUPVARCHAR2,

STAFFVARCHAR2,

p_rcINOUTmyrctype

);

/*

取个人营业帐分类结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param staff:统计对象(个人)

@param business:业务

*/

PROCEDUREgetstaffproc(

s_dateDATE,

e_dateDATE,

STAFFVARCHAR2,

BUSINESSVARCHAR2,

p_rcINOUTmyrctype

);

/*

取营业受理量结果集清单

@param s_date:统计起始日期

@param e_date:统计结束日期

@param staff:统计对象(个人),department受理部门workgroup:受理班组param business:业务

*/

PROCEDUREgetacceptdetail(

s_dateDATE,

e_dateDATE,

departmentVARCHAR2,

WORKGROUPVARCHAR2,

STAFFVARCHAR2,

p_rcINOUTmyrctype

);

/*

取个人营业受理量结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param staff:统计对象(个人)

@param business:业务

*/

PROCEDUREgetstaffprocnum(

s_dateDATE,

e_dateDATE,

STAFFVARCHAR2,

BUSINESSVARCHAR2,

p_rcINOUTmyrctype

);

/*

取班组营业帐分类结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param workgroup:统计对象(班组)

@param business:业务

*/

PROCEDUREgetworkgroupproc(

s_dateDATE,

e_dateDATE,

WORKGROUPVARCHAR2,

BUSINESSVARCHAR2,

p_rcINOUTmyrctype

);

/*

取班组营业受理量结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param workgroup:统计对象(班组)

@param business:业务

*/

PROCEDUREgetworkgroupprocnum(

s_dateDATE,

e_dateDATE,

WORKGROUPVARCHAR2,

BUSINESSVARCHAR2,

p_rcINOUTmyrctype

);

/*

取班组营业帐分类部门结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param workgroup:统计对象(部门)

@param business:业务

*/

PROCEDUREgetdepartproc(

s_dateDATE,

e_dateDATE,

departmentVARCHAR2,

BUSINESSVARCHAR2,

p_rcINOUTmyrctype

);

/*

取班组营业受理量结果集

@param s_date:统计起始日期

@param e_date:统计结束日期

@param workgroup:统计对象(部门)

@param business:业务

*/

PROCEDUREgetdepartprocnum(

s_dateDATE,

e_dateDATE,

departmentVARCHAR2,

BUSINESSVARCHAR2,

p_rcINOUTmyrctype

);

/*

自定义函数,根据instr,生成相应的条件输出

@param instr=’6004/6005/6006′ or ‘null’

@return ‘in (6004,6005,6006)’ or ”

*/

FUNCTIONgencondition(INSTRVARCHAR2)

RETURNVARCHAR2;

ENDReportrealtimedataset;

/  2、在Oracle中定义一个会话型的全局临时表(Create Global Temporary table rp_yy_business_accept ()

ON COMMIT PRESERVE ROWS,在每个方法中直接使用这个临时表返回数据即可。(注意为了减少Redo,需要将Oracle9i补丁打到9.2.0.5,参见http://blog.csdn.net/eygle/archive/2004/07/04/33499.aspx)

三、布署到生产系统(weblogic+hp ux时的问题)时出现“Unable to connect to an X11 window server using “:0.0” as DISPLAY variable value”而在开发系统无此问题。

需要在启动weblogic时指定启动项 Djava.awt.headless=true ,参见http://support.businessobjects.com/library/kbase/articles/c2016832.asp

四、布署到生产系统(Unix)时老出 “”Some parameters are missing values”而在开发系统(windows)无此问题

rpt的文件名不能是中文。必须是英文才能正确识别。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91449 人正在系统学习中 相关资源:晶体学查看软件_晶体结构查询-软件测试其他资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月18日
下一篇 2021年1月18日

相关推荐