Пример 8. Объекты в ячейках |
Top Previous Next |
Используя объекты, внедренные в ячейки матрицы, можно получить разнообразные визуальные эффекты. Покажем на следующем примере, как нарисовать простую шкалу, показывающую уровень продаж сотрудника.
Матрица будет использовать источник данных MatrixDemo. Для того чтобы построить матрицу, добавьте поля источника данных MatrixDemo следующим образом:
Настройте внешний вид матрицы следующим образом:
Теперь добавим в ячейку со значением Revenue 3 объекта "Фигура". Эти объекты будут выполнять роль индикатора следующим образом:
Матрица теперь выглядит так:
Чтобы управлять состоянием объектов, создадим обработчик события BeforePrint ячейки матрицы. Для этого выделите ячейку Revenue, в окне "Свойства" нажмите кнопку и сделайте двойной щелчок на событии BeforePrint. FastReport создаст пустой обработчик события и переключится на закладку "Код". Напишите в обработчике следующий код:
private void Cell4_BeforePrint(object sender, EventArgs e) { // В нашем примере ячейка имеет имя Cell4.
// Получим значение ячейки, которое содержится в свойстве Cell4.Value. // Часть ячеек в нашей матрице будут пустыми, учтем это (проверка на null). // Значение надо привести к типу decimal, потому что исходное поле данных [MatrixDemo.Revenue] // имеет тип System.Decimal. decimal value = Cell4.Value == null ? 0 : (decimal)Cell4.Value;
// Shape1..3 - это объекты "Фигура" // Включаем или выключаем объекты в зависимости от значения: // один объект, если значение < 100; два, если оно < 3000; три, если оно >= 3000 Shape1.Visible = true; Shape2.Visible = value >= 100; Shape3.Visible = value >= 3000;
// Выбираем цвет: красный < 100; желтый < 3000; зеленый >= 3000 Color color = Color.Red; if (value >= 100) color = Color.Yellow; if (value >= 3000) color = Color.GreenYellow;
// устанавливаем цвет для всех трех объектов Shape1.Fill = new SolidFill(color); Shape2.Fill = new SolidFill(color); Shape3.Fill = new SolidFill(color); }
Если запустить отчет, мы увидим следующее:
|