Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

set parameters input automatically in my report and connection to my base

Hello

this my programmes , it work it's ok ( see bottom of the page )

Now i have a rapport rpt with a input edit (example number customer )

I want by my file jsp that the number customer display automatically

in my rapport rpt ( variable string or integer or date) and after validate automaticcaly

and connection to my database automartically ( database oracle 8 user and paswword)

(by example with my url , i pass a parameters input and automatically i will see

the rapport rpt ) it's possible , How to make in jsp ?

thanks to help me

regards

Michel

Ps : Notes fresh for the connection in my database oracle

i have modified CrystalReportViewer.jsp but i have an message

"Information is needed before this report can be processed " why ?



<%@ page import="com.crystaldecisions.report.web.viewer.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSource" %>
<%




CrystalReportViewer viewer = new CrystalReportViewer();

ConnectionInfos connInfos = new ConnectionInfos();
IConnectionInfo connInfo1 = new ConnectionInfo();
connInfo1.setUserName("user");
connInfo1.setPassword("pass");

viewer.refresh();
Object reportSource = session.getAttribute("reportSource");
viewer.setReportSource(reportSource);
viewer.setDatabaseLogonInfos(connInfos);
viewer.setEnableLogonPrompt(false);
viewer.processHttpRequest(request, response,getServletConfig().getServletContext(), out);
viewer.dispose();

%>

this programmes are ok (but now i search to display a variable on my report)

via url

http://pa-81b36a7e9d/businessobjects/enterprise11/desktoplaunch/opendoc/view_report.jsp?sdoc=axeriatest&user=Administrator&pass=&cms=pa-81b36a7e9d

CrystalReportViewer.jsp

-


<%@ page import = "com.crystaldecisions.report.web.viewer.*"%>

<%

CrystalReportViewer viewer = new CrystalReportViewer();

viewer.setName("CrystalReportViewer");

viewer.setOwnPage(true);

//Enable Active-X print mode.

viewer.setPrintMode(CrPrintMode.ACTIVEX);

//Obtain report source of the report that the viewer will display.

Object reportSource = session.getAttribute("reportSource");

viewer.setReportSource(reportSource);

viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);

%>

view_report.jsp

-


<%

/*

  • Applies to Versions: XI

  • Creation Date: Febuary 28 2005

  • Description:

  • This sample to demonstrates how to view a Crystal Report on demand in

* the zero-client DHTML viewer.

  • Author: CW.

*/

%>

<%@ page import = "com.crystaldecisions.sdk.occa.infostore.*,

com.crystaldecisions.sdk.plugin.desktop.common.*,

com.crystaldecisions.sdk.framework.*,

com.crystaldecisions.sdk.occa.security.*,

com.crystaldecisions.sdk.exception.SDKException,

com.crystaldecisions.sdk.occa.managedreports.IReportSourceFactory,

java.util.Locale,

com.crystaldecisions.sdk.occa.report.reportsource.IReportSource"

%>

<%@ include file = "logonform.jsp" %>

<%

String cms = request.getParameter("cms");

String user = request.getParameter("user");

String pass = request.getParameter("pass");

String sdocName = request.getParameter("sdoc");

try {

//If logon information is required, display the logonForm and exit.

//Create a special logon form that requests 2 Report Names

//(code for LogonForm class is included).

LogonForm logonform = new LogonForm(response, request, LogonForm.REPORT_NAME);

//if (logonform.display_if_needed()) return;

// ici doit recuperer le nom du document

logonform.reportname[0] = sdocName ; //"diagramme";

//Log in.

IEnterpriseSession enterpriseSession = CrystalEnterprise.getSessionMgr().logon(user,pass,cms,"secEnterprise");

//Grab the InfoStore from the httpsession

IInfoStore infoStore = (IInfoStore)enterpriseSession.getService("", "InfoStore");

//Query for the report object in the CMS. See the Developer Reference guide for more information the query language.

IInfoObjects oInfoObjects = (IInfoObjects)infoStore.query("SELECT TOP 1 * " +

"FROM CI_INFOOBJECTS " +

"WHERE SI_PROGID = 'CrystalEnterprise.Report' AND SI_INSTANCE=0 AND SI_NAME='" + logonform.reportname[0] + "'" );

if (oInfoObjects.size() > 0) {

//Retrieve the latest instance of the report

IInfoObject oInfoObject = (IInfoObject) oInfoObjects.get(0);

//Use the PS report factory to obtain a report source that will be processed on the Page Server.

IReportSourceFactory factoryPS = (IReportSourceFactory)enterpriseSession.getService("PSReportFactory");

Object reportSource = factoryPS.openReportSource((oInfoObject), Locale.ENGLISH);

session.setAttribute("reportSource", reportSource);

//View the report in the standard DHTML viewer.

response.sendRedirect("CrystalReportViewer.jsp");

}

else {

out.println("Report " + logonform.reportname[0] + " not found.");

}

}

catch(SDKException sdkEx) {

out.println(sdkEx);

}

%>

logonform.jsp

-


<%!

/**************************** class LogonForm ***************************

  • This logon form is used to gather the logon information needed

  • to login to Enterprise

***********************************************************************/

private class LogonForm {

HttpServletResponse response;

HttpServletRequest request;

int num_reports_needed = 1;

String[] reportname;

public static final int NONE = 0;

public static final int REPORT_NAME = 1;

public static final int REPORT_NAME_X2 = 2;

/************************************************************************

  • Constructor - Save the response and request objects

***********************************************************************/

LogonForm(HttpServletResponse response, HttpServletRequest request)

{

//this.response = response;

//this.request = request;

}

/************************************************************************

  • Constructor with options - Add some optional boxes to request other

  • input from the user such as reportnames.

***********************************************************************/

LogonForm(HttpServletResponse response, HttpServletRequest request, int extra_requests) {

this.response = response;

this.request = request;

switch (extra_requests) {

case NONE:

break;

case REPORT_NAME:

num_reports_needed = 1;

reportname = new String[1];

break;

case REPORT_NAME_X2:

num_reports_needed = 2;

reportname = new String[2];

break;

}

}

}

%>

Former Member
Not what you were looking for? View more on this topic or Ask a question