質問

一部のレポートで集計コントロールを使用する場合、0 ではなく空白のフィールドを表示したい場合があります。これを自動的に行う方法はないようです。これを行うことができる方法を持っている人はいますか。エクスポートする場合はフィールドの値「0」を維持したいが、PDF または HTML にレンダリングする場合は空白を表示したいことに注意してください。

役に立ちましたか?

解決 2

参考までに、これをしばらく使ってみたところ、可視性ルールを使用する方が簡単であることがわかりました。大きな利点の 1 つは、さまざまな出力形式に対してさまざまな表示設定を簡単に設定できることです。したがって、PDF の場合は空白を使用するのが最適ですが、Excel の場合は値 0 が必要になる場合があります。

他のヒント

これを解決するにはいくつかの方法があります。主な 2 つは、表示ルールまたはハイライトを使用して条件付き書式を作成することです。特定のタイプの出力 (例:HTML)。

この特定のケースでは、これらのアプローチには 2 つの問題があります。まず、テキストの色を指定する必要がない一般的なソリューションが必要です。言い換えれば、条件が true (値 0) の場合、テキストの色を背景の色と一致させる必要があります。そうすることで、誰かがコントロールのbackgroundColorを変更した場合でも、コードは引き続き機能します。

もう 1 つの問題は、この場合、値の検索をサポートしていない動的列バインディングを使用していることです。

私が作成した解決策は、次に示すように、hideMe という JavaScript 関数を追加することでした。

function hideText (dataControl){
    if (dataControl.getValue() == 0) {
        var color = dataControl.getStyle().getBackgroundColor();
        var parentItem = dataControl.getParent();
        do {
            if (color == null && parentItem != null) {
                color = parentItem.getStyle().getBackgroundColor();
                parentItem = parentItem.getParent();
            } else {
                break;
            }

        } while (color == null);
        dataControl.getStyle().color = color;
    }
}

この関数がレポート (私の場合は組み込まれた JavaScript ファイル) に追加されたら、コントロールの OnCreate メソッドからこの関数を呼び出すだけです。

hideText(this);

これは Java イベント ハンドラーを使用して行うこともできますが、この方法の方が簡単だと思われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top