使用eclipse在jsp上显示水晶报表(六)参数的简单实用用法

在很多时候, 你会向报表中传递一些比较零散的数据, 并且这些数据是动态的, 有些可以从数据库中取得, 有些是自己自定义的. 而水晶报表的数据源不允许自定义的字段,  这个时候你就可以中参数来解决这个问题了, 你可以在后台把 值 传递给 报表中的对应参数.  (ps.参数名字不分大小写)

            //  STRING VALUE PARAMETER.  
            String stringValue  =   " my title33 " ;     //  TODO: Fill in value
            
// HashMap变量中的元素的key值对应报表中参数的名字
            HashMap map  =   new  HashMap();
            map.put(
" p1 " ,stringValue);    
            map.put(
" p2 " , " abx " );
            map.put(
" p3 " , " abc " );            
            
            
// 报表参数的Controller
            ParameterFieldController parameterFieldController  =  
                        clientDoc.getDataDefController().getParameterFieldController();
            
if (parameterFieldController  ==   null ) {
                
                
throw new NullPointerException("Can't get ParameterFieldController!!");
            
            }

                
            
// HashMap对象的迭次        
            Iterator it  =  map.keySet().iterator();    
            
                                    
        
while (it.hasNext()) {
                
                String key 
= (String)it.next();    
                
            
try{
                
                    
if(!"".equals(key) && key != null)//下面这个方法最重要, 对参数赋值
                    parameterFieldController
                         .setCurrentValue(
"", key.trim(), map.get(key));
                         
             }
catch(ReportSDKException rde){
                    
//处理出现没对应的参数或其他原因的异常
                    System.out.println("Parameter:" + key + " throw Exception!!: " + rde);
              }

                
         }

我的报表文件中有2个参数, 分别是p1和p2, 没有p3, 所以抛出异常, 不过我不想界面上显示异常的信息, 也不想异常中断我的程序, 所以我只是把异常的相关信息显示在控制台里面.

运行后我的报表的参数p1和p2都被成功赋值, 控制台也显示了空参数的异常, 当然那是没有p3的缘故.

是不是很简单, 由于这只是个小小的例子, 所以写得很简单. 但在实际运用中要加以完善才行, 对方法更好的封装, 对数据更加完善的判断.

//例子中用到的类, 想把下面的东西插入到代码中, 死活没反映!!!!!

java.util.HashMap,
java.util.Iterator,
com.crystaldecisions.reports.sdk.ParameterFieldController,
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException,
java.lang.NullPointerException

(有谁知道在csdn的blog中怎么上传图片吗? 唉, 有些东西用文字还真是难说清楚啊!)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值