ActiveReports Условное форматирование - видимость изображения - PullRequest
1 голос
/ 16 марта 2010

Как в ActiveReports изменить форматирование на основе значений в данных отчета?

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

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

1 Ответ

1 голос
/ 17 марта 2010

Хорошо, я все еще не знаю, как получить текущий объект данных, но я обнаружил, что вы можете использовать свойство отчета 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);
    }

Edit:

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

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

...