我正在使用DynamicJasper打印报告。到目前为止,它正在打印为表格。但我想把它打印成支票。我已将支票模板设计创建为jrxml。我想将表中填充的值传递给相关的jrxml位置。
这是打印表格的代码:
public class ReportPrint {
public static void print(Cheque cheque) throws JRException, IOException {
try {
DynamicReportBuilder dynamicReportBuilder = new DynamicReportBuilder();
// configure report-level settings
dynamicReportBuilder.setReportName("Cheque");
dynamicReportBuilder.setPageSizeAndOrientation(Page.Page_Letter_Portrait());
// add cheque number column to report
ColumnBuilder columnBuilderID = ColumnBuilder.getNew();
columnBuilderID.setTitle("Cheque Number");
columnBuilderID.setWidth(100);
columnBuilderID.setFixedWidth(true);
columnBuilderID.setColumnProperty("chqNum", String.class.getName(), "chqNum");
dynamicReportBuilder.addColumn(columnBuilderID.build());
// add payee name column to report
ColumnBuilder columnBuilderName = ColumnBuilder.getNew();
columnBuilderName.setTitle("Payee Name");
columnBuilderName.setWidth(120);
columnBuilderName.setFixedWidth(true);
columnBuilderName.setColumnProperty("name", String.class.getName(), "name");
dynamicReportBuilder.addColumn(columnBuilderName.build());
// add amount column to report
ColumnBuilder columnBuilderAmount = ColumnBuilder.getNew();
columnBuilderAmount.setTitle("Cheque Amount");
columnBuilderAmount.setWidth(100);
columnBuilderAmount.setFixedWidth(true);
columnBuilderAmount.setColumnProperty("amount", Double.class.getName(), "amount");
dynamicReportBuilder.addColumn(columnBuilderAmount.build());
// add date column to report
ColumnBuilder columnBuilderDate = ColumnBuilder.getNew();
columnBuilderDate.setTitle("Cheque Date");
columnBuilderDate.setWidth(100);
columnBuilderDate.setFixedWidth(true);
columnBuilderDate.setColumnProperty("date", Date.class.getName(), "date");
dynamicReportBuilder.addColumn(columnBuilderDate.build());
// add value in words column to report
ColumnBuilder columnBuilderWordVal = ColumnBuilder.getNew();
columnBuilderWordVal.setTitle("Cheque Amount in Words");
columnBuilderWordVal.setWidth(150);
columnBuilderWordVal.setFixedWidth(true);
columnBuilderWordVal.setColumnProperty("value", String.class.getName(), "value");
dynamicReportBuilder.addColumn(columnBuilderWordVal.build());
DynamicReport dynamicReport = dynamicReportBuilder.build();
//Creating data source
Collection<Cheque> reportCollection = new ArrayList<Cheque>();
reportCollection.add(cheque);
JRDataSource dataSource = new JRBeanCollectionDataSource( reportCollection );
// build JasperPrint instance, filling the report with data from data source created above
JasperPrint jasperPrint = DynamicJasperHelper.generateJasperPrint(
dynamicReport, new ClassicLayoutManager(), dataSource, new HashMap<String, Object>());
// export to pdf
String pdfFile = "Cheque.pdf";
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, pdfFile);
exporter.exportReport();
JasperPrintManager.printReport(jasperPrint, true);
} catch(JRException e) {
e.printStackTrace();
}
}
}
这是jrxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="amount" class="java.lang.Double">
<fieldDescription><![CDATA[amount]]></fieldDescription>
</field>
<field name="chqNum" class="java.lang.String">
<fieldDescription><![CDATA[chqNum]]></fieldDescription>
</field>
<field name="date" class="java.sql.Date">
<fieldDescription><![CDATA[date]]></fieldDescription>
</field>
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="128" splitType="Stretch">
<textField>
<reportElement uuid="8cd5eac7-d03e-4085-b39f-b1f8d6596b97" x="339" y="101" width="138" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{amount}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="6c962fb1-7db6-47d5-9a3e-098f4603be1b" x="36" y="59" width="138" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="961a90da-700b-4e18-a9c6-8bc510dc92af" x="339" y="23" width="138" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
</textField>
<staticText>
<reportElement uuid="48026b8c-f4d0-464e-a3cc-3762316dca2a" stretchType="RelativeToBandHeight" x="19" y="93" width="288" height="35"/>
<textElement>
<paragraph lineSpacing="1_1_2" firstLineIndent="36"/>
</textElement>
<text><![CDATA[Four Thousand Seven Hundred and Twenty-Five Cents]]></text>
</staticText>
</band>
</detail>
</jasperReport>