Hallo,
ich möchte gerne von einer Java-Anwendung aus, einen JasperReport vom einem JRS aufrufen. Dazu verwende ich folgende Code:
Nun ist es aber so, dass wenn ich einen Bericht habe, der Paramter verlangt, dass ich diese vom Programm aus übergeben muss. Ich muss also für jeden Bericht eine entsprechende Maske mit den Abfrageparamtern erstellen und dies dann anzeigen lassen.
iReport biete aber in der Vorschau-Anzeige an, dass es die Paramter abfragt. Wenn ich den Bericht direkt vom Server aufrufe in einem Brwoser, werde ich ich auch nach den Paramtern gefragt.
Wie kann ich per Java-Code das Paramter-Fenster, was ja durch iReport erzeugt werden kann, dass ich dass angezeigt bekomme?
Alle Beispiele, die sich mit JasperReports/Java beschäftigen sind "sehr alt" und bieten nicht die Möglichkeit dazu. Außerdem sind sie so veraltet - einige Befehle/Objekte sind mitlerweile als "veraltet" in der Eclipse angezeigt.
Wie gesagt: Bevor der Bericht angezeigt wird, möchte ich, dass die Paramter-Abfrage kommt - etwas, was ja gehen sollte, da iReports die Werte ja auch verarbeiten kann und anzeigt
ich möchte gerne von einer Java-Anwendung aus, einen JasperReport vom einem JRS aufrufen. Dazu verwende ich folgende Code:
Java:
WSClient client = server.getWSClient();
System.out.println("Version Check: " + client.getVersion());
JasperPrint jasperPrint = new JasperPrint();
try {
ResourceDescriptor rd = new ResourceDescriptor();
rd.setWsType(ResourceDescriptor.TYPE_REPORTUNIT);
rd.setUriString(reportData.reporturi);
jasperPrint = server.getWSClient().runReport(rd,
reportData.params);
// Vorschau anzeigen
if (reportData.preview!=false)
{
// isExitOnClose = wenn die Vorschau geschlossen wird, dann wird die
// Anwendung beendet (JVM geschlossen)
JasperViewer.viewReport(jasperPrint, false);
}
JRPrintServiceExporter jrExporter = new JRPrintServiceExporter();
// Drucker auswählen
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
printServiceAttributeSet.add(new PrinterName(
reportData.printer, null));
// Papiersorte auswählen
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
printRequestAttributeSet.add(MediaSizeName.ISO_A4);
printRequestAttributeSet.add(new Copies(1));
printRequestAttributeSet.add(OrientationRequested.PORTRAIT);
// Datei definieren
jrExporter.setExporterInput(new SimpleExporterInput(jasperPrint));
// Anzeige Optionen setzen
SimplePrintServiceExporterConfiguration configuration = new SimplePrintServiceExporterConfiguration();
configuration
.setPrintRequestAttributeSet(printRequestAttributeSet);
configuration
.setPrintServiceAttributeSet(printServiceAttributeSet);
configuration.setDisplayPageDialog(false);
configuration.setDisplayPrintDialog(true);
jrExporter.setConfiguration(configuration);
// Ausführen des Reports
jrExporter.exportReport();
Nun ist es aber so, dass wenn ich einen Bericht habe, der Paramter verlangt, dass ich diese vom Programm aus übergeben muss. Ich muss also für jeden Bericht eine entsprechende Maske mit den Abfrageparamtern erstellen und dies dann anzeigen lassen.
iReport biete aber in der Vorschau-Anzeige an, dass es die Paramter abfragt. Wenn ich den Bericht direkt vom Server aufrufe in einem Brwoser, werde ich ich auch nach den Paramtern gefragt.
Wie kann ich per Java-Code das Paramter-Fenster, was ja durch iReport erzeugt werden kann, dass ich dass angezeigt bekomme?
Alle Beispiele, die sich mit JasperReports/Java beschäftigen sind "sehr alt" und bieten nicht die Möglichkeit dazu. Außerdem sind sie so veraltet - einige Befehle/Objekte sind mitlerweile als "veraltet" in der Eclipse angezeigt.
Wie gesagt: Bevor der Bericht angezeigt wird, möchte ich, dass die Paramter-Abfrage kommt - etwas, was ja gehen sollte, da iReports die Werte ja auch verarbeiten kann und anzeigt