2011-09-08 21 views
5

Tôi có một tệp jasper mà tôi xuất sang PDF và Excel kể từ bây giờ tôi đang sử dụng chỉ một jasper tôi muốn báo cáo được xuất PDF nên là "isIgnorePagination = '' true" và cho báo cáo Excel phải là "isIgnorePagination = 'false' "?Làm thế nào để thiết lập động isIgnorePagination trong báo cáo jasper?

Làm cách nào để đặt từ mã java?

+1

Bạn có thể vượt qua bất động sản này thông qua tham số JRParameter.IS_IGNORE_PAGINATION (trong trường hợp bạn sử dụng phương pháp JasperFillManager.fillReport) –

+0

Hi Alex, Những gì tôi muốn là chính xác làm thế nào để thiết lập "isIgnorePagination = 'true'" cho PDF và "isIgnorePagination = 'false'" cho excel? – HariKanna

+2

Từ mã java bạn có thể đặt JRParameter.IS_IGNORE_PAGINATION và đặt định dạng xuất như bạn muốn –

Trả lời

5

Bạn sẽ cần biết thời gian chạy nếu bạn xuất sang Excel hoặc PDF mà bạn nên biết.

Cũng như một ví dụ:

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(); 
} 
0

tôi tìm thấy giải pháp cho việc này.

mã của tôi là:

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); 
} 
1

Theo JasperReports sample reference:

Đối với mục đích khác nhau cờ này [isIgnorePagination trong jrxml] có thể được overriden tại báo cáo thời gian điền bằng cách sử dụng tùy chọn built-in IS_IGNORE_PAGINATION thông số.

Vì vậy, các mã nên được một cái gì đó như thế này:

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); 
Các vấn đề liên quan