10 Stimmen

Wie dynamisch isIgnorePagination in Jasper Bericht zu setzen?

Ich habe eine Jasper-Datei, die ich exportieren, um PDF und Excel ab jetzt bin ich mit nur ein Jasper ich möchte die PDF exportiert Bericht sollte "isIgnorePagination=''true" und für Excel-Bericht sollte "isIgnorePagination = 'false' "?

Wie kann man von Java-Code aus einstellen?

7voto

Jacob Schoen Punkte 13684

Sie müssen zur Laufzeit wissen, ob Sie nach Excel oder PDF exportieren, was Sie wissen sollten.

Nur als Beispiel:

public void generateReport(JasperPrint report, boolean isExcel, String saveTo){
  JRExporter exporter = null;
  if (isExcel) {
    exporter = new JRXlsExporter();
    exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
    exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
    exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
    //we set the one page per sheet parameter here
    exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
  } else {
    exporter = new JRPdfExporter();     
  }
  exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);124
  exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, saveTo);
  export.exportReport();
}

6voto

Anthony O. Punkte 18951

Nach Angaben von JasperReports Beispielreferenz :

Für verschiedene Zwecke kann diese Flagge [ isIgnorePagination in jrxml] kann im Bericht überschrieben werden Abfüllzeit unter Verwendung der optionalen eingebauten IS_IGNORE_PAGINATION Parameter.

Der Code sollte also in etwa so aussehen:

final Map<String, Object> fillingParameters = new HashMap<>();
if (exportType == ExportType.XLS) {
    fillingParameters.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
}
final JasperPrint print = JasperFillManager.fillReport(jasperReport, fillingParameters, dataSource);

1voto

swetha Punkte 11

Ich habe eine Lösung für dieses Problem gefunden.

mein Code ist:

paramaters.put("fromDate", fromDate);
paramaters.put("toDate", toDate);
if (!output.equals("pdf"))
{
    paramaters.put("IS_IGNORE_PAGINATION", true);
}
else
    paramaters.put("IS_IGNORE_PAGINATION", false);

JasperPrint jasperPrint = null;
jasperPrint = JasperFillManager.fillReport(CompiledReport,paramaters, connection);

if (output.equals("html")) {
    generateHtmlResponse(response, jasperPrint);
} else if (output.equals("pdf")) {
    generatePdfResponse(response, jasperPrint);
} else if(output.equals("excel")) {
    generateXLResponse(response, jasperPrint);
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X