3 つのレポート グループを含むメイン レポートを作成しています。各レポート グループ ヘッダーにはサブ レポートがあります。ジャスパーレポートを使用してPDFファイルを生成すると
- サブレポート間に空白を追加します。つまり、最初のサブレポートが最初のページの 60% 以上を占める場合、2 番目のサブレポートが新しいページで自動的に開始されます。
各レコードが新しいページで始まる必要がある複数のレコードの pdf を生成するため、ispageignoration を使用できません。 - ページヘッダーだけで最後に空白のページを生成します
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 を生成することです。