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.