IMapVisual.DataAdapter

Синтаксис Fore

DataAdapter: Object;

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

DataAdapter: Object;

Описание

Свойство DataAdapter определяет источник данных для показателя.

Пример Fore

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента UiMap с наименованием «UiMap1», являющегося источником данных для компонента MapBox. Также в репозитории должна иметься карта с идентификатором «USA» Класс VisualDataAdapter реализует динамический источник данных. Пример выполняется при нажатии на кнопку.

Var Count: Integer;

Class VisualDataAdapter: Object, IMapDynamicDataAdapter
    
        Function Get_PartCount(Attribute: Variant; TimePoint: Integer): Integer;
        Begin
            Return Count;
        End Function Get_PartCount;
        
        Function Get_TimePointName(TimePoint: Integer): String;
        Begin
            Return "TimePoint " + TimePoint.ToString;
        End Function Get_TimePointName;
        
        Function Get_TimePointsCount: Integer;
        Begin
            Return 4;
        End Function Get_TimePointsCount;
                
        Function Get_Data(Attribute: Variant; PartvIndex: Integer; TimePoint: Integer): Variant;
        Var t: Integer;
            i: Integer;
        Begin
            t := 1;
            For i := 0 To TimePoint Do
                t := t + 10;
            End For;
            Return Math.Rand * 10 * t;
        End Function Get_Data;

        Function Get_CustomFormat: String;
        Begin
            Return "#0,000";
        End Function Get_CustomFormat;
        
End Class VisualDataAdapter;


Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Map: IMap;
    Layer: IMapLayer;
    BarVisual: IMapBarVisual;
Begin
    UiMap1.Map.Topobase := MetabaseClass.Active.ItemById("USA").Bind As IMapTopobase;
    Map := UiMap1.Map;
    Layer := Map.Layers.FindByName("Regions");
    BarVisual := Layer.Visuals.AddBarVisual;
    BarVisual.BeginUpdate;
    BarVisual.DataAdapter := New VisualDataAdapter.Create As IMapDynamicDataAdapter;
    BarVisual.AttributeName := "Id";
    BarVisual.Name := "Столбиковый0";
    BarVisual.Width.Value := 4;
    BarVisual.EndUpdate;
End Sub Button1OnClick;

После выполнения примера на слой «Regions» будет добавлен столбиковый показатель с наименованием «Столбиковый0».

Пример Fore.NET

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента UiMap с наименованием «UiMap1», являющегося источником данных для компонента MapBox. Также в репозитории должна иметься карта с идентификатором «USA» Класс VisualDataAdapter реализует динамический источник данных. Пример выполняется при нажатии на кнопку.

Class VisualDataAdapter: IMapTimeDynamicDataAdapter
            
        Public Property PartCount[Attribute: Object; TimePoint: Integer]: Integer
            Get
            Begin
                Return Count;
            End Get
            
        End Property;

        Public Property Data[Attribute: Object; PartvIndex: Integer; TimePoint: Integer]: Object
            Get
                Var Math: MathClass = New MathClass();
                    t: Integer;
                    i: Integer;
            Begin
                t := 1;
                For i := 0 To TimePoint Do
                    t := t + 10;
                End For;
                Return Math.Rand() * 10 * t;
            End Get
        End Property;

        Public Property TimePointsCount: Integer
        Get
        Begin
            Return 4;
        End Get
        End Property;
        
        Public Property TimePointName[TimePoint: Integer]: String
        Get
        Begin
            Return "TimePoint " + TimePoint.ToString();
        End Get
        End Property;
        
        Public Property CustomFormat: String
        Get
        Begin
            Return "#0,000";
        End Get
        End Property;
        
End Class;

Var Count: Integer;


Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    Map: IMap;
    Layer: IMapLayer;
    BarVisual: IMapBarVisual;
Begin
    UiMapNet1.Map.Topobase := Self.Metabase.ItemById["USA"].Bind() As DxMapTopobase;
    Map := UiMapNet1.Map;
    Layer := Map.Layers.FindByName["Regions"];
    BarVisual := Layer.Visuals.AddBarVisual();
    BarVisual.BeginUpdate();
    BarVisual.DataAdapter := New VisualDataAdapter() As IMapDynamicDataAdapter;
    BarVisual.AttributeName := "Id";
    BarVisual.Name := "Столбиковый0";
    BarVisual.Width.Value := 4;
    BarVisual.EndUpdate();
End Sub;

После выполнения примера на слой «Regions» будет добавлен столбиковый показатель с наименованием «Столбиковый0».

См. также:

IMapVisual