有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用Java SE生成多个jasper报告

我已经成功创建了一份只打印一页的JasperReports报告。但是,我需要在一个PDF中打印多个报告。下面是打印单页报告的代码,以及使用不同数据多次打印所需的XML。对于每个padNumber我想要一个PDF格式的页面。如果有padNumberArray[] = {2,5,6,8},那么Jasper report PDF将显示4页的报告,其中包含相应的padnumber

Java代码:

  public void submitBill( String padNumber){ 
  JOptionPane.showMessageDialog(null, "Connected FROM BC");
   try{
    JasperReport jasperReport = JasperCompileManager.compileReport("C:\\report3.jrxml");
    Map<String, Object> parameters = new HashMap<String, Object>();
    parameters.put("PADNUMBER",padNumber); 
    JRDataSource dataSource = new JREmptyDataSource();
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);

     JasperViewer.viewReport(jasperPrint);
     File outDir = new File("C:/jasperoutput");
     outDir.mkdirs();
   }catch(Exception e){
        System.out.println(e);
   } 
}

模板:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report3" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ac96d847-7849-458c-9018-3c6d0017a0ca">
    <parameter name="PADNUMBER" class="java.lang.String">
        <defaultValueExpression><![CDATA[$F{padnum}]]></defaultValueExpression>
    </parameter>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["C:\\"]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[select items,price,padnum from RegisterBook where RegisterBook.padnum = $P{PADNUMBER}]]>
    </queryString>
    <field name="items" class="java.lang.Object"/>
    <field name="price" class="java.lang.Object"/>
    <field name="padnum" class="java.lang.String"/>
    <variable name="items_1" class="java.lang.Integer" resetType="Page" calculation="Count">
        <variableExpression><![CDATA[$F{items}]]></variableExpression>
    </variable>
    <variable name="price_1" class="java.lang.Integer" resetType="Page" calculation="Count">
        <variableExpression><![CDATA[$F{price}]]></variableExpression>
    </variable>
    <variable name="padnum_1" class="java.lang.Integer" resetType="Page" calculation="Count">
        <variableExpression><![CDATA[$F{padnum}]]></variableExpression>
    </variable>
    <columnHeader>
        <band height="23" splitType="Stretch">
            <staticText>
                <reportElement x="54" y="0" width="357" height="20" uuid="d68fb7b5-84cf-41c4-a3ec-98ab9fd2754b"/>
                <textElement>
                    <font fontName="Times New Roman" size="14" isBold="true"/>
                </textElement>
                <text><![CDATA[Items]]></text>
            </staticText>
            <staticText>
                <reportElement x="411" y="0" width="144" height="20" uuid="46bc50b9-eb17-4ffe-b3c3-a8397350b4ba"/>
                <textElement>
                    <font fontName="Times New Roman" size="14" isBold="true"/>
                </textElement>
                <text><![CDATA[Price]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="54" y="0" width="357" height="20" uuid="21f0b3e3-eb37-40c4-8fc2-3fa00ad28413"/>
                <textElement>
                    <font fontName="Times New Roman" size="12"/>
                </textElement>
                <textFieldExpression><![CDATA[""+$F{items}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="411" y="0" width="144" height="20" uuid="f4abff45-a9f5-42a1-be3f-f24363fa128d"/>
                <textElement>
                    <font fontName="Times New Roman" size="12"/>
                </textElement>
                <textFieldExpression><![CDATA[""+$F{price}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

共 (0) 个答案