Fields fields = new Fields(); ParameterField pfield1 = new ParameterField(); ParameterField pfield2 = new ParameterField(); ParameterField pfield3 = new ParameterField(); ParameterField pfield4 = new ParameterField();
Values vals1 = new Values(); Values vals2 = new Values(); Values vals3 = new Values(); Values vals4 = new Values();
ParameterFieldDiscreteValue pfieldDV1 = new ParameterFieldDiscreteValue(); ParameterFieldDiscreteValue pfieldDV2 = new ParameterFieldDiscreteValue(); ParameterFieldDiscreteValue pfieldDV3 = new ParameterFieldDiscreteValue(); ParameterFieldDiscreteValue pfieldDV4 = new ParameterFieldDiscreteValue();
pfield1.setName("CO_NUM"); pfieldDV1.setValue("000000000891"); pfieldDV1.setDescription("The CO_NUM is 000000000891");
pfield2.setName("TYPE"); pfieldDV2.setValue("05"); pfieldDV2.setDescription("The TYPE code is 05");
pfield3.setName("TATUS"); pfieldDV3.setValue("03"); pfieldDV3.setDescription("The STATUS code is 03");
pfield4.setName("PMT_STATUS"); pfieldDV4.setValue("03"); pfieldDV4.setDescription("The STATUS code is 03");
Fields fields = new Fields(); ParameterField param = new ParameterField(); param.setReportName("Report2"); param.setName("CO_NUM");
Values vals = new Values(); ParameterFieldDiscreteValue val = new ParameterFieldDiscreteValue(); val.setValue(request.getParameter("CO_NUM")); vals.add(val); param.setCurrentValues(vals); fields.add(param);
Fields fields = new Fields();
ParameterField pfield1 = new ParameterField();
ParameterField pfield2 = new ParameterField();
这个是什么意思?
然后
Values vals1 = new Values();
Values vals2 = new Values();
又是什么意思?
我想做查询 customer_id 和 customer_name 又该怎么写呢?另外数据源配置在哪里写呢?
谢谢告知,不是很理解
作了一下
另外 web.xml文件中 如下
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>crystal_image_uri</param-name>
<param-value>crystalreportviewers10</param-value>
</context-param>
<env-entry>
<env-entry-name>
jdbc/SDDATA
</env-entry-name>
<env-entry-value>
!sun.jdbc.odbc.JdbcOdbcDriver!jdbc:db2:SDDATA
</env-entry-value>
<env-entry-type>
java.lang.String
</env-entry-type>
</env-entry>
<!--
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
-->
</web-app>
但是我报的错是这样的一个页面
“com.crystaldecisions.report.web.viewer.CrystalReportViewer
Unexpected Query Engine error ”<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="com.crystaldecisions.reports.reportengineinterface.* "%>
<%@ page import="com.crystaldecisions.report.web.viewer.* "%>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2" %><%
String report = "Report2.rpt";
CrystalReportViewer crv = new CrystalReportViewer();
//JPEReportSourceFactory jrsf = new JPEReportSourceFactory();
IReportSourceFactory2 rptSrcFactory = new JPEReportSourceFactory();
JPEReportSource reportSource = (JPEReportSource)
rptSrcFactory.createReportSource(report, request.getLocale());
//crv.setReportSource(
// jrsf.createReportSource("Report2.rpt",request.getLocale()));
Fields fields = new Fields();
ParameterField pfield1 = new ParameterField();
ParameterField pfield2 = new ParameterField();
ParameterField pfield3 = new ParameterField();
ParameterField pfield4 = new ParameterField();
Values vals1 = new Values();
Values vals2 = new Values();
Values vals3 = new Values();
Values vals4 = new Values();
ParameterFieldDiscreteValue pfieldDV1 = new ParameterFieldDiscreteValue();
ParameterFieldDiscreteValue pfieldDV2 = new ParameterFieldDiscreteValue();
ParameterFieldDiscreteValue pfieldDV3 = new ParameterFieldDiscreteValue();
ParameterFieldDiscreteValue pfieldDV4 = new ParameterFieldDiscreteValue();
pfield1.setName("CO_NUM");
pfieldDV1.setValue("000000000891");
pfieldDV1.setDescription("The CO_NUM is 000000000891");
pfield2.setName("TYPE");
pfieldDV2.setValue("05");
pfieldDV2.setDescription("The TYPE code is 05");
pfield3.setName("TATUS");
pfieldDV3.setValue("03");
pfieldDV3.setDescription("The STATUS code is 03");
pfield4.setName("PMT_STATUS");
pfieldDV4.setValue("03");
pfieldDV4.setDescription("The STATUS code is 03");
vals1.add(pfieldDV1);
vals2.add(pfieldDV2);
vals3.add(pfieldDV3);
vals4.add(pfieldDV4);
pfield1.setCurrentValues(vals1);
pfield2.setCurrentValues(vals2);
pfield3.setCurrentValues(vals3);
pfield4.setCurrentValues(vals4);
crv.setReportSource(reportSource);
crv.setParameterFields(fields);
crv.setEnableParameterPrompt(true);
crv.refresh();
crv.processHttpRequest(request, response, getServletConfig().getServletContext(), out);
//crv.processHttpRequest(request,response,application,null);
%>
是不是你的jndi已经成功了? 你的会不会是报表有问题?
<%@ page import="com.crystaldecisions.reports.reportengineinterface.* "%>
<%@ page import="com.crystaldecisions.report.web.viewer.* "%>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.*" %><%
CrystalReportViewer crv = new CrystalReportViewer();
JPEReportSourceFactory jrsf = new JPEReportSourceFactory();
crv.setReportSource(
jrsf.createReportSource("Report2.rpt",request.getLocale()));
Fields fields = new Fields();
ParameterField param = new ParameterField();
param.setReportName("Report2");
param.setName("CO_NUM");
Values vals = new Values();
ParameterFieldDiscreteValue val = new ParameterFieldDiscreteValue();
val.setValue(request.getParameter("CO_NUM"));
vals.add(val);
param.setCurrentValues(vals);
fields.add(param);
crv.setParameterFields(fields);
//crv.processHttpRequest(request,response,application,null);
crv.dispose();
%>
这个压根是空白页阿