目录

reportParamsId-参数缓存对象标识ID号

8.1.2. 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