本文介绍了如何根据动态内容在JasperReport中拉伸文本字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<?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="tree-template" pageWidth="595" pageHeight="842" columnWidth="481" leftMargin="57" rightMargin="57" topMargin="72" bottomMargin="72">
<style name="Title" forecolor="#000000" fontName="Times New Roman" fontSize="50" isBold="false" pdfFontName="Times-Bold"/>
<style name="SubTitle" forecolor="#666666" fontName="Times New Roman" fontSize="18" isBold="false" pdfFontName="Times-Roman"/>
<style name="Column header" forecolor="#666666" fontName="Times New Roman" fontSize="14" isBold="true" pdfFontName="Times-Roman"/>
<style name="Detail" mode="Transparent" fontName="Times New Roman" pdfFontName="Times-Roman"/>
<style name="Row" mode="Transparent" fontName="Times New Roman" pdfFontName="Times-Roman">
<conditionalStyle>
<conditionExpression><![CDATA[$V{REPORT_COUNT}%2 == 0]]></conditionExpression>
<style mode="Opaque" backcolor="#F0EFEF"/>
</conditionalStyle>
</style>
<parameter name="JasperCustomSubReportLocation" class="net.sf.jasperreports.engine.JasperReport"/>
<parameter name="JasperCustomSubReportDatasource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<field name="name" class="java.lang.String"/>
<field name="notes" class="java.lang.String"/>
<field name="state" class="java.lang.String"/>
<field name="project" class="com.pearson.ltg.qmo.dashboard.domain.QDashProject">
<fieldDescription><![CDATA[project]]></fieldDescription>
</field>
<field name="theme" class="java.lang.String"/>
<field name="goals" class="java.lang.String"/>
<field name="statusDetails" class="java.lang.String"/>
<field name="mitigation" class="java.lang.String"/>
<field name="status" class="java.lang.String"/>
<field name="releaseDate" class="java.util.Calendar"/>
<group name="Group1">
<groupExpression><![CDATA[(int)($V{REPORT_COUNT}/15)]]></groupExpression>
</group>
<group name="Group2">
<groupExpression><![CDATA[(int)($V{REPORT_COUNT}/5)]]></groupExpression>
<groupHeader>
<band height="10"/>
</groupHeader>
</group>
<title>
<band height="58" splitType="Stretch">
<staticText>
<reportElement style="Title" x="4" y="0" width="477" height="56"/>
<textElement>
<font size="48" isBold="false"/>
</textElement>
<text><![CDATA[Release Details]]></text>
</staticText>
</band>
</title>
<detail>
<band height="189" splitType="Stretch">
<frame>
<reportElement mode="Opaque" x="0" y="7" width="481" height="13" forecolor="#D0B48E" backcolor="#9DB1B8"/>
</frame>
<textField>
<reportElement x="279" y="7" width="202" height="13"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="79" y="7" width="100" height="13"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{project}.getName()]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="2" y="7" width="79" height="13"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Platform : ]]></text>
</staticText>
<staticText>
<reportElement x="179" y="7" width="100" height="13"/>
<textElement>
<font size="10" isBold="true" isItalic="false"/>
</textElement>
<text><![CDATA[Release Name :]]></text>
</staticText>
<staticText>
<reportElement x="0" y="20" width="47" height="20"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Status : ]]></text>
</staticText>
<textField>
<reportElement x="79" y="20" width="100" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{status}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="40" width="79" height="20"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Release Date: ]]></text>
</staticText>
<staticText>
<reportElement x="0" y="60" width="181" height="20"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Release Goals]]></text>
</staticText>
##want this field to auto stretch as per content##
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="80" width="463" height="20"/>
<textElement>
<font size="10"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{goals}==null ? "Not Defined":$F{goals}]]></textFieldExpression>
</textField>
##want this field to auto stretch as per content##
<staticText>
<reportElement stretchType="RelativeToTallestObject" x="0" y="100" width="98" height="20"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Status Details]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToTallestObject" x="2" y="120" width="463" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{statusDetails}==null ? "Not Defined":$F{statusDetails}]]></textFieldExpression>
</textField>
<staticText>
<reportElement stretchType="RelativeToTallestObject" x="0" y="140" width="98" height="20"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Risk Mitigation]]></text>
</staticText>
<textField>
<reportElement stretchType="RelativeToTallestObject" x="18" y="160" width="463" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{mitigation}==null?"Not Defined":$F{mitigation}]]></textFieldExpression>
</textField>
<textField>
<reportElement stretchType="RelativeToTallestObject" x="79" y="40" width="100" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[new SimpleDateFormat("MMM dd,yyyy").format($F{releaseDate}.getTime())]]></textFieldExpression>
</textField>
<line>
<reportElement x="0" y="180" width="481" height="1"/>
</line>
</band>
</detail>
<columnFooter>
<band height="12" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="13" splitType="Stretch">
<frame>
<reportElement mode="Opaque" x="0" y="0" width="477" height="13" forecolor="#D0B48E" backcolor="#9DB1B8"/>
<textField pattern="EEEEE dd MMMMM yyyy">
<reportElement style="Column header" x="2" y="0" width="197" height="13" forecolor="#FFFFFF"/>
<textElement verticalAlignment="Middle">
<font size="10" isBold="false"/>
</textElement>
<textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement style="Column header" x="450" y="0" width="27" height="13" forecolor="#FFFFFF"/>
<textElement verticalAlignment="Middle">
<font size="10" isBold="false"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<textField>
<reportElement style="Column header" x="370" y="0" width="80" height="13" forecolor="#FFFFFF"/>
<textElement textAlignment="Right" verticalAlignment="Middle">
<font size="10" isBold="false"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
</textField>
</frame>
</band>
</pageFooter>
</jasperReport>
推荐答案
得到解决方案。将所有静态文本字段和所有元素属性修改为positionType =Float。
Got the solution. Modified all the static text fields and all the elements properties to positionType="Float".
这篇关于如何根据动态内容在JasperReport中拉伸文本字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!