20

私の要件は、単一の「詳細」バンドに複数の行を含めることを義務付けています。

現在、左端の列に静的テキストフィールド(色で強調表示されています)があり、その横に3つのテキストデータフィールドがあります。

レポートで必要なのは、3つのバンドのいずれかのデータがオーバーフローしたときに、静的テキストバンドと3つのバンドの高さが引き伸ばされ、引き伸ばされた行の下に次の行が「適切に」表示されることです。「適切に」とは、次の行の要素の「最上位」の値が同じで、同じ「行」に表示される必要があることを意味します。

「オーバーフローありのストレッチ」フラグを「true」に、「Position」を「float」に設定してみましたが、次の行のデータが正しく配置されていないという問題があります。

4

3 に答える 3

31

私は答えを見つけました。ソリューションの鍵は、行内の要素をグループ化することです。

  1. すべての静的テキストラベルを削除します。代わりに、テキストを引用符で囲んで、テキストフィールドを使用してください。それらは、他のテキストフィールドおよびデータフィールドとグループ化できます。
  2. 引用符で囲まれたテキストフィールドの後にあるすべてのデータフィールドを、引用符で囲まれたテキストフィールドと同じグループに配置します。
  3. 次に、表示するすべての行で同じことを行います。個々の行に個別のグループ。

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

  • 「Position」を「Float」に設定します
  • 「ストレッチタイプ」を「最も高いオブジェクトに対して相対的」に設定します
  • 「詳細がオーバーフローしたときに印刷する」チェックボックスをオンにします。
  • 「オーバーフローでストレッチ」チェックボックスをオンにします。

物事を一緒に「伸ばす」ためにできることはこれだけです。

さて、バンドはこれらの引き伸ばされた詳細で動的に引き伸ばされる必要があります。バンドのプロパティに移動し、分割タイプを「デフォルト」に設定し、分割をtrueに設定します。これは私にとってトリックでした。

于 2012-05-04T08:31:33.393 に答える
4

誰かがこの問題に遭遇し、上記の答えが機能しない場合。xmlのルート要素を確認することをお勧めします。次の属性がある場合は、削除します。

printOrder="Horizontal"

次に、上記の答えが機能するはずです。

同じものをグーグルで検索する日を誰かが救うことを願っています。

于 2015-11-03T13:54:12.587 に答える
3

私の場合、あなたがアドバイスしたようにやることはうまくいきませんでした。ソリューションを少し変更する必要がありました。オブジェクトをグループ化する代わりに「フレーム」を作成し、以前にグループ化した要素をそのフレームに配置しました。そのフレームにpositionType="Float"とstretchType="No Stretch"を設定し、その子アイテムにstretchType="RelativeToTallestObject"を設定するとすべて機能します。

于 2014-01-14T11:54:34.213 に答える