Условное форматирование ActiveReports - Видимость изображения
-
20-09-2019 - |
Вопрос
Как я могу изменить форматирование в ActiveReports на основе значений в данных отчета?
В частности, я хочу показывать или скрывать изображения на основе значения в данных.Отчет привязывается к списку объектов с помощью набора для его свойства DataSource.Эти объекты имеют Condition
свойство со значениями "Плохое", "Нормальное" и т.д.У меня есть несколько изображений в отчете, которые соответствуют различным условиям, и я хочу скрыть все изображения, за исключением того, которое соответствует значению.
Должен ли я подписаться на Format
событие для раздела "Подробности"?Если да, то как мне перейти к данным "текущей записи"?
Решение
Хорошо, я все еще не знаю, как получить текущий объект данных, но я обнаружил, что вы можете использовать отчет Fields
свойство для извлечения значений из текущего объекта данных.
Приведенный ниже код соответствует описанию подробного раздела Format
событие. Fields["Condition"].Value
возвращает значение текущего объекта данных Condition
свойство (которое, оказывается, является значением enum).
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 противоречит правилам проектирования ActiveReports, потому что это не работает в некоторых странных угловых случаях.Теперь я использую этот метод вместо: http://www.datadynamics.com/forums/ShowPost.aspx ?Почтовый индекс=133642#133642
DataDynamics имеет функциональный запрос 22786 для предоставления доступа к объектам данных из событий Format.