2011-11-22 8 views
5

テーブルデータソースからPDFを生成するためのジャスパー仕様を作成しました。これはうまくいきます。今私はいくつかの列を追加する必要があり、レポートは良く見えていません。私は達成することが可能ですジャスパーレポート生成で複数の行にまたがる列名を持つ方法

メンテナンス日

メンテナンス

に以下のような複数行の列名に絞ることができれば、私は今、考えていますこれはジャスパーで?

よろしく、 ポール

+0

あなたはJasperReports APIの使用を意味しますか? –

+0

APIの使用はありません。私はjrxmlを書いてあり、私はPDFを生成するためにテーブルのデータソースを使用します。 – paulhudson

+0

私の投稿に私のjrxmlスニペットを見ることができます –

答えて

3

列名はハードコードされていますか?キャリッジリターンを得るには、 "Maintenance Date"を "Maintenance \ nDate"に変更するだけですか?

注:静的テキスト要素に "\ n"文字を追加することはできません。テキストフィールドを使用する必要があります。幸運なことに、iReportの静的テキスト要素を右クリックしてテキストフィールドに変換するだけです。

私はそれを解決するかもしれないと思います。そうでない場合は、質問をより明確にする必要があります。

+0

はい、私のテーブルの列名は、jrxmlファイルにハードコードされています。ここに私が持っているのと同じコード – paulhudson

+0

パーフェクトです。その場合は、「\ n」を追加する必要があります。 – mdahlman

+0

folowing xmlスニペットのフォーマット方法がわからない \t \t \t \t \t \t \t <のTextElement /> \t <![CDATA [メンテナンス日]]> paulhudson

1

あなたはこのサンプルを使用することができますJasperReports APIを使用している場合:

//Detail 
    band = new JRDesignBand(); 
    band.setHeight(40); 

    JRDesignStaticText staticText = new JRDesignStaticText(); 
    staticText.setX(0); 
    staticText.setY(0); 
    staticText.setWidth(60); 
    staticText.setHeight(20); 
    staticText.setMode(ModeEnum.OPAQUE); 
    staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    staticText.setStyle(boldStyle); 
    staticText.setText("ID: "); 
    staticText.getLineBox().getLeftPen().setLineWidth(1); 
    staticText.getLineBox().getTopPen().setLineWidth(1); 
    staticText.getLineBox().setLeftPadding(10); 
    band.addElement(staticText); 

    textField = new JRDesignTextField(); 
    textField.setX(60); 
    textField.setY(0); 
    textField.setWidth(200); 
    textField.setHeight(20); 
    textField.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    textField.setStyle(normalStyle); 
    expression = new JRDesignExpression(); 
    expression.setValueClass(java.lang.Integer.class); 
    expression.setText("$F{Id}"); 
    textField.setExpression(expression); 
    textField.getLineBox().getTopPen().setLineWidth(1); 
    textField.getLineBox().getRightPen().setLineWidth(1); 
    textField.getLineBox().setLeftPadding(10); 
    band.addElement(textField); 

    staticText = new JRDesignStaticText(); 
    staticText.setX(0); 
    staticText.setY(20); 
    staticText.setWidth(60); 
    staticText.setHeight(20); 
    staticText.setMode(ModeEnum.OPAQUE); 
    staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    staticText.setStyle(boldStyle); 
    staticText.setText("Name: "); 
    staticText.getLineBox().getLeftPen().setLineWidth(1); 
    staticText.getLineBox().getBottomPen().setLineWidth(1); 
    staticText.getLineBox().setLeftPadding(10); 
    band.addElement(staticText); 


    textField = new JRDesignTextField(); 
    textField.setStretchWithOverflow(true); 
    textField.setX(60); 
    textField.setY(20); 
    textField.setWidth(200); 
    textField.setHeight(20); 
    textField.setPositionType(PositionTypeEnum.FLOAT); 
    textField.setStyle(normalStyle); 
    expression = new JRDesignExpression(); 
    expression.setValueClass(java.lang.String.class); 
    expression.setText("$F{FirstName} + \" \" + $F{LastName}"); 
    textField.setExpression(expression); 
    textField.getLineBox().getRightPen().setLineWidth(1); 
    textField.getLineBox().getBottomPen().setLineWidth(1); 
    textField.getLineBox().setLeftPadding(10); 
    band.addElement(textField); 

    ((JRDesignSection) jasperDesign.getDetailSection()).addBand(band); 

が、結果は次のようになります。

enter image description here

これはこれとほぼ同じですjrxmlのスニペットファイル:

<detail> 
    <band height="40" splitType="Stretch"> 
     <staticText> 
      <reportElement x="0" y="0" width="60" height="20"/> 
      <box leftPadding="10"> 
       <topPen lineWidth="1.0"/> 
       <leftPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <text><![CDATA[ID: ]]></text> 
     </staticText> 
     <textField> 
      <reportElement x="60" y="0" width="200" height="20"/> 
      <box leftPadding="10"> 
       <topPen lineWidth="1.0"/> 
       <rightPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <textFieldExpression><![CDATA[$F{Id}]]></textFieldExpression> 
     </textField> 
     <staticText> 
      <reportElement x="0" y="20" width="60" height="20"/> 
      <box leftPadding="10"> 
       <leftPen lineWidth="1.0"/> 
       <bottomPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <text><![CDATA[Name: ]]></text> 
     </staticText> 
     <textField> 
      <reportElement x="60" y="20" width="200" height="20"/> 
      <box leftPadding="10"> 
       <bottomPen lineWidth="1.0"/> 
       <rightPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <textFieldExpression><![CDATA[$F{FirstName} + " " + $F{LastName}]]></textFieldExpression> 
     </textField> 
    </band> 
</detail> 
関連する問題