Jasper reports Jasper表在空白时删除行
如果所有的值都是空的,我希望在jasper表中打印一个空行。将字段属性设置为Null时为空,将字段属性设置为Null时为空,将字段属性设置为true时为空时为空时为空时为删除行,这对我来说不起作用,而且该表的属性设置为true时为空时为删除行 以下是我的报告定义: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
<?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也不起作用:-。我可以将条件应用于行中的特定文本字段,但是即使条件应用到所有列中的字段,也会打印空白行。可能我遗漏了一些明显的东西,但在我看来,我必须尝试完全不同的方法,并且熟悉交叉表组件。