1つのバンドに複数の行がある状態で、データがオーバーフローしている行をストレッチする

私の要件では、1つのquot;Details"バンドに複数の行を持つように縛られています。

現在、一番左の列に静的なテキストフィールド(色でハイライトされている)と、その隣に3つのテキストデータフィールドを配置しています。

私がレポートに求めているのは、3つのバンドのいずれかがデータをオーバーフローすると、静的なテキストバンドと3つのバンドの高さが伸び、次の行が伸びた行の下に "適切に"表示されることです。この場合、次の行の要素は同じ値で、同じ行に表示される必要があります。

Stretch with overflow" フラグを "true" に、 "Position" を "float" に設定してみましたが、問題は次の行データが適切に配置されないことです。

ソリューション

答えが見つかりました。解決の鍵は、行の中の要素をまとめてグループ化することです。

1.静的テキストラベルを全て削除する。代わりにテキストフィールドを使用し、テキストを引用符で囲みます。他のテキストフィールドやデータフィールドと一緒にグループ化することができます。 2.2. 引用符で囲まれたテキストフィールドの後にあるすべてのデータフィールドを、引用符で囲まれたテキストフィールドと同じグループに入れる。 3.3. 次に、表示したいすべての行について、同じことを行います。個々の行ごとにグループを分ける

グループ内の全要素、または、全ゴループ内の全要素を選択して、次のようにします。

  • 位置」を「浮動」に設定します。
  • ストレッチタイプ(Stretch Type)を「最も高いオブジェクトからの相対距離(Relative to the tallest object)」に設定します。
  • チェックボックス「"Print when detail overflows"」にチェックを入れます。
  • Stretch with overflow"チェックボックスをオンにします。

以上で、一緒にquot;stretch"することができました。

さて、バンドはこれらのストレッチされたディテールに合わせて動的にストレッチする必要があります。バンドのプロパティで、分割タイプを "Default"、分割を許可するを true に設定するだけです。これで私の場合はうまくいきました。

解説 (3)

もし誰かがこの問題に直面し、上記の回答がうまくいかない場合に備えて。あなたのxmlのルート要素をチェックすることをお勧めします。もし、以下のような属性がある場合は、それを削除してください。

printOrder="Horizontal"

そうすれば、上記の回答はうまくいくはずです。

同じことをググる誰かの一日を救えるといいのですが。

解説 (0)

私の場合、アドバイス通りにやってもうまくいきませんでした。オブジェクトをグループ化する代わりに "frame" を作成し、そのフレームに以前にグループ化された要素を配置しました。そのフレームに positionType="Float" と stretchType="No stretch" を設定し、その子アイテムに stretchType="RelativeToTallestObject" を設定するとすべてうまく行きました**。

解説 (2)