日期:2014-05-18  浏览次数:20650 次

100分求水晶报表参数设置问题。。。。
我们系统里面用到水晶报表展示,就是从水晶里面读取参数出来,某些符合一定规则的参数自己设置展示的方式,程序是用用java实现的,,一般的报表设置参数都没问题。但是某些参数在为空的情况下第一次可以显示出来,翻页显示就要提示重新输入参数,点击确定才能看。我每个参数,即使为空都设置过的,。。水晶自己带的desktop.war在浏览这个报表的时候也会出现这样的问题,但是iis下的csp文件可以浏览。希望有兄弟遇到过这样情况的可以提供帮助。。。
代码如下:
IEnterpriseSession   es   =   (IEnterpriseSession)   session.getAttribute( "enterpriseSession ");
        IInfoObject   oInfoObject   =   (IInfoObject)   session.getAttribute( "infoObject ");
        IReport   report   =   (IReport)oInfoObject;
        List   parameters   =   report.getReportParameters();
        Fields   fields   =   new   Fields();
        //0:number,   1:currency,   2:boolean,   3:date,   4:time,   5:datetime,   6:String
        //0:数字、1:货币、2:boolean、3:日期、4:时间、5:时间日期、6:字符串
        if(parameters.size()   >   0){
        int   pSize   =   parameters.size();
        for   (int   i   =   0;   i   <   pSize;   i++){
IReportParameter   param   =   (IReportParameter)report.getReportParameters().get(i);
    String   paramName   =   URLEncoder.encode(param.getParameterName(),   "utf-8 ");
    String   paramValue   =   (String)requestParamMap.get(paramName);
    ParameterField   pf   =   new   ParameterField();
    pf.setAllowNullValue(false);
    //设置参数名称
    pf.setName(param.getParameterName());
    //try{
    //ParameterField   pf   =   param.getParameterField();
    //}catch(Exception   e){}
    //设置参数值类型
    int   valueType   =   param.getValueType();
    switch(valueType){
    case   0:
    pf.setType(FieldValueType.numberField);
                break;
            case   1:
              pf.setType(FieldValueType.currencyField);
                break;
            case   2:
            pf.setType(FieldValueType.booleanField);
                break;
            case   3:
            pf.setType(FieldValueType.dateField);
                break;
            case   4:
            pf.setType(FieldValueType.timeField);
break;
            case   5:
            pf.setType(FieldValueType.dateTimeField);
                break;
            case   6:
                                pf.setType(FieldValueType.stringField);
    &nbs