Font: IGxFont;
Font: Prognoz.Platform.Interop.Drawing.IGxFont;
Свойство Font определяет шрифт подписи.
Для задания цвета шрифта используйте свойство IChartAxisLevelLineLabel.FontColor.
Для выполнения примера в репозитории предполагается наличие регламентного отчета с идентификатором «REG_REPORT_LABEL». Отчет содержит только диаграмму.
Добавьте ссылки на системные сборки: Chart, Drawing, Metabase, Report, Tab.
Sub UserProc;
Var
MB: IMetabase;
Report: IPrxReport;
Tab: ITabSheet;
Chart: IChart;
LevelLs: IChartAxisLevelLines;
LevelLine: IChartAxisLevelLine;
LineLabel: IChartAxisLevelLineLabel;
Pen: IGxPen;
Begin
// Получаем доступ к репозиторию
MB := MetabaseClass.Active;
// Получаем доступ к регламентному отчету
Report := MB.ItemById("REG_REPORT_LABEL").Edit As IPrxReport;
// Получаем таблицу регламентного отчета
Tab := (Report.Sheets.Item(0) As IPrxTable).TabSheet;
// Получаем диаграмму
Chart := Tab.Objects.Item(0).Extension As IChart;
// Добавляем линию уровня
Pen := New GxPen.CreateSolid(GxColor.FromKnownColor(GxKnownColor.Red), 0.40);
LevelLs := Chart.AxisY.LevelLines;
LevelLs.Add(0, Pen);
LevelLine := LevelLs.Item(0);
// Задаем функцию, по которой строится линия уровня
LevelLine.ValueFunction := ChartAxisLevelLineFunctionType.Median;
// Выводим значение функции в окно консоли
Debug.WriteLine(LevelLine.CalculatedValue);
// Добавляем подпись линии уровня
LineLabel := LevelLine.Label;
// Определяем видимость подписи линии уровня
LineLabel.Visible := True;
//Задаем новые параметры подписи линии уровня
LineLabel.Font := New GxFont.Create("Arial", 14, GxFontStyle.BoldItalic, GxUnit.Point);
LineLabel.FontColor := New GxColor.CreateRGB(255, 0, 0);
LineLabel.MaskText := "Тип функции - %Computation; " + "Значение - %Value";
// Сохраняем изменения в отчете
(Report As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера в регламентном отчете будет добавлена линии уровня. Для линии будут заданы цвет и толщина, для подписи - видимость, шрифт, цвет и маска. В окно консоли будет выведено значение функции.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Chart;
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;
Tab: ITabSheet;
Chart: IChart;
LevelLs: IChartAxisLevelLines;
LevelLine: IChartAxisLevelLine;
LineLabel: IChartAxisLevelLineLabel;
Pen: GxPen = New GxPenClass();
GxColorCls: GxColorClass = New GxColorClassClass();
Font: GxFont = New GxFontClass();
Color: GxColor;
Begin
// Получаем доступ к репозиторию
MB := Params.Metabase;
// Получаем доступ к регламентному отчету
Report := MB.ItemById["REG_REPORT_LABEL"].Edit() As IPrxReport;
// Получаем таблицу регламентного отчета
Tab := (Report.Sheets.Item[0] As IPrxTable).TabSheet;
// Получаем диаграмму
Chart := Tab.Objects.Item[0].Extension As IChart;
// Добавляем линию уровня
Pen.CreateSolid(GxColorCls.FromName("Red"), 0.40);
LevelLs := Chart.AxisY.LevelLines;
LevelLs.Add(0, Pen);
LevelLine := LevelLs.Item(0);
// Задаем функцию, по которой строится линия уровня
LevelLine.ValueFunction := ChartAxisLevelLineFunctionType.callftMedian;
// Выводим значение функции в окно консоли
System.Diagnostics.Debug.WriteLine(LevelLine.CalculatedValue);
// Добавляем подпись линии уровня
LineLabel := LevelLine.Label;
// Определяем видимость подписи линии уровня
LineLabel.Visible := True;
//Задаем новые параметры подписи линии уровня
Font := LineLabel.Font;
Font.Create("Arial", 12, GxFontStyle.gfsBold, GxUnit.guPoint);
Color := LineLabel.FontColor;
Color.CreateRGB(250, 0, 0);
LineLabel.MaskText := "Тип функции - %Computation; " + "Значение - %Value";
// Сохраняем изменения в отчете
(Report As IMetabaseObject).Save();
End Sub;
См. также: