1

3 つのレポート グループを含むメイン レポートを作成しています。各レポート グループ ヘッダーにはサブ レポートがあります。ジャスパーレポートを使用してPDFファイルを生成すると

  1. サブレポート間に空白を追加します。つまり、最初のサブレポートが最初のページの 60% 以上を占める場合、2 番目のサブレポートが新しいページで自動的に開始されます。
    各レコードが新しいページで始まる必要がある複数のレコードの pdf を生成するため、ispageignoration を使用できません。
  2. ページヘッダーだけで最後に空白のページを生成します

2 番目のレポートのテキスト フィールド (値 1、値 2... 値 6) には、最大 2000 文字を含めることができます。

誰でも私を助けてください..

メイン レポート report1.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="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20">
        <parameter name="logoStream" class="java.awt.Image" isForPrompting="false"/>
        <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
            <defaultValueExpression><![CDATA["D:\\Other  Drive\\eHRM\\17365\\"]]></defaultValueExpression>
        </parameter>
        <field name="id" class="java.lang.String"/>
        <field name="dataSource1" class="net.sf.jasperreports.engine.JRDataSource"/>
        <field name="dataSource2" class="net.sf.jasperreports.engine.JRDataSource"/>
        <field name="dataSource3" class="net.sf.jasperreports.engine.JRDataSource"/>
        <group name="Group1" isStartNewPage="true">
            <groupExpression><![CDATA[$F{id}]]></groupExpression>
            <groupHeader>
                <band height="20">
                    <subreport>
                        <reportElement x="-30" y="0" width="535" height="20" isRemoveLineWhenBlank="true"/>
                        <dataSourceExpression><![CDATA[$F{dataSource1}]]></dataSourceExpression>
                        <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "/report1_subreport1.jasper"]]></subreportExpression>
                    </subreport>
                </band>
            </groupHeader>
        </group>
        <group name="Group2">
            <groupExpression><![CDATA[$F{id}]]></groupExpression>
            <groupHeader>
                <band height="20">
                    <subreport>
                        <reportElement x="-30" y="0" width="535" height="20" isRemoveLineWhenBlank="true"/>
                        <dataSourceExpression><![CDATA[$F{dataSource2}]]></dataSourceExpression>
                        <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "/report1_subreport2.jasper"]]></subreportExpression>
                    </subreport>
                </band>
            </groupHeader>
        </group>
        <group name="group3">
            <groupExpression><![CDATA[$F{id}]]></groupExpression>
            <groupHeader>
                <band height="20">
                    <subreport>
                        <reportElement x="-30" y="0" width="535" height="20" isRemoveLineWhenBlank="true"/>
                        <dataSourceExpression><![CDATA[$F{dataSource3}]]></dataSourceExpression>
                        <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "/report1_subreport3.jasper"]]></subreportExpression>
                    </subreport>
                </band>
            </groupHeader>
        </group>
        <background>
            <band splitType="Stretch"/>
        </background>
        <pageHeader>
            <band height="50">
                <image>
                    <reportElement x="0" y="0" width="100" height="50"/>
                    <imageExpression><![CDATA[(java.awt.Image)$P{logoStream}]]></imageExpression>
                </image>
                <textField>
                    <reportElement x="510" y="0" width="20" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$V{PAGE_NUMBER}.toString()]]></textFieldExpression>
                </textField>
            </band>
        </pageHeader>
    </jasperReport>

3 つのサブレポートは、以下の 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="report1_subreport1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="30" rightMargin="30" topMargin="0" bottomMargin="0">
        <field name="title1" class="java.lang.String"/>
        <field name="value1" class="java.lang.String"/>
        <field name="title2" class="java.lang.String"/>
        <field name="value2" class="java.lang.String"/>
        <field name="title3" class="java.lang.String"/>
        <field name="value3" class="java.lang.String"/>
        <field name="title4" class="java.lang.String"/>
        <field name="value4" class="java.lang.String"/>
        <field name="title5" class="java.lang.String"/>
        <field name="value5" class="java.lang.String"/>
        <field name="title6" class="java.lang.String"/>
        <field name="value6" class="java.lang.String"/>
        <background>
            <band splitType="Stretch"/>
        </background>
        <detail>
            <band height="161" splitType="Stretch">
                <elementGroup>
                    <line>
                        <reportElement x="0" y="27" width="535" height="5" forecolor="#FFFFFF">
                            <printWhenExpression><![CDATA[($F{value2} == null || $F{value2}.equals( "" )) ? Boolean.FALSE : Boolean.TRUE]]></printWhenExpression>
                        </reportElement>
                    </line>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="0" y="33" width="120" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{title2}]]></textFieldExpression>
                    </textField>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="120" y="33" width="415" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{value2}]]></textFieldExpression>
                    </textField>
                </elementGroup>
                <elementGroup>
                    <line>
                        <reportElement x="0" y="54" width="535" height="5" forecolor="#FFFFFF">
                            <printWhenExpression><![CDATA[($F{value3} == null || $F{value3}.equals( "" )) ? Boolean.FALSE : Boolean.TRUE]]></printWhenExpression>
                        </reportElement>
                    </line>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="0" y="60" width="120" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{title3}]]></textFieldExpression>
                    </textField>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="120" y="60" width="415" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{value3}]]></textFieldExpression>
                    </textField>
                </elementGroup>
                <elementGroup>
                    <line>
                        <reportElement x="0" y="81" width="535" height="5" forecolor="#FFFFFF">
                            <printWhenExpression><![CDATA[($F{value4} == null || $F{value4}.equals( "" )) ? Boolean.FALSE : Boolean.TRUE]]></printWhenExpression>
                        </reportElement>
                    </line>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="0" y="87" width="120" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{title4}]]></textFieldExpression>
                    </textField>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="120" y="87" width="415" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{value4}]]></textFieldExpression>
                    </textField>
                </elementGroup>
                <elementGroup>
                    <line>
                        <reportElement x="0" y="108" width="535" height="5" forecolor="#FFFFFF">
                            <printWhenExpression><![CDATA[($F{value5} == null || $F{value5}.equals( "" )) ? Boolean.FALSE : Boolean.TRUE]]></printWhenExpression>
                        </reportElement>
                    </line>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="0" y="114" width="120" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{title5}]]></textFieldExpression>
                    </textField>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="120" y="114" width="415" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{value5}]]></textFieldExpression>
                    </textField>
                </elementGroup>
                <elementGroup>
                    <line>
                        <reportElement x="0" y="135" width="535" height="5" forecolor="#FFFFFF">
                            <printWhenExpression><![CDATA[($F{value6} == null || $F{value6}.equals( "" )) ? Boolean.FALSE : Boolean.TRUE]]></printWhenExpression>
                        </reportElement>
                    </line>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="0" y="141" width="120" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{title6}]]></textFieldExpression>
                    </textField>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="120" y="141" width="415" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{value6}]]></textFieldExpression>
                    </textField>
                </elementGroup>
                <elementGroup>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="0" y="6" width="120" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{title1}]]></textFieldExpression>
                    </textField>
                    <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                        <reportElement x="120" y="6" width="415" height="20" isRemoveLineWhenBlank="true"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[$F{value1}]]></textFieldExpression>
                    </textField>
                    <line>
                        <reportElement x="0" y="0" width="535" height="5" forecolor="#FFFFFF">
                            <printWhenExpression><![CDATA[($F{value1} == null || $F{value1}.equals( "" )) ? Boolean.FALSE : Boolean.TRUE]]></printWhenExpression>
                        </reportElement>
                    </line>
                </elementGroup>
            </band>
        </detail>
    </jasperReport>

人はn個の会社を持っているかもしれないので、会社名、仕事のプロフィール、プロジェクトの説明をサブレポートに入れました。

---------------------------------------------------------------
Name: XXX
DOB: XX-XX-XXXX
Personal Profile: (** this field may have 2000 characters****)
Skill Sets : (** this also will have 2000 characters**)

Professional Experience:

Company name: XXXX
Job Profile: (** this also will have 2000 characters**)
Project Description :(** this also will have 2000 characters**)

Company name: YYYYY
Job Profile: (** this also will have 2000 characters**)
Project Description :(** this also will have 2000 characters**)
-----------------------------------------------------------------

私の要件は、それに似た PDf を生成することです。

4

0 に答える 0