IVZDataNormalizeAdapter.MaxValue

Синтаксис Fore

MaxValue: Double;

Синтаксис Fore.NET

MaxValue: double;

Описание

Свойство MaxValue определяет верхнюю границу интервала, к которому приводятся данные.

Комментарии

Для определения нижней границы интервала используйте свойство IVZDataNormalizeAdapter.MinValue.

Пример Fore

Для выполнения примера в репозитории предполагается наличие экспресс-отчета с идентификатором «EXPRESS_IVZ», содержащего пузырьковую диаграмму.

Добавьте ссылки на системные сборки: Express, Metabase, Visualizators.

Sub UserProc;
Var
    Metabase: IMetabase;
    EaxAnalyzer: IEaxAnalyzer;
    DataSourceMapping: IVZDataSourceMapping;
    SizeVisual: IVZNumericVisual;
    DataSource: IVZMultiplyDataSource;
    DataTransformer: IVZDataNormalizeAdapter;
    i, j: Integer;
    val: Variant;
Begin
    // Получим репозиторий
    Metabase := MetabaseClass.Active;
    // Получим экспресс-отчёт
    EaxAnalyzer := Metabase.ItemById("EXPRESS_IVZ").Edit As IEaxAnalyzer;
    // Активируем пузырьковую диаграмму и обновим ее
    EaxAnalyzer.BubbleChart.Enabled := True;
    EaxAnalyzer.BubbleChart.Visible := True;
    EaxAnalyzer.BubbleChart.Refresh;
    // Получим визуализатор оси X
    SizeVisual := EaxAnalyzer.BubbleChart.BubbleChart.XVisual;
    // Получим настройки сопоставления данных
    DataSourceMapping := SizeVisual.NumericMapping;
    // Установим тип сопоставления "Преобразователь данных"
    DataSourceMapping.MappingType := VisualizatorDataMappingType.DataMappingTransformer;
    // Установим заголовок для источника данных, соответствующий идентификатору
    DataSource := DataSourceMapping.DataSource;
    // Создадим преобразователь данных
    DataTransformer := New VZDataNormalizeAdapter.Create;
    // Зададим верхнюю границу интервала
    DataTransformer.MaxValue := 100;
    // Зададим минимальное значение, которое выводится, если значения из источника данных меньше его
    DataTransformer.MinCutValue := 10;
    // Зададим нижнюю границу интервала
    DataTransformer.MinValue := 0;
    // Зададим значение, если в источнике есть пустые значения
    DataTransformer.NoDataValue := "Нет данных";
    // Загрузим данные из источника
    DataTransformer.InitializeFromDataSourceEx(DataSource, DataSourceMapping.AttributeId, 1);
    // Установим логарифмический режим нормализации данных
    DataTransformer.NormalizeMode := VisualizatorDataAdapterMode.Linear;
    // Установим данный преобразователь
    DataSourceMapping.DataTransformer := DataTransformer;
    // Преобразуем данные из источника и выведем их в окно консоли
    Debug.WriteLine("Преобразование данных:");
    For i := 0 To DataSource.GetObjects.Count - 1 Do
        For j := 0 To EaxAnalyzer.BubbleChart.BubbleChart.TimeLine.StepsNames.Count - 1 Do
            val := DataSource.GetDataEx(DataSource.GetObjects.Item(i), DataSourceMapping.AttributeId, j);
            Debug.WriteLine("Вход: " + ((val.IsNull)? "Null" :(val As String))
                + ", выход: " + (DataTransformer.GetData(val)) As String);
        End For;
    End For;
End Sub UserProc;

После выполнения примера в окно консоли выведутся приведенные к границам интервала значения из заданного источника данных.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Visualizators;

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase;
    EaxAnalyzer: IEaxAnalyzer;
    DataSourceMapping: IVZDataSourceMapping;
    SizeVisual: IVZNumericVisual;
    DataSource: IVZMultiplyDataSource;
    DataTransformer: VZDataNormalizeAdapterClass = New VZDataNormalizeAdapterClass();
    i, j: Integer;
    val: object;
Begin
    // Получим репозиторий
    Metabase := Params.Metabase;
    // Получим экспресс-отчёт
    EaxAnalyzer := Metabase.ItemById["EXPRESS_IVZ"].Edit() As IEaxAnalyzer;
    // Активируем пузырьковую диаграмму и обновим ее
    EaxAnalyzer.BubbleChart.Enabled := True;
    EaxAnalyzer.BubbleChart.Visible := True;
    EaxAnalyzer.BubbleChart.Refresh();
    // Получим визуализатор оси X
    SizeVisual := EaxAnalyzer.BubbleChart.BubbleChart.XVisual;
    // Получим настройки сопоставления данных
    DataSourceMapping := SizeVisual.NumericMapping;
    // Установим тип сопоставления "Преобразователь данных"
    DataSourceMapping.MappingType := VisualizatorDataMappingType.vdmtDataMappingTransformer;
    // Установим заголовок для источника данных, соответствующий идентификатору
    DataSource := DataSourceMapping.DataSource;
    // Зададим верхнюю границу интервала
    DataTransformer.MaxValue := 100;
    // Зададим минимальное значение, которое выводится, если значения из источника данных меньше его
    DataTransformer.MinCutValue := 10;
    // Зададим нижнюю границу интервала
    DataTransformer.MinValue := 0;
    // Зададим значение, если в источнике есть пустые значения
    DataTransformer.NoDataValue := "Нет данных";
    // Загрузим данные из источника
    DataTransformer.InitializeFromDataSourceEx(DataSource, DataSourceMapping.AttributeId, 1);
    // Установим логарифмический режим нормализации данных
    DataTransformer.NormalizeMode := VisualizatorDataAdapterMode.vdamLinear;
    // Установим данный преобразователь
    DataSourceMapping.DataTransformer := DataTransformer;
    // Преобразуем данные из источника и выведем их в окно консоли
    System.Diagnostics.Debug.WriteLine("Преобразование данных:");
    For i := 0 To DataSource.GetObjects().Count - 1 Do
        For j := 0 To EaxAnalyzer.BubbleChart.BubbleChart.TimeLine.StepsNames.Count - 1 Do
            val := DataSource.GetDataEx(DataSource.GetObjects().Item[i], DataSourceMapping.AttributeId, j);
            System.Diagnostics.Debug.WriteLine("Вход: " + ((val = Null)? "Null" :(val.ToString()))
                + ", выход: " + (DataTransformer.GetData(val)) As String);
        End For;
    End For;
End Sub;

См. также:

IVZDataNormalizeAdapter