Jasperレポート5.2、iReport 5.2を使用し、レポートをRTFおよびPDF形式でエクスポートしています。
私のレポートでは、いくつかのテキストフィールドと、(静的テキスト)ラベルを水平方向に並べて追加します
Name: $F{name}
Age: $F{age}
Date of Birth: $F{dateOfBirth}
しかし、私はそれらを調整することはできません。これは私が試したものです
画像は、私が手に入れるものと欲しいものを示しています。さらに、私のテキストフィールドのコンテンツは動的です。つまり、コンテンツのサイズはさまざまです。
私は多くのフォーラムを読みましたが、解決策を見つけることができませんでした、提案してください。
ありがとう
コンテナの助けを借りて簡単に行うことができます-Frame要素。
FrameとPosition TypeをFloatおよびstaticText(label)およびtextField。
FortextField設定したPosition TypeasフロートOverlfowでストレッチastrue。
jrxmlファイル:
<?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="textfields_allign" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="d855bf18-5e9b-4060-8caa-3fdd08abce3b">
<parameter name="name" class="Java.lang.String"/>
<parameter name="id" class="Java.lang.String"/>
<parameter name="date" class="Java.lang.String"/>
<title>
<band height="69" splitType="Stretch">
<frame>
<reportElement uuid="314bfd5b-7b0a-42f4-aca3-e61f0283f126" positionType="Float" x="213" y="1" width="243" height="20"/>
<staticText>
<reportElement uuid="e07201bb-a677-4dc9-a332-f94e6eca2722" positionType="Float" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<text><![CDATA[Name]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement uuid="66c93a44-9015-4ae9-bf05-b68b2420f3ef" positionType="Float" x="121" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<textFieldExpression><![CDATA[$P{name}]]></textFieldExpression>
</textField>
</frame>
<frame>
<reportElement uuid="8311a483-955e-4280-a9ac-513d7d34495b" positionType="Float" x="213" y="21" width="243" height="20"/>
<staticText>
<reportElement uuid="da404b4e-7908-40ae-8e1b-38e19d9ddc7f" positionType="Float" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<text><![CDATA[ID]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement uuid="e0e312e8-cd2f-48af-8ae8-df95c6195488" positionType="Float" x="121" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<textFieldExpression><![CDATA[$P{id}]]></textFieldExpression>
</textField>
</frame>
<frame>
<reportElement uuid="8ff2baf9-b0ec-4c8a-b54a-9edd08b200cc" positionType="Float" x="213" y="41" width="243" height="20"/>
<staticText>
<reportElement uuid="b8d97db0-250a-43c8-a2f3-2fa3668c5d15" positionType="Float" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<text><![CDATA[Date]]></text>
</staticText>
<textField isStretchWithOverflow="true">
<reportElement uuid="4daa4d17-28be-4ac8-8e1e-2efbeec5f690" positionType="Float" x="121" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
<textElement/>
<textFieldExpression><![CDATA[$P{date}]]></textFieldExpression>
</textField>
</frame>
</band>
</title>
</jasperReport>
iReportのレポートのデザイン:
結果は(iReportプレビューを介して):
Alex Kのソリューションを完了するには、Jaspersoft Studioを使用して、静的テキストのプロパティを「ストレッチタイプ」を「最も高いオブジェクトに相対的」に設定することを忘れないでください。
Jasper Reports 3.6以降(5.2を含む)には、複数の詳細バンドを使用する機能があります。 Nameの最初の2つのブロックと「Sally Admison ...」のテキストを最初のバンドに配置できます。その下には患者IDと "1234567890Blah ..."があり、その下には生年月日。これにより、必要な結果が得られます。
私の投稿 here を参照しないでください。これは、Jasper Reportsの古いバージョン3.5の場合です。そのバージョンでは、複数のバンドを使用することはできず、1つの詳細バンドで生活する必要がありました。これは5.2には当てはまりません。複数の詳細バンドをお楽しみいただけます。楽しい!
詳細ペインの幅を広げるだけで、アライメントの問題がソートされます。