-1

其实我正在使用.jrxml文件用于 Web 应用程序,但现在我需要在 Swing 中使用相同的文件。

可能吗?我可以将.jrxml文件用于 Swing 应用程序吗?

JRXML EG

SELECT R.FUND_TRANSFER_TRACE_ID AS Stan_ID, FS.SERVICE_NAME, R.MOBILE_NUMBER,CASE WHEN     C.MIDDLE_NAME IS NOT NULL 
THEN (C.FIRST_NAME +' '+C.MIDDLE_NAME+' '+C.LAST_NAME) ELSE (C.FIRST_NAME +'  '+C.LAST_NAME) END AS CUSTOMER_NAME,
R.FROM_ACCOUNT, R.TO_ACCOUNT, R.AMOUNT, R.SERVICE_ATTRIBUTE, R.RECORDED_DATE AS   TRANSACTION_DATE,FTD.FONEPAY_TRACE_ID, 
FTC.RESPONSE_CODE AS CANCELATION_RESPONSE_CODE, FTC.RESPONSE_MESSAGE AS   CANCELATION_RESPONSE_DESCRIPTION,FTC.RECORDED_DATE AS CANCELED_DATE, 
FTC.REMARKS 
FROM FONEPAY_TRANSACTION_CANCELLATION FTC 
JOIN FONEPAY_TRANSACTION_DETAILS FTD ON(FTD.ID=FTC.FONEPAY_TRANSACTION_DETAILS_ID) 
JOIN REQUEST R on(FTD.REQUEST_ID=R.ID)
LEFT JOIN CUSTOMER C ON(C.ID=R.CUSTOMER_ID) 
JOIN FONEPAY_SERVICE_DETAIL FSD ON(R.FONEPAY_ID=FSD.ID) 
JOIN FONEPAY_SERVICE FS ON(FSD.FONEPAY_SERVICE_ID=FS.ID)  
WHERE 
 CONVERT(VARCHAR(10),R.RECORDED_DATE,121)
     BETWEEN CONVERT(VARCHAR(10),$P{startDate},121) and     CONVERT(VARCHAR(10),$P{endDate},121)
      and $P!{queryStr} AND FTD.FONEPAY_TRANSACTION_STATUS='REVERSAL_SUCCESS'
ORDER BY R.RECORDED_DATE DESC
4

2 回答 2

4

JRXML 文件是报告的“源”,您需要先编译它...

protected static JasperReport compileReport() throws JRException {

    String sourceName = "/path/to/your/.jrxml";
    String destName = "/path/to/where/you/want/your.jasper";
    JasperCompileManager.compileReportToFile(sourceName, destName);
    return (JasperReport) JRLoader.loadObjectFromFile(destName);

}

获得编译报告后,您需要填写它...

 Map<String, Object> mapParameters = new HashMap<String, Object>(5);
 // Fill in your parameters...
 JRDataSource dataSource = ...; // Create your data source
 JasperPrint filledReport = JasperFillManager.fillReport(report, mapParameters, dataSource);

填好后就可以导出了。。。

System.out.println(" --> Exporting to PDF");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, filledReport);
exporter.setParameter(JRExporterParameter.START_PAGE_INDEX, 0);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "your.pdf");
exporter.exportReport();

System.out.println(" --> Exporting to Excel");
JRXlsxExporter excel = new JRXlsxExporter();
excel.setParameter(JRExporterParameter.JASPER_PRINT, filledReport);
excel.setParameter(JRExporterParameter.START_PAGE_INDEX, 0);
excel.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "your.xlsx");
excel.exportReport();

System.out.println(" --> Exporting to HTML");
JRHtmlExporter html = new JRHtmlExporter();
html.setParameter(JRExporterParameter.JASPER_PRINT, filledReport);
html.setParameter(JRExporterParameter.START_PAGE_INDEX, 0);
html.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "your.html");
html.exportReport();

有关提供打印预览和打印的更多详细信息,请查看查看和打印报告。

注意:我们遇到了打印预览组件的问题并最终编写了我们自己的(基于可用的源),但它可能从那时起就开始修复了......

于 2013-08-29T04:53:20.863 回答
3

您当然可以在摇摆中使用 jrxml 文件。我在我的应用程序中使用了很多次。我正在使用开源工具 Adempiere 开发 ERP 解决方案。

它是使用 swings 开发的,它广泛使用 jrxml 进行报告。

请参阅以下链接,它可能会有所帮助:http: //community.jaspersoft.com/questions/524537/example-java-program-call-jasper-report

于 2013-08-29T05:39:38.127 回答