Jasper reports Jasper报告-分页问题
Jasper Reports中的分页有以下问题: 我有一个基于MySql查询结果的报告。每个页面对应于从MySql返回的一行。基本上,“详细信息”页面上的文本字段打印长文本或clob 我在“详细信息”部分的末尾添加了一个分页符 然而:Jasper reports Jasper报告-分页问题,jasper-reports,Jasper Reports,Jasper Reports中的分页有以下问题: 我有一个基于MySql查询结果的报告。每个页面对应于从MySql返回的一行。基本上,“详细信息”页面上的文本字段打印长文本或clob 我在“详细信息”部分的末尾添加了一个分页符 然而: 如果我将“split type”用作“Immediate”,则任何“overflows”的页面都不会出现分页符。换句话说,如果文本被分成两页,则下一条记录将从第二页开始,而不是从第三页开始 如果我使用“splittype”作为“Prevent”,那么除了那些文本很
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.3.0.final using JasperReports Library version 6.3.0 -->
<!-- 2017-03-18T17:00:56 -->
<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="TreatmentPlanNotes" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="a6476bf3-e703-4b50-9368-2eec564bb444">
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<parameter name="beg_dt" class="java.util.Date"/>
<parameter name="end_dt" class="java.util.Date"/>
<parameter name="first_name" class="java.lang.String"/>
<parameter name="last_name" class="java.lang.String"/>
<field name="created_dt" class="java.sql.Timestamp"/>
<field name="note" class="java.lang.String"/>
<field name="patient" class="java.lang.Integer"/>
<field name="patient_name" class="java.lang.String"/>
<field name="doctor_name" class="java.lang.String"/>
<group name="Group1" isStartNewPage="true">
<groupExpression><![CDATA[$V{REPORT_COUNT}]]></groupExpression>
<groupHeader>
<band/>
</groupHeader>
<groupFooter>
<band/>
</groupFooter>
</group>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="57" splitType="Stretch">
<staticText>
<reportElement x="14" y="10" width="184" height="30" forecolor="#3D0D0C" uuid="a847deeb-9517-4108-bb2b-9761158446cf"/>
<textElement>
<font fontName="Adobe Garamond Pro Bold" size="20"/>
</textElement>
<text><![CDATA[Treatment Plans:]]></text>
</staticText>
<textField>
<reportElement x="185" y="10" width="125" height="30" forecolor="#3D0A08" uuid="bee361db-d322-4d7c-85b9-22c3490ca018">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<textElement>
<font fontName="Adobe Garamond Pro Bold" size="20"/>
</textElement>
<textFieldExpression><![CDATA[new SimpleDateFormat("MM/dd/yyyy").format($P{beg_dt})]]></textFieldExpression>
</textField>
<textField>
<reportElement x="374" y="10" width="129" height="30" forecolor="#3D0A08" uuid="00abf204-6e5d-4c42-ad41-21fc3eb40247">
<property name="com.jaspersoft.studio.unit.y" value="pixel"/>
</reportElement>
<textElement>
<font fontName="Adobe Garamond Pro Bold" size="20"/>
</textElement>
<textFieldExpression><![CDATA[new SimpleDateFormat("MM/dd/yyyy").format($P{end_dt})]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="320" y="10" width="30" height="30" forecolor="#3D0A08" uuid="a602d6a4-51ea-47f1-aceb-4a5dcc4ae88d"/>
<textElement>
<font fontName="Adobe Garamond Pro Bold" size="20"/>
</textElement>
<text><![CDATA[to]]></text>
</staticText>
</band>
</title>
<detail>
<band height="250" splitType="Immediate">
<textField>
<reportElement x="4" y="8" width="106" height="24" uuid="f78e49a7-3d65-4a68-9dec-b4708a06db72"/>
<textElement>
<font fontName="Adobe Garamond Pro Bold" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{created_dt}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="128" y="9" width="112" height="24" uuid="2cfbfba2-e429-415c-8737-05282649b74e"/>
<textElement>
<font fontName="Adobe Garamond Pro Bold" size="14"/>
</textElement>
<textFieldExpression><![CDATA[$F{patient_name}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement x="2" y="43" width="550" height="207" isRemoveLineWhenBlank="true" uuid="f15bcb7e-b3d1-4f61-a2ae-63e4807c8a5a"/>
<textFieldExpression><![CDATA[ITreatUtils.convertHTMLtoPlain($F{note})]]></textFieldExpression>
</textField>
</band>
</detail>
<pageFooter>
<band height="37" splitType="Stretch">
<textField>
<reportElement x="229" y="5" width="100" height="30" isRemoveLineWhenBlank="true" uuid="c19b6d54-120d-449d-a138-f1e6b91641da"/>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageFooter>
</jasperReport>
查看JRXML(至少是详细信息栏)可能有助于了解问题所在。但是,您可以尝试的另一个方法是去掉break元素,创建一个在每条记录上都会中断的组(例如,使用$V{REPORT_COUNT}作为组表达式),并设置isStartNewPage标志。谢谢。我尝试过使用分组——虽然有了改进,但仍有一些情况下,在大约10-15条记录中出现过一次空白页。当记录的长度与页面上容纳的长度差不多时,就会发生中断。当记录溢出到另一个页面或记录很好地适合页面时,页面不会发生。我已经添加了JRXML。您可以尝试的第一件事是将组页脚和页眉标注栏高度设置为0,并通过将其高度设置为250来消除细节标注栏底部的空白。实现了您的建议。我现在只剩下50条记录/页中的一页空白。这应该是可以接受的,也许是不可修复的。由于Jasper对我来说只是一个次要项目,我必须问你一个基本问题-你是如何得出细节带的高度应该是250的结论的?另外,由于这个问题是有效的-你介意接受这个问题吗?250是细节带中最低元素的底部:y(43)+高度(207)=250。JasperReports会在条带中保留空白,因此如果要避免出现空白,就不应该在条带底部有空白。查看JRXML(至少是详细信息条带)可能有助于了解问题所在。但是,您可以尝试的另一个方法是去掉break元素,创建一个在每条记录上都会中断的组(例如,使用$V{REPORT_COUNT}作为组表达式),并设置isStartNewPage标志。谢谢。我尝试过使用分组——虽然有了改进,但仍有一些情况下,在大约10-15条记录中出现过一次空白页。当记录的长度与页面上容纳的长度差不多时,就会发生中断。当记录溢出到另一个页面或记录很好地适合页面时,页面不会发生。我已经添加了JRXML。您可以尝试的第一件事是将组页脚和页眉标注栏高度设置为0,并通过将其高度设置为250来消除细节标注栏底部的空白。实现了您的建议。我现在只剩下50条记录/页中的一页空白。这应该是可以接受的,也许是不可修复的。由于Jasper对我来说只是一个次要项目,我必须问你一个基本问题-你是如何得出细节带的高度应该是250的结论的?另外,由于这个问题是有效的-你介意接受这个问题吗?250是细节带中最低元素的底部:y(43)+高度(207)=250。JasperReports会在标注栏中保留空白,因此如果要避免出现空白,则标注栏底部不应出现空白。