reportParamsId-参数缓存对象标识ID号
用途说明:在报表运算过程中,报表系统会自动对参数缓存起来,并产生一个能标识缓存对象的标识ID,即reportParamsId。我们可以在request对象中取得本ID,并可以根据本ID取得缓存在参数池中的参数对象。快逸的reportParamsId缓存机制过程如下:
String reportParamsId = null;
//定义reportParamsId
Hashtable hash = new Hashtable();
Enumeration em = request.getParameterNames();
//获取传过来的所有参数
while ( em.hasMoreElements() ) { //把除报表名外的所有参数及其值在Hashtable中保存
String name = ( String ) em.nextElement(); if( name.equals( "report" ) )
continue;
String value = request.getParameter( name );
hash.put( name, value ); } if( hash.size() > 0 ) { //生成一个ID,并把这个ID与刚才准备的hash形成键值关系
reportParamsId = ParamsPool.createParamsId();
ParamsPool.put( reportParamsId, hash ); }
用法说明:由上reportParamsId缓存机制可以看出,本标识与缓存各参数的HashTable的对象是一一对应的关系。所以使用本标识ID大概过程或思路如下:
//首先取得reportParamsId
String reportParamsId=request.getParameter("reportParamsId");
Hashtable params = null;
if(!"".equals(reportParamsId) && reportParamsId != null){
params = com.runqian.report.view.ParamsPool.get( reportParamsId ); } //取得了我们上一步存入的hash
//比如,最简单的情况,我们假设原来有一个参数user = nortan
String user = (String) params.get("user");
System.out.println( user );
//这里打印出来应该是nortan