如何在JasperReports中将值等于零时从打印中排除文本字段

时间:2016-06-30 06:51:05

标签: java jasper-reports

我有一个数据库,其中有值为零的字段。

enter image description here

我有jsp页面,我将编写sql查询并将sql查询作为参数发送到JasperReports

invoicePDF.jsp

<%
Integer id = (Integer) session.getAttribute("id");
System.out.println("id is:"+id);
String sql=null;
Connection conn = null;
String termsOfPmnt = (String)session.getAttribute("termsOfPmnt");
String dispThrough = (String)session.getAttribute("dispThrough");
try 
{
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/marketing_database","root","root");
    sql="select company_profile.companyName, and_so_on  from company_profile,invoice,invoiceclient_details where invoice.CId='"+id+"' and invoiceclient_details.CId='"+id+"'";  
    ServletContext context = request.getServletContext(); 
    String fullPath = context.getRealPath("/WEB-INF/reports/report5.jrxml");
    InputStream input = new FileInputStream(new File(fullPath));
    JasperDesign jasperDesign = JRXmlLoader.load(input);

    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

    HashMap<String,Object> map = new HashMap<String,Object>();
    map.put("sql",sql);
            byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, map, conn);

            response.setContentType("application/pdf");
            response.setContentLength(bytes.length);
            ServletOutputStream outputStream = response.getOutputStream();
            outputStream.write(bytes, 0, bytes.length);
            outputStream.flush();
            outputStream.close();
            conn.close();
}
catch(Exception e) 
{e.printStackTrace();} 

        %>

和jasper报告代码如下

        <detail>
    <band height="140" splitType="Prevent">
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="0" width="13" height="20" isPrintWhenDetailOverflows="true" uuid="24b49d3f-5c78-4a19-a4d2-e2cbff95a40d"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$V{serial number}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="13" y="0" width="242" height="20" isPrintWhenDetailOverflows="true" uuid="4332ae75-6371-4879-b805-9d07254f0784"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{DescriptionOfGoods}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="0" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="54828e8d-bae0-4669-873e-36de8bf54446"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{PerUnitPrice}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="395" y="0" width="64" height="20" isPrintWhenDetailOverflows="true" uuid="e02408a1-2bcd-4fb9-94d3-ed0c0c1d8ff6"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[Nos]]></text>
        </staticText>
        <textField isStretchWithOverflow="true" pattern="###0.00">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="459" y="0" width="96" height="20" isPrintWhenDetailOverflows="true" uuid="00ba44d4-b287-4a29-8bf3-1ad07da760e8"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{Quantity} *$F{PerUnitPrice}]]></textFieldExpression>
        </textField>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="255" y="0" width="54" height="20" isPrintWhenDetailOverflows="true" uuid="d74b9bd4-9608-44a7-b46e-55f39ed0c852"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{Quantity}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="0" y="20" width="309" height="20" uuid="6e493a3e-c559-493b-ac86-314eb0df5a16"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
            </box>
            <text><![CDATA[]]></text>
        </staticText>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="20" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="89f04225-eaba-4adc-a675-495d45ad27b2"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.0"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[SubTotal:]]></text>
        </staticText>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="395" y="20" width="160" height="20" uuid="0e1bf36a-76f9-4644-a218-6c3bdcf2d1d1"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman"/>
            </textElement>
            <textFieldExpression><![CDATA[$V{subtotal}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="0" y="40" width="309" height="20" uuid="0a7f98e0-4db9-4ddc-a385-0e511193cb89"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
            </box>
            <text><![CDATA[]]></text>
        </staticText>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="40" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="2f4cf4d5-51cd-435e-9279-c36e1bb578f0"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.0"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[VAT5.5:]]></text>
        </staticText>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="395" y="40" width="160" height="20" uuid="137c41e0-787d-4778-a9bf-1dd13d64fa3c"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{vat5Amount}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="0" y="60" width="309" height="20" uuid="70bd70aa-541d-424e-8dff-4febd8afbe32"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
            </box>
            <text><![CDATA[]]></text>
        </staticText>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="60" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="929d9003-99cc-4f5d-b80f-8df5cb11af70"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.0"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[VAT14.5]]></text>
        </staticText>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="395" y="60" width="160" height="20" uuid="7e8c8d41-2847-4a84-b068-22f40cd2e472"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{vat14Amount}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="0" y="80" width="309" height="20" uuid="42d1448c-3e4e-4144-96c3-9d964c7296a9"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
            </box>
            <text><![CDATA[]]></text>
        </staticText>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="80" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="ae220695-756d-48e3-b194-4e08baf43a46"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.0"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[Service Tax:]]></text>
        </staticText>
        <textField isStretchWithOverflow="true">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="395" y="80" width="160" height="20" uuid="930d451c-232a-4bc9-9527-f8e207b023fc"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{svcTaxAmount}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="0" y="100" width="309" height="20" uuid="63075a73-38d7-4954-951f-9f2169622ff8"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
            </box>
            <text><![CDATA[]]></text>
        </staticText>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="100" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="002ff00b-29e6-44f1-bc9c-0b1e6d8c1504"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.0"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[CST:]]></text>
        </staticText>
        <staticText>
            <reportElement x="0" y="120" width="309" height="20" uuid="e440c11d-5996-48a4-95bf-d1eae7ba0291"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
            </box>
            <text><![CDATA[]]></text>
        </staticText>
        <staticText>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="309" y="120" width="86" height="20" isPrintWhenDetailOverflows="true" uuid="d7e3353f-4990-4299-a24f-9826f6265f84"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.0"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <text><![CDATA[Grand Total]]></text>
        </staticText>
        <textField isStretchWithOverflow="true" pattern="">
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" x="395" y="120" width="160" height="20" isPrintWhenDetailOverflows="true" uuid="9a1ac07c-8237-468f-bd1a-a6f5c4e6a1ee"/>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.0"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
            <textElement textAlignment="Left" verticalAlignment="Middle">
                <font fontName="Times New Roman" pdfFontName="Times-Roman" isPdfEmbedded="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$F{GrandTotal}]]></textFieldExpression>
        </textField>
        <frame>
            <reportElement x="395" y="100" width="160" height="20" uuid="ae76daa8-a3de-4ba2-a258-7d67c5deb710">
                <printWhenExpression><![CDATA[$F{cstAmount}!=null && $F{cstAmount}.doubleValue()>0]]></printWhenExpression>
            </reportElement>
            <box>
                <topPen lineWidth="0.5"/>
                <leftPen lineWidth="0.5"/>
                <bottomPen lineWidth="0.5"/>
                <rightPen lineWidth="0.5"/>
            </box>
        </frame>
    </band>
</detail>

现在我的问题是,当JasperReports的报告打印出值时,它应该排除字段为零的行。

例如:

我有vat5,vat14,servicetax和cst.If vat5为零且vat14,servicetax和cst不为零然后它应该打印vat14,servicetax和cst.Likewise如果vat14为零并且vat5,servicetax,cst不为零然后它应该打印vat5,servicetax,cst,以便它在报告中将打印vat14排除为零

0 个答案:

没有答案