Update;
Update();
Метод Update обновляет легенду визуализатора.
Данный метод осуществляет выход из режима редактирования визуализатора без сохранения данных.
Для выполнения примера в репозитории необходимо наличие формы, содержащей компоненты:
ReportBox с идентификатором «ReportBox1»;
UiReport с идентификатором «UiReport1», который является источником данных для «ReportBox1».
Необходимо наличие регламентного отчета, который содержит таблицу. Одно из измерений таблицы имеет тип метрики «Цвет фона». Регламентный отчет является источником данных для «UiReport1».
Добавьте ссылки на системные сборки: Drawing, Express, Tab, Visualizators.
Sub UserProc;
Var
Report: IPrxReport;
TS: ITabSheet;
Grid: IEaxGrid;
Pos: IGxRectF;
Visualizer: IPrxVisualizerLegend;
i: Integer;
VZLegend: IVZIntervalsLegend;
VZLegendBase: IVZLegendBase;
Begin
// Получим регламентный отчет
Report := UiReport1.Report;
// Получим активный лист отчета
TS := (Report.ActiveSheet As IPrxTable) As ITabSheet;
// Вставим в отчет легенду таблицы
Pos := New GxRectF.Create(0, 0, 0, 0);
Pos.Left := TS.View.Selection.Range.Location.X;
Pos.Top := TS.View.Selection.Range.Location.Y;
Pos.Width := TS.View.Selection.Range.Width;
Pos.Height := TS.View.Selection.Range.Height;
TS.Objects.Add("PrxVisualizerLegend", Pos);
Visualizer := TS.Objects.Item(TS.Objects.Count - 1).Extension As IPrxVisualizerLegend;
Grid := Report.DataArea.Views.Item(0) As IEaxGrid;
i := Grid.Legends.Add(Grid.IndicatorLegendAssignment(EaxGridIndicatorType.BackgroundColor));
Visualizer.SetEaxObjectLegend(Grid, EaxGridIndicatorType.BackgroundColor);
// Получим легенду таблицы, имеющую интервалы
VZLegend := Visualizer.PlacedControl As IVZIntervalsLegend;
VZLegendBase := VZLegend As IVZLegendBase;
// Скопируем верхний
колонтитул в нижний колонтитул
VZLegendBase.Footer := VZLegendBase.Header;
// Обновим визуализатор
Visualizer.Update;
End Sub UserProc;
После выполнения примера в выбранном пользователем диапазоне ячеек таблицы будет создана легенда таблицы с верхним и нижним колонтитулом.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Imports Prognoz.Platform.Interop.Visualizators;
…
Private Sub UserProc();
Var
Report: IPrxReport;
TS: ITabSheet;
Grid: IEaxGrid;
Pos: GxRectF = New GxRectFClass();
Visualizer: IPrxVisualizerLegend;
i: Integer;
VZLegend: IVZIntervalsLegend;
VZLegendBase: IVZLegendBase;
Begin
// Получим регламентный отчет
Report := UiReportNet1.ReportUi.Report;
// Получим активный лист отчета
TS := (Report.ActiveSheet As IPrxTable) As ITabSheet;
// Вставим в отчет легенду таблицы
Pos.Create(0, 0, 0, 0);
Pos.Left := TS.View.Selection.Range.Location.X;
Pos.Top := TS.View.Selection.Range.Location.Y;
Pos.Width := TS.View.Selection.Range.Width;
Pos.Height := TS.View.Selection.Range.Height;
TS.Objects.Add("PrxVisualizerLegend", Pos);
Visualizer := TS.Objects.Item[TS.Objects.Count - 1].Extension As IPrxVisualizerLegend;
Grid := Report.DataArea.Views.Item[0] As IEaxGrid;
i := Grid.Legends.Add(Grid.IndicatorLegendAssignment[EaxGridIndicatorType.egitBackgroundColor As Integer]);
Visualizer.SetEaxObjectLegend(Grid, EaxGridIndicatorType.egitBackgroundColor As Integer);
// Получим легенду таблицы, имеющую интервалы
VZLegend := Visualizer.PlacedControl As IVZIntervalsLegend;
VZLegendBase := VZLegend As IVZLegendBase;
// Скопируем верхний
колонтитул в нижний колонтитул
VZLegendBase.Footer := VZLegendBase.Header;
// Обновим визуализатор
Visualizer.Update();
End Sub UserProc;
См. также: