Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jasper reports Jasper表在空白时删除行_Jasper Reports - Fatal编程技术网

Jasper reports Jasper表在空白时删除行

Jasper reports Jasper表在空白时删除行,jasper-reports,Jasper Reports,如果所有的值都是空的,我希望在jasper表中打印一个空行。将字段属性设置为Null时为空,将字段属性设置为Null时为空,将字段属性设置为true时为空时为空时为空时为删除行,这对我来说不起作用,而且该表的属性设置为true时为空时为删除行 以下是我的报告定义: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperrepor

如果所有的值都是空的,我希望在jasper表中打印一个空行。将字段属性设置为Null时为空,将字段属性设置为Null时为空,将字段属性设置为true时为空时为空时为空时为删除行,这对我来说不起作用,而且该表的属性设置为true时为空时为删除行

以下是我的报告定义:

<?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="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="8e8d2e06-defe-4759-b65d-0438240d3b54">
<style name="table">
    <box>
        <pen lineWidth="1.0" lineColor="#000000"/>
    </box>
</style>
<style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
    <box>
        <pen lineWidth="0.5" lineColor="#000000"/>
    </box>
</style>
<style name="table_CH" mode="Opaque" backcolor="#BFE1FF">
    <box>
        <pen lineWidth="0.5" lineColor="#000000"/>
    </box>
</style>
<style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
    <box>
        <pen lineWidth="0.5" lineColor="#000000"/>
    </box>
</style>
<subDataset name="TabDS" uuid="a96780df-2bfa-488b-ae8f-02bca8eed34b">
    <queryString>
        <![CDATA[select 'HI' AS GREETING,TAX from list_vat --statement returns some rows and I would like to surpress printing lines with value = 0]]>
    </queryString>
    <field name="GREETING" class="java.lang.String"/>
    <field name="TAX" class="java.math.BigDecimal"/>
</subDataset>
<queryString>
    <![CDATA[SELECT DUMMY FROM DUAL -- DUMMY SQL STATEMENT JUST BE ABLE TO FILL THE TABLE]]>
</queryString>
<field name="DUMMY" class="java.lang.String"/>
<title>
    <band height="79" splitType="Stretch">
        <componentElement>
            <reportElement key="table" style="table" x="0" y="0" width="555" height="13" isRemoveLineWhenBlank="true" uuid="9ae0840f-5051-447e-9072-7e5706b2dc02"/>
            <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                <datasetRun subDataset="TabDS" uuid="ef2dba26-e5bb-4ebf-885d-4c44bdc1306a">
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                </datasetRun>
                <jr:column width="90" uuid="c7995020-03e6-45bd-a287-889af0d312c2">
                    <jr:detailCell style="table_TD" height="20" rowSpan="1">
                        <textField isBlankWhenNull="true">
                            <reportElement x="0" y="0" width="90" height="20" isRemoveLineWhenBlank="true" uuid="0b14de63-e049-48da-850b-a6d92f19a7d2"/>
                            <textFieldExpression><![CDATA[($F{TAX}.compareTo(BigDecimal.ZERO)==0 ?  null :$F{TAX})]]></textFieldExpression>
                        </textField>
                    </jr:detailCell>
                </jr:column>
            </jr:table>
        </componentElement>
    </band>
</title>
</jasperReport>

你能省略SQL语句中的记录吗?嗨,汤姆,谢谢你的回复。当然,修改原始SQL语句是完成此任务的最简单方法:-。但不幸的是,我的实际情况并不是那么简单,我需要去掉表组中的一行,但我还必须使用行中其他列的值,因此我无法在SQL语句中过滤整行。我没有使用Jasper表,但您能使用Print When表达式吗?如果这样更方便,您还可以在SQL语句中有一个字段,指示是隐藏还是显示行,并在Print When表达式中使用该字段。再次感谢您的响应,但遗憾的是PrintWhen也不起作用:-。我可以将条件应用于行中的特定文本字段,但是即使条件应用到所有列中的字段,也会打印空白行。可能我遗漏了一些明显的东西,但在我看来,我必须尝试完全不同的方法,并且熟悉交叉表组件。