我的代码如下:看来只有靠自己啊这个是写的一个ReportInit 类,用来得到参数字段的,目前只用到了一个参数字段:
/*
* 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;
}
}
}
/*
* 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;
}
}
}
解决方案 »
- SSH整合问题
- ibatis查询时出现以下问题,请高手看看
- 关于Hibernate
- vista下,应用服务的系统日期为什么总晚8个小时
- 怎样把checkbox的值传到页面?
- 十一写了一份自己的持久层框架
- 使用javax.mail.*下面的类和接口的时候,出现包找不到的现象,请教应该加什么包到什么地方?
- 请用过JasperReport的朋友进来看看这个问题!!!多谢了!!!
- 求助!SSH分页显示的每页数据都一样!!
- 关于多线程和线程调度、优先级的问题??
- 当insert into tb1 values(1,2,3) select * from tb1 两语句一起执行时,如何取得更新数量和结果集?
- Struts错误信息显示问题,高分求教
/**
* @jpf:action
* @jpf:forward name="success" path="viewer.jsp"
* @jpf:forward name="false" path="error.jsp"
*/
protected Forward showRpt()
{
String rptName = this.getRequest().getParameter("rptID");
String rptBH = this.getRequest().getParameter("rptBH");
if ((rptName!=null) && (rptBH!=null)) {
rptName = this.dbCtrl.getEmbodyName(rptName);
ReportInit rpt = new ReportInit(); //这个是初始化一个ReportInit对象
boolean result = rpt.setReport(rptName, rptBH);
if(result==true) {
Fields fields = rpt.getFields();
IReportSource rptSource = rpt.getRptsource();
this.getSession().setAttribute("fields", fields);
this.getSession().setAttribute("rptSource", rptSource);
return new Forward("success");
} else {
return new Forward("false");
}
}
return new Forward("false");
}
文件名称:viewer.jsp:
<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page import= "com.crystaldecisions.report.web.viewer.*,
com.crystaldecisions.sdk.occa.report.data.*,
com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory,
com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2,
com.crystaldecisions.sdk.occa.report.reportsource.IReportSource"%>
<%@ taglib uri="netui-tags-html.tld" prefix="netui"%>
<!-- ../crystalreportviewers10/css/default.css -->
<LINK rel="stylesheet" type="text/css" href="../query/crystalreportviewers10/css/default.css">
<%
IReportSource rptSource = (IReportSource)session.getAttribute("rptSource");
Fields fields = (Fields) session.getAttribute("fields");
ConnectionInfos connInfos = new ConnectionInfos();
IConnectionInfo connInfo1 = new ConnectionInfo();
connInfo1.setUserName("developer");
connInfo1.setPassword("pwsc");
connInfos.add(connInfo1);
CrystalReportViewer viewer = new CrystalReportViewer();
viewer.setReportSource(rptSource);
viewer.setDatabaseLogonInfos(connInfos);
viewer.setParameterFields(fields);
viewer.setEnableParameterPrompt(true);
viewer.setOwnPage(true);
viewer.setOwnForm(true);
//viewer.setPrintMode(CrPrintMode.ACTIVEX);
viewer.setHasExportButton(true);
viewer.setHasPrintButton(true);
viewer.setHasLogo(false);
viewer.processHttpRequest(request, response,getServletConfig().getServletContext(), out);
viewer.refresh();
%>