Crystal Report-DB Authentifizierung in java
Ich bin mit einem problem konfrontiert, in Crystal-Reports-Bericht mit Eclipse.
Bin ich mit einem servlet zu machen die crystal-Reports-Bericht-viewer, indem Sie die viewer-Objekt, um die Antwort, wie:
public class ReportViewer extends HttpServlet {
@SuppressWarnings("deprecation")
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String reportName = "WEB-INF/includes/reports/"+request.getParameter("ReportName");
ReportClientDocument clientDoc = (ReportClientDocument) request.getSession().getAttribute(reportName);
if (clientDoc == null) {
//Report can be opened from the relative location specified in the CRConfig.xml, or the report location
//tag can be removed to open the reports as Java resources or using an absolute path
//(absolute path not recommended for Web applications).
clientDoc = new ReportClientDocument();
//Open report
clientDoc.open(reportName, OpenReportOptions._discardSavedData);
//Store the report document in session
ConnectionInfo info = new ConnectionInfo();
info.setUserName("sa");
info.setPassword("sa");
Tables t = clientDoc.getDatabaseController().getDatabase().getTables();
for (com.crystaldecisions.sdk.occa.report.data.ITable table : t) {
IConnectionInfo Ic = table.getConnectionInfo();
Ic.setPassword("sa");
Ic.setUserName("sa");
table.setConnectionInfo(Ic);
}
request.getSession().setAttribute(reportName, clientDoc);
}
//Create the CrystalReportViewer object
CrystalReportViewer crystalReportPageViewer = new CrystalReportViewer();
// set the reportsource property of the viewer
IReportSource reportSource = clientDoc.getReportSource();
crystalReportPageViewer.setReportSource(reportSource);
//set viewer attributes
crystalReportPageViewer.setOwnPage(true);
crystalReportPageViewer.setOwnForm(true);
//Apply the viewer preference attributes
//Process the report
crystalReportPageViewer.processHttpRequest(request, response, request.getSession(false).getServletContext(), null);
} catch (ReportSDKExceptionBase e) {
System.out.println(e);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
Wenn ich versucht bin, zu verlangen, dieses servlet leitet es mich auf jdbc-login-Seite, dann geht es wieder an das servlet. Ich brauche zu vermeiden, jdbc-login Schritt durch hardcoding es irgendwo. bitte helfen Sie mir, jeder einzelne Kommentar wird sehr geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie ausgecheckt haben, das wiki über bei https://wiki.sdn.sap.com/wiki/display/BOBJ/Crystal%20Reports%20Java%20%20SDK%20Samples
Gibt es eine JSP-Beispiel, das Sie vielleicht verwenden könnte:
reportClientDocument.getDatabaseController().logon(db_username, db_password);
. Es spielt keine Rolle, welche Anmeldeinformationen, die ich hier geben, der Bericht fragt nach Anmeldeinformationen, wenn im browser angezeigt. Es sagt Zusatzangaben erforderlich sind, und fragt nach Benutzername, Passwort für die Datenbank. Wenn ich geben Sie den Benutzernamen, das Passwort, es funktioniert. Wie kann ich vermeiden, die Eingabe von Benutzername und Passwort im browser aus für den Betrachter. Ich habe verbringen Tag in diesem, google hat nicht wirklich geholfen