2017-10-20 31 views
3

私はJaspersoft Studioを使用しています。ジャスパーレポートには、いくつかのフッター(データセットグループ)が含まれているテーブルを使用しています。これらのフッターには、詳細/グループ全体で計算されたさまざまな合計が含まれています。"PrintWhenExpression"と同様の方法を使用してテーブルコンポーネントのテーブルフッターを非表示にする方法

レポートの入力パラメータ($P{myRepMode} == 1)によっては、一部のフッターを表示する必要があります。

理想的には、グループフッターにPrintWhenExpressionフィールドが必要ですが、不都合にも、Jasper Reportsはフィールドを提供しません。スタイル(条件付き)は要素の高さを設定することもできないようです。セル内のテキストを隠すと、行は空になりますが、空白はまだ残ります。

条件でテーブルフッターを非表示にするにはどうすればよいですか?

P.S.私は、集計計算をクエリデータセットに移動してすべてを一度に返し、いくつかのヒントに基づいてセルをフォーマットすることができることを知っていますが、これは非データ列/行でデータを汚染し、

+0

@AlexK私はJaspersoft Studioを使用しており、手動XML編集(可能な場合)よりもStudioソリューションを優先します。 – Kromster

+0

Jaspersoftスタジオは単なるIDEですが、ソリューションはIDEに依存しません –

+0

このIDEの@AlexKソリューションはずっと有利です。特に、このIDEでさらに編集してもそれと矛盾することはありません。 – Kromster

答えて

0

AFIK printWhenExpressionjr:tableFooterに追加することはできません。達成しようとしているものに近い唯一の解決策は、textFieldsのオーバーフロー機能を活用することです。 (JasperReportまたはJavaでJasperPrintを手の込んだ投稿ソリューションを考慮しない)

方法は、高さ1であなたのprintWhenExpressiontextFieldを使用し、jr:tableFooter 1の高さを設定し、「オーバーフローでストレッチ」

を選択するのだろう

<jr:tableFooter height="1" rowSpan="1"> 
    <textField isStretchWithOverflow="true" isBlankWhenNull="false"> 
     <reportElement key="" x="0" y="0" width="90" height="1" isRemoveLineWhenBlank="true" uuid="9d1ad772-024d-4642-84b2-68654bf3752c"> 
      <printWhenExpression><![CDATA[MyExpression]]></printWhenExpression> 
     </reportElement> 
     <textFieldExpression><![CDATA["MyText"]]></textFieldExpression> 
    </textField> 
</jr:tableFooter> 

テキストは、それはすべてのテキストが表示されます場合は何のテキストフィールドは、高さが、唯一の1できなくなります場合、これは、ご希望のデザインに近く来ます。フィールドには、IDEのデザインビューでvisibileされませんので、

しかし、個人的に私はそれを好きではない、私は、JRの代わりに通常のサブレポートに、テーブルの下にフロートとtextFieldとしてgroupFooterを別の方法を使用するか、または変更することを検討します:表。

関連する問題