MaxValue: Double;
MaxValue: double;
The MaxValue property determines the upper border of the interval, to which the data is cast
To determine lower border of interval, use the IVZDataNormalizeAdapter.MinValue property.
Executing the example requires that the repository contains an express report with the EXPRESS_IVZ identifier containing a bubble chart.
Add links to the Express, Metabase, Visualizators system assemblies.
Sub UserProc;
Var
Metabase: IMetabase;
EaxAnalyzer: IEaxAnalyzer;
DataSourceMapping: IVZDataSourceMapping;
SizeVisual: IVZNumericVisual;
DataSource: IVZMultiplyDataSource;
DataTransformer: IVZDataNormalizeAdapter;
i, j: Integer;
val: Variant;
Begin
// Get repository
Metabase := MetabaseClass.Active;
// Get express report
EaxAnalyzer := Metabase.ItemById("EXPRESS_IVZ").Edit As IEaxAnalyzer;
// Activate bubble chart and refresh it
EaxAnalyzer.BubbleChart.Enabled := True;
EaxAnalyzer.BubbleChart.Visible := True;
EaxAnalyzer.BubbleChart.Refresh;
// Get X axis visualizer
SizeVisual := EaxAnalyzer.BubbleChart.BubbleChart.XVisual;
// Get settings for data mapping
DataSourceMapping := SizeVisual.NumericMapping;
// Set mapping type "Data Transformer"
DataSourceMapping.MappingType := VisualizatorDataMappingType.DataMappingTransformer;
// Set title for data source corresponding to identifier
DataSource := DataSourceMapping.DataSource;
// Create data transformer
DataTransformer := New VZDataNormalizeAdapter.Create;
// Get upper legend of interval
DataTransformer.MaxValue := 100;
// Set the minimum value, which is output if data source values are less than it
DataTransformer.MinCutValue := 10;
// Set lower border of interval
DataTransformer.MinValue := 0;
// Set the value if the source contains empty values
DataTransformer.NoDataValue := "No data";
// Load data from source
DataTransformer.InitializeFromDataSourceEx(DataSource, DataSourceMapping.AttributeId, 1);
// Set logarithmic mode of data normalization
DataTransformer.NormalizeMode := VisualizatorDataAdapterMode.Linear;
// Set this transformer
DataSourceMapping.DataTransformer := DataTransformer;
// Transform data from the source and output to the console window
Debug.WriteLine("Data transformation:");
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("Input: " + ((val.IsNull)? "Null" :(val As String))
+ ", output: " + (DataTransformer.GetData(val)) As String);
End For;
End For;
End Sub UserProc;
After executing the example the console window displays the values from the specified data source cast to interval borders
The requirements and result of the Fore.NET example execution match with those in the Fore example.
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
// Get repository
Metabase := Params.Metabase;
// Get express report
EaxAnalyzer := Metabase.ItemById["EXPRESS_IVZ"].Edit() As IEaxAnalyzer;
// Activate bubble chart and refresh it
EaxAnalyzer.BubbleChart.Enabled := True;
EaxAnalyzer.BubbleChart.Visible := True;
EaxAnalyzer.BubbleChart.Refresh();
// Get X axis visualizer
SizeVisual := EaxAnalyzer.BubbleChart.BubbleChart.XVisual;
// Get settings for data mapping
DataSourceMapping := SizeVisual.NumericMapping;
// Set mapping type "Data Transformer"
DataSourceMapping.MappingType := VisualizatorDataMappingType.vdmtDataMappingTransformer;
// Set title for data source corresponding to identifier
DataSource := DataSourceMapping.DataSource;
// Get upper legend of interval
DataTransformer.MaxValue := 100;
// Set the minimum value, which is output if data source values are less than it
DataTransformer.MinCutValue := 10;
// Set lower border of interval
DataTransformer.MinValue := 0;
// Set the value if the source contains empty values
DataTransformer.NoDataValue := "No data";
// Load data from source
DataTransformer.InitializeFromDataSourceEx(DataSource, DataSourceMapping.AttributeId, 1);
// Set logarithmic mode of data normalization
DataTransformer.NormalizeMode := VisualizatorDataAdapterMode.vdamLinear;
// Set this transformer
DataSourceMapping.DataTransformer := DataTransformer;
// Transform data from the source and output to the console window
System.Diagnostics.Debug.WriteLine("Data transformation:");
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("Input: " + ((val = Null)? "Null" :(val.ToString()))
+ ", output: " + (DataTransformer.GetData(val)) As String);
End For;
End For;
End Sub;
See also: