2017-09-15 7 views
0

レイアウトに十字形のタブ要素があります。列グループの値の1つがnullで、出力にnull値の列を表示したくない場合。ヌル/空の列をクロス集計から削除するにはどうすればよいですか?

ヌル値の場合は空白をチェックし、式プロパティの場合は印刷を修正しました。しかし、それは空の値を空白に置き換えているだけですが、列は依然として出力にあります。

電流出力

enter image description here

の予想される出力

enter image description here

答えて

1

何か他のものにヌルから列ヘッダ内の名前を変更するには、bucketExpression

を変更することができます
<bucketExpression><![CDATA[($F{myField==null}?"New name":$F{myField})]]></bucketExpression> 

これを使用すると、値を新しいバケット(列)に移動することもできます。

列全体を削除する場合は、クロス集計に渡す前に、データソース内のNULL値をフィルタ処理する方法がありません。

オプションは次のとおりです。

  • あなたはWHERE myField is not null

  • あなたのデータソースにfilterExpressionを使用してのようなものになるだろうmysqlのために、ちょうどwhere句内のフィールドを追加し、SQLデータソースを使用している場合例えば。

    <filterExpression><![CDATA[($F{myField}!=null)]]></filterExpression> 
    
  • 無視して、レコードがnull値がある場合はジャンプのデータソースをラップするカスタムJRDatasourceを開発します。

結論:列を削除するには、あなたがクロス集計にそれを渡す前に、データソースからレコードを削除する必要があります。

関連する問題