Очень часто для удобства просмотра табличных данных прибегают к выделению цветом фона четных строк таблицы. Если отчет предполагается в дальнейшем печатать на бумаге или выгружать в Excel, то не всегда отображение располосицы в таблице будет уместным. Есть способы управлять отображением располосицы в процессе построения отчета.
Открываем дизайнер отчетов и создаем располосицу в нужном нам отчете: заходим в редактор стилей в верхнем меню Report-Styles, там добавляем стиль с именем EvenRows и задаем ему нужный цвет фона. Затем нужно указать в свойствах бэнда EvenStyle = EvenRows.
Нужно задать параметр, который будет управлять выключением полосок. В дереве данных в дизайнере отчетов есть пункт Parameters. Нужно добавить новый параметр, к примеру, с именем EvenOff типа bool, а в Expression написать значение по умолчанию - false. В инспекторе объектов выбираем Report и кликаем на кнопку событий. Там делаем даблклик на пустое поле события StartReport - попадаем в редактор кода скрипта отчета. Добавляем следующий код:
private void _StartReport(object sender, EventArgs e)
{
if ((Boolean)Report.GetParameterValue("EvenOff"))
Data1.EvenStyle = "";
else
Data1.EvenStyle = "EvenRows";
}
Теперь можно управлять извне включением располосицы.
Перед подготовкой отчета в методе экспорта в файл Excel нужно добавить строку:
...
webReport.Report.SetParameterValue("EvenOff", true);
webReport.Report.Prepare();
Stream stream = new MemoryStream();
webReport.Report.Export(new Excel2007Export(), stream);
...
Существует также и другой способ изменения цвета фона при просмотре, который потребует создания дополнительных объектов в отчете. У всех объектов есть свойства Printable и Exportable, которые по умолчанию установлены в true и указывают будет ли наш объект выводиться на печать или экспортироваться в какой-либо формат. Можно создать текстовый объект с пустым содержимым и установить эти свойства как нам нужно. Далее необходимо назначить ему нужный цвет фона или стиль, как рассказано выше. Затем нужно расположить этот объект позади подсвечиваемых объектов. Для этого кликаем правой кнопкой мыши на нужный объект и выбраем нижний пункт меню "Send To Back". Помните о том, что подсвечиваемые объекты должны иметь прозрачный фон.