IVZDataNormalizeAdapter.NormalizeMode

Синтаксис Fore

NormalizeMode: VisualizatorDataAdapterMode;

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

NormalizeMode: Prognoz.Platform.Interop.Visualizators.VisualizatorDataAdapterMode;

Описание

Свойство NormalizeMode определяет режим нормализации данных.

Пример Fore

Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». В отчете для пузырькового дерева должна быть выбрана метрика «Размер». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Express, Metabase и Visualizators. Указанная процедура должна вызываться из точки входа Main.

Выполним логарифмическое преобразование чисел -0.05, 0, 0.05, 5 и 1000:

Sub UserProc;
Var
    Metabase: IMetabase; // Метабаза
    EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
    DataSourceMapping: IVZDataSourceMapping; // Настройки сопоставления данных
    SizeVisual: IVZNumericVisual; // Визуализатор размера пузырьков дерева  
    DataSource: IVZMultiplyDataSource; // Источник данных
    DataTransformer: IVZDataNormalizeAdapter; // Преобразователь данных 
Begin
    // Получим объект метабазы
    Metabase := MetabaseClass.Active;
    // Получим объект экспресс-отчёта
    EaxAnalyzer := Metabase.ItemById("EXP").Edit As IEaxAnalyzer;
    // Получим визуализатор текста
    SizeVisual := EaxAnalyzer.BubbleTree.BubbleTree.SizeVisual;
    // Получим настройки сопоставления данных
    DataSourceMapping := SizeVisual.NumericMapping;
    // Установим тип сопоставления "Преобразователь данных"
    DataSourceMapping.MappingType := VisualizatorDataMappingType.DataMappingTransformer;
    // Установим заголовок для источника данных, соответствующий идентификатору
    DataSource := DataSourceMapping.DataSource; 
    // Создадим преобразователь данных
    DataTransformer := New VZDataNormalizeAdapter.Create;
    // Загрузим данные из источника
    DataTransformer.InitializeFromDataSource(DataSource);   
    // Установим логарифмический режим нормализации данных
    DataTransformer.NormalizeMode := VisualizatorDataAdapterMode.Logarithm;
    // Установим данный преобразователь
    DataSourceMapping.DataTransformer := DataTransformer As IVZDataAdapter;
    Debug.WriteLine("Преобразование данных:");
    Debug.IndentLevel := 1;
    Debug.WriteLine("Вход: -0.05, выход: " + 
        ((DataTransformer.GetData(-0.05)) As Double).ToString);
    Debug.WriteLine("Вход: 0, выход: " + 
        ((DataTransformer.GetData(0)) As Double).ToString);     
    Debug.WriteLine("Вход: 0.05, выход: " + 
            ((DataTransformer.GetData(0.05)) As Double).ToString);      
    Debug.WriteLine("Вход: 5, выход: " + 
            ((DataTransformer.GetData(5)) As Double).ToString);                         
    Debug.WriteLine("Вход: 1000, выход: " + 
            ((DataTransformer.GetData(1000)) As Double).ToString);
End Sub UserProc;

В результате выполнения примера было выполнено логарифмическое преобразование чисел -0.05, 0, 0.05, 5 и 1000. Результаты данного преобразования были выведены в консоли среды разработки:

Преобразование данных:

    Вход: -0.05, выход: -1.#IND

    Вход: 0, выход: 0.2

    Вход: 0.05, выход: 0.2

    Вход: 5, выход: 1.6094379124341

    Вход: 1000, выход: 6.90775527898214

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Express, Metabase и Visualizators из системной сборки Prognoz.Platform.Interop.

Выполним логарифмическое преобразование чисел -0.05, 0, 0.05, 5 и 1000:

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase; // Метабаза
    EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
    BubbleTree: IVZBubbleTree; // Пузырьковое дерево
    DataSourceMapping: IVZDataSourceMapping; // Настройки сопоставления данных
    SizeVisual: IVZNumericVisual; // Визуализатор размера пузырьков дерева  
    DataSource: IVZMultiplyDataSource; // Источник данных
    DataTransformer: IVZDataNormalizeAdapter; // Преобразователь данных 
Begin
    // Получим объект метабазы
    Metabase := Params.Metabase;
    // Получим объект экспресс-отчёта
    EaxAnalyzer := Metabase.ItemById["EXP"].Edit() As IEaxAnalyzer;
    // Получим визуализатор текста
    SizeVisual := EaxAnalyzer.BubbleTree.BubbleTree.SizeVisual;
    // Получим настройки сопоставления данных
    DataSourceMapping := SizeVisual.NumericMapping;
    // Установим тип сопоставления "Преобразователь данных"
    DataSourceMapping.MappingType := VisualizatorDataMappingType.vdmtDataMappingTransformer;
    // Установим заголовок для источника данных, соответствующий идентификатору
    DataSource := DataSourceMapping.DataSource; 
    // Создадим преобразователь данных
    DataTransformer := New VZDataNormalizeAdapter();
    // Загрузим данные из источника
    DataTransformer.InitializeFromDataSource(DataSource As VZMultiplyDataSource);   
    // Установим логарифмический режим нормализации данных
    DataTransformer.NormalizeMode := VisualizatorDataAdapterMode.vdamLogarithm;
    System.Diagnostics.Debug.WriteLine("Преобразование данных:");
    System.Diagnostics.Debug.IndentLevel := 1;
    System.Diagnostics.Debug.WriteLine("Вход: -0.05, выход: " + 
        ((DataTransformer.GetData(-0.05)) As Double).ToString());
    System.Diagnostics.Debug.WriteLine("Вход: 0, выход: " + 
        ((DataTransformer.GetData(0)) As Double).ToString());       
    System.Diagnostics.Debug.WriteLine("Вход: 0.05, выход: " + 
            ((DataTransformer.GetData(0.05)) As Double).ToString());        
    System.Diagnostics.Debug.WriteLine("Вход: 5, выход: " + 
            ((DataTransformer.GetData(5)) As Double).ToString());                           
    System.Diagnostics.Debug.WriteLine("Вход: 1000, выход: " + 
            ((DataTransformer.GetData(1000)) As Double).ToString());
End Sub;

Результат выполнения примера аналогичен результату, полученному после выполнения примера для языка Fore.

См. также:

IVZDataNormalizeAdapter