ActiveReports Условное форматирование - видимость изображения

В ActiveReports, как я могу изменить форматирование на основе значений в данных отчета?

В частности, я хочу показать или скрыть изображения на основе значения в данных. Отчет связывается со списком объектов через набор его свойства DataSource. Эти объекты имеют Condition свойство со значениями "Плохо", "Нормально" и т. д. У меня есть несколько изображений в отчете, которые соответствуют различным условиям, и я хочу скрыть все изображения, кроме одного, соответствующего значению.

Должен ли я подписаться на Format событие для подробного раздела? Если да, то как мне получить данные "текущей записи"?

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);
    }

Редактировать:

С тех пор я узнал, что доступ к коллекции Fields из события Format противоречит правилам разработки ActiveReports, потому что он не работает в некоторых странных угловых случаях. Теперь я использую этот метод вместо: http://www.datadynamics.com/forums/ShowPost.aspx?PostID=133642

DataDynamics имеет запрос 22786 для предоставления доступа к объектам данных из событий Format.

Другие вопросы по тегам