1

ActiveReportsで、レポートデータの値に基づいてフォーマットを変更するにはどうすればよいですか?

具体的には、データの値に基づいて画像を表示または非表示にします。レポートは、そのDataSourceプロパティへのセットを介してオブジェクトのリストにバインドされます。これらのオブジェクトには、Condition「Poor」、「Normal」などの値を持つプロパティがあります。レポートにさまざまな条件に対応する画像がいくつかあり、値に対応する画像を除くすべての画像を非表示にします。

Format詳細セクションのイベントに登録する必要がありますか?もしそうなら、どうすれば「現在のレコード」データにアクセスできますか?

4

1 に答える 1

1

わかりました。現在のデータオブジェクトを取得する方法はまだわかりませんが、レポートのFieldsプロパティを使用して現在のデータオブジェクトから値を取得できることを発見しました。

以下のコードは、詳細セクションのFormatイベントをサブスクライブします。Fields["Condition"].Value現在のデータオブジェクトのConditionプロパティの値(たまたま列挙値)を取得します。

    private void detail_Format(object sender, EventArgs e)
    {
        Condition? condition = Fields["Condition"].Value as Condition?;

        conditionUnknownPicture.Visible = (condition == Condition.Unknown);
        conditionPoorPicture.Visible = (condition == Condition.Poor);
        conditionNormalPicture.Visible = (condition == Condition.Normal);
        conditionNewPicture.Visible = (condition == Condition.New);
    }

編集:

それ以来、FormatイベントからFieldsコレクションにアクセスすることは、特定の奇妙なコーナーケースでは機能しないため、ActiveReportsのデザインルールに反することを学びました。現在、代わりにこのメソッドを使用しています:http ://www.datadynamics.com/forums/ShowPost.aspx?PostID=133642#133642

DataDynamicsには、Formatイベントからのデータオブジェクトへのアクセスを提供する機能要求22786があります。

于 2010-03-16T23:01:22.313 に答える