2012-01-20 12 views
0

iReportを使用してレポートを作成します。「光学的にグループ化されたフィールド」の幅を設定する方法があるかどうかを知りたいと思います。それらは、最も長いテキストを表示する最小サイズに設定する必要があります。私は左側に静的テキスト、右側にテキストフィールドを持っています。このテキストフィールドは、幅150と右揃えに設定されていますが、小さいサイズを設定して空白を削除したいと思います。グループの最長テキストでフィールドの最小幅を自動的に設定する方法

この

Name:   Paul 
Surname:   Smither 

のようないくつかのことを考慮し、プリセットのサイズが、ノー大きくなった後に小さくすることができる

Name: Paul 
Surname: Smither 

などに自動的たいです。

方法はありますか?一部のコンポーネントでさえも

答えて

0

は、Javaフレームワークを使用せずに動的に要素幅を変更できません。

JasperReports Ultimate Guideからの引用:

素子サイズ

幅と高さ属性は必須であり、ピクセル単位でレポート要素のサイズ を表します。 設定を伸ばしている他の要素は、指定された 要素の高さを無視するようにレポートエンジンに指示することがあります。この場合でも、高さが動的に計算される場合でも、要素は最初に指定された高さよりも小さくないので、要素は のままでなければなりません。

要素サイズの変更の仕組みをよりよく理解するために、this articleを読むことができます。

0

データセット内の同じ行にあるフィールドが真に2つの場合は、何かを一緒にハックすることができます。

  • Nスペースに設定文字列を使用して、最大フィールド長を定義し、固定幅フォント
  • を使用してください。たとえば:" "
  • はこれに$F{FirstName}から自分のフィールドのテキストを変更


    $ P {} MaxLengthStringデフォルト値は10のスペースです

    $P{MaxLengthString}.substring(
        $P{MaxLengthString}.length() + $F{FirstName}.length() - java.lang.Math.max($F{FirstName}.length(), $F{LastName}.length()) 
    ) + $F{FirstName} 
    
    えー...です

...もう少し複雑です。また、モノスペースフォントでのみ動作します。そして、私は本当にこれを示唆しているとは信じられません。それをしないでください。 (しかしそれは働くべきです)

関連する問題