我创建了一个报告,你可以在这里找到:
碧玉,"打印时"创建空白,
StackOverflowExample.jrxml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<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="StackOverflowExample" columnCount="2" pageWidth="595" pageHeight="842" columnWidth="277" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="749cd048-9a0d-4a00-89bf-1a75a4565943">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<queryString>
<![CDATA[SELECT "ORDERS"."SHIPCOUNTRY",
Max("ORDERS"."SHIPCOUNTRY")
FROM "ORDERS"
GROUP BY "ORDERS"."SHIPCOUNTRY"
ORDER BY "ORDERS"."SHIPCOUNTRY" ASC]]>
</queryString>
<field name="SHIPCOUNTRY" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="SHIPCOUNTRY"/>
<property name="com.jaspersoft.studio.field.tree.path" value="ORDERS"/>
</field>
<field name="C2" class="java.lang.String">
<property name="com.jaspersoft.studio.field.label" value="C2"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="170">
<subreport>
<reportElement x="-20" y="50" width="297" height="120" isRemoveLineWhenBlank="true" uuid="4b89b974-f838-4bb7-85b6-1b0f1079c1e6">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<subreportParameter name="country">
<subreportParameterExpression><![CDATA[$F{SHIPCOUNTRY}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA["StackOverflowExampleSubReport.jasper"]]></subreportExpression>
</subreport>
<textField>
<reportElement x="43" y="0" width="185" height="50" uuid="0c170024-70ea-492f-95fe-99ff3a27cb6d"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="19"/>
</textElement>
<textFieldExpression><![CDATA[$F{SHIPCOUNTRY}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
StackOverflowExampleSubReport.jrxml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<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="StackOverflowExample" columnCount="2" printOrder="Horizontal" pageWidth="595" pageHeight="842" columnWidth="277" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="749cd048-9a0d-4a00-89bf-1a75a4565943">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<parameter name="country" class="java.lang.String">
<defaultValueExpression><![CDATA["France"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT "ORDERS"."ORDERDATE",
"ORDERS"."FREIGHT"
FROM "ORDERS"
WHERE "ORDERS"."SHIPCOUNTRY" = $P{country}]]>
</queryString>
<field name="ORDERDATE" class="java.sql.Timestamp">
<property name="com.jaspersoft.studio.field.label" value="ORDERDATE"/>
<property name="com.jaspersoft.studio.field.tree.path" value="ORDERS"/>
</field>
<field name="FREIGHT" class="java.math.BigDecimal">
<property name="com.jaspersoft.studio.field.label" value="FREIGHT"/>
<property name="com.jaspersoft.studio.field.tree.path" value="ORDERS"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="130">
<printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()==1)]]></printWhenExpression>
<lineChart>
<chart evaluationTime="Report">
<reportElement isPrintRepeatedValues="false" x="0" y="3" width="235" height="125" isRemoveLineWhenBlank="true" uuid="3b5f7d89-490b-468f-9112-f606f4eda437"/>
<chartTitle/>
<chartSubtitle/>
<chartLegend/>
</chart>
<categoryDataset>
<categorySeries>
<seriesExpression><![CDATA[$P{country}]]></seriesExpression>
<categoryExpression><![CDATA[$F{ORDERDATE}]]></categoryExpression>
<valueExpression><![CDATA[$F{FREIGHT}]]></valueExpression>
</categorySeries>
</categoryDataset>
<linePlot>
<plot/>
<categoryAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</categoryAxisFormat>
<valueAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</valueAxisFormat>
</linePlot>
</lineChart>
</band>
</detail>
</jasperReport>
这份报告有效,我拥有的是这个
https://community.jaspersoft.com/sites/default/files/user_uploads/ho.hince/capture_report_test.png
问题 :
顺序是垂直的。我们能看到的是Argentina, Brazil, Austria, Canada, etc..
但我想拥有Argentina, Austria, Belgium, Brazil, etc..
如果我将打印顺序更改为水平,则会出现错误:
子报表在不支持溢出的带区上溢出。
在不支持溢出的波段上溢出的答案子报表告诉我必须使用垂直,但我希望它水平。我该如何解决?有什么想法或技巧吗?
水平报表中的详细信息带不允许垂直拉伸,因此需要使其足够高以适合子报表。
在报表中,主报表中的子报表元素的高度 = 120。 但子报表具有高度 = 130 的详细信息带,加上 20 像素的上边距和 20 的下边距。 因此,子报表的高度实际上为 170 像素。
如果将主报表中子报表元素的高度设置为 170,将主报表详细信息带的高度设置为 220,则它将与水平打印顺序一起使用。