http://www.finereport.com/demo.jsp.htm

解决方案 »

  1.   

    /*
     * Create Date: 2004-8-14  11:06
     * Create By: 李春雷
     * purpose:设置水晶报表的查询参数(目前支持7个参数的查询,有用的参数为编号)
     */
    package com.infoearth.report; 
    import com.crystaldecisions.report.web.viewer.*;
    import com.crystaldecisions.sdk.occa.report.data.*;
    import com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory; 
    import com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2;
    import com.crystaldecisions.sdk.occa.report.reportsource.IReportSource;public class ReportInit 

        private IReportSource rptSource;
        
        private Fields fields;
        
        public ReportInit(){
            rptSource = null;
            fields = null;
            }
        
        public IReportSource getRptsource(){
            return rptSource;
            }
            
        public Fields getFields(){
            return fields;
            }
            
        public  boolean setReport(String fname,String rptID){
             //获得查询条件
            String FileName = fname + ".rpt";
            String BH = rptID;
            String path = "report/"+FileName; //报表文件路径         
            try{                        
                IReportSourceFactory2 rsf = new JPEReportSourceFactory(); 
                java.util.Locale localetest = java.util.Locale.CHINA;
                rptSource = (IReportSource)rsf.createReportSource(path,localetest); 
                fields = new Fields(); 
                ParameterField pfield1 = new ParameterField(); //编号
                ParameterField pfield2 = new ParameterField(); //单位
                ParameterField pfield3 = new ParameterField(); //人
                ParameterField pfield5 = new ParameterField(); //FIELD5
                ParameterField pfield6 = new ParameterField(); //FIELD6
                ParameterField pfield4_KSSJ = new ParameterField(); //开始时间
                ParameterField pfield4_JSSJ = new ParameterField(); //结束时间            Values vals1 = new Values(); 
                Values vals2 = new Values(); 
                Values vals3 = new Values(); 
                Values vals5 = new Values(); 
                Values vals6 = new Values(); 
                Values vals4_KSSJ = new Values(); 
                Values vals4_JSSJ = new Values();             ParameterFieldDiscreteValue pfieldDV1 = new ParameterFieldDiscreteValue(); 
                ParameterFieldDiscreteValue pfieldDV2 = new ParameterFieldDiscreteValue(); 
                ParameterFieldDiscreteValue pfieldDV3 = new ParameterFieldDiscreteValue(); 
                ParameterFieldDiscreteValue pfieldDV5 = new ParameterFieldDiscreteValue(); 
                ParameterFieldDiscreteValue pfieldDV6 = new ParameterFieldDiscreteValue(); 
                ParameterFieldDiscreteValue pfieldDV4_KSSJ = new ParameterFieldDiscreteValue(); 
                ParameterFieldDiscreteValue pfieldDV4_JSSJ = new ParameterFieldDiscreteValue(); 
                //设置第一个参数:编号
                pfield1.setReportName(""); 
                pfield1.setName("BH"); 
                pfieldDV1.setValue(BH); 
                pfieldDV1.setDescription("编号"); 
                vals1.add(pfieldDV1); 
                pfield1.setCurrentValues(vals1); 
                //设置第二个参数:单位部门
                pfield2.setReportName(""); 
                pfield2.setName("DW"); 
                pfieldDV2.setValue(""); 
                pfieldDV2.setDescription("发单部门"); 
                vals2.add(pfieldDV2); 
                pfield2.setCurrentValues(vals2); 
                //设置第三个参数:人
                pfield3.setReportName(""); 
                pfield3.setName("REN");
                pfieldDV3.setValue(""); 
                pfieldDV3.setDescription("申请人、下达人、操作人、负责人等");  
                vals3.add(pfieldDV3); 
                pfield3.setCurrentValues(vals3); 
                //设置第五个查询字段
                pfield5.setReportName(""); 
                pfield5.setName("FIELD5");
                pfieldDV5.setValue(""); 
                pfieldDV5.setDescription("查询字段5:任务来源线路名称等");  
                vals5.add(pfieldDV5); 
                pfield5.setCurrentValues(vals5); 
                //设置第六个查询字段
                pfield6.setReportName(""); 
                pfield6.setName("FIELD6");
                pfieldDV6.setValue(""); 
                pfieldDV6.setDescription("查询字段6:更改原因、工作内容等");  
                vals6.add(pfieldDV6); 
                pfield6.setCurrentValues(vals6); 
                //设置开始时间
                pfield4_KSSJ.setReportName(""); 
                pfield4_KSSJ.setName("KSSJ");
                pfieldDV4_KSSJ.setValue(""); 
                pfieldDV4_KSSJ.setDescription("开始时间");  
                vals4_KSSJ.add(pfieldDV4_KSSJ); 
                pfield4_KSSJ.setCurrentValues(vals4_KSSJ); 
                //设置结束时间
                pfield4_JSSJ.setReportName(""); 
                pfield4_JSSJ.setName("JSSJ");
                pfieldDV4_JSSJ.setValue(""); 
                pfieldDV4_JSSJ.setDescription("结束时间");  
                vals4_JSSJ.add(pfieldDV4_JSSJ); 
                pfield4_JSSJ.setCurrentValues(vals4_JSSJ); 
                //参数字段和报表关联
                fields.add(pfield1); 
                fields.add(pfield2); 
                fields.add(pfield3); 
                fields.add(pfield5); 
                fields.add(pfield6); 
                fields.add(pfield4_KSSJ); 
                fields.add(pfield4_JSSJ); 
                return true;
                }
            catch(Exception e){                
                System.out.println("Class:ReportInit错误:"+e);
                return false;
                }       
        }        

      

  2.   

    解决了吗?
    在 crv.setParameterFields(fields);之前
    加上 viewer.setEnableParameterPrompt(false);试试