MaxValue: Double;
MaxValue: double;
Свойство MaxValue определяет верхнюю границу интервала, к которому приводятся данные.
Для определения нижней границы интервала используйте свойство IVZDataNormalizeAdapter.MinValue.
Для выполнения примера в репозитории предполагается наличие экспресс-отчета с идентификатором «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.
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;
См. также: