Для настройки условного форматирования данных в таблице предназначен интерфейс ITabFormatConditions.
Приведен пример настройки условного форматирования в регламентном отчете с идентификатором «REPORT_TAB». Отчет содержит аналитическую область данных.
Будут выделены ячейки, содержащие значение выше среднего. В результате таблица будет выглядеть следующим образом:
Для выполнения примера добавьте ссылки на системные сборки: Drawing, Metabase, Report, Tab.
Sub CondFormat;
Var
mb: IMetabase;
Report: IPrxReport;
Table: ITabSheet;
TabConds: ITabFormatConditions;
FormatCond: ITabFormatCondition;
Average: ITabFormatAverage;
Style: ITabCellStyle;
Color: IGxColor;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем регламентный отчет
Report := mb.ItemById("REPORT_TAB").Edit As IPrxReport;
// Получаем таблицу
Table := (Report.ActiveSheet As IPrxTable).TabSheet;
// Получаем коллекцию условий условного форматирования
TabConds := Table.FormatConditions;
// Очищаем коллекцию условий
TabConds.Clear;
// Создаем новое условие
FormatCond := TabConds.Add;
// Задаем диапазон, для которого предназначен стиль таблицы
FormatCond.Range := Table.Regions.Item(0).Range;
// Указываем, что условие действующее
FormatCond.Enabled := True;
// Задаем тип условия: ячейки со значениями больше/меньше среднего
FormatCond.Type := TabConditionType.Average;
// Настраиваем условие
Average := FormatCond.Details As ITabFormatAverage;
// Задаем условие: форматировать ячейки со значением выше среднего
Average.Type := TabFormatAverageType.Above;
// Задаем стиль оформления фона ячеек, удовлетворяющих условию
Style := New TabCellStyle.Create;
Color := New GxColor.CreateRGB(98, 200, 255);
Style.BackgroundColor := Color;
Average.Style := Style;
// Сохраняем изменения
(Report As IMetabaseObject).Save;
End Sub CondFormat;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Report: IPrxReport;
Table: ITabSheet;
TabConds: ITabFormatConditions;
FormatCond: ITabFormatCondition;
Average: ITabFormatAverage;
Style: TabCellStyle;
Color: GxColor;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем регламентный отчет
Report := mb.ItemById["REPORT_TAB"].Edit() As IPrxReport;
// Получаем таблицу
Table := (Report.ActiveSheet As IPrxTable).TabSheet;
// Получаем коллекцию условий условного форматирования
TabConds := Table.FormatConditions;
// Очищаем коллекцию условий
TabConds.Clear();
// Создаем новое условие
FormatCond := TabConds.Add();
// Задаем диапазон, для которого предназначен стиль таблицы
FormatCond.Range := Table.Regions.Item[0].Range;
// Указываем, что условие действующее
FormatCond.Enabled := True;
// Задаем тип условия: ячейки со значениями больше/меньше среднего
FormatCond.Type := TabConditionType.tctAverage;
// Настраиваем условие
Average := FormatCond.Details As ITabFormatAverage;
// Задаем условие: форматировать ячейки со значением выше среднего
Average.Type := TabFormatAverageType.tfatAbove;
// Задаем стиль оформления фона ячеек, удовлетворяющих условию
Style := New TabCellStyle.Create();
Color := New GxColorClass_2.Create();
Color.CreateRGB(98, 200, 255);
Style.BackgroundColor := Color;
Average.Style := Style;
// Сохраняем изменения
(Report As IMetabaseObject).Save();
End Sub;
См. также: