IPrxControl.Value

Синтаксис Fore

Value: Variant;

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

Value: Object;

Описание

Свойство Value определяет значение, установленное в элементе управления.

Комментарии

Значение, определяемое в свойстве Value, зависит от типа используемого элемента управления:

DimCombo

При использовании элемента управления DimCombo, в зависимости от наличия привязки для управления измерением, доступны различные значения свойства Value:

Атрибут задаётся в параметре ATTRIBUTEVALUE в строке связи. Если параметр ATTRIBUTEVALUE отсутствует, то используется атрибут с назначением «Идентификатор». При формировании строки связи определить значение параметра ATTRIBUTEVALUE можно с помощью свойства ValueAttribute.

Для сброса значения элемента управления задайте свойству Value значение Null.

Пример Fore

Sub GetControlValue(Control: IPrxControl);
Var
    Arr: Array;
    i: Integer;
    BM: IBindingManager;
    Binding: IBindingValue;
Begin
    //Если в элементе управления задано значение, то получим и выведем его в консоль
    If Control.Value.VarType <> ForeVariantType.NullValue Then
        Debug.Write("Значение(я) элемента управления: ");
        //Если массив, то просматриваем значения всех элементов массива
        If Control.Value.VarType = ForeVariantType.Matrix Then
            Arr := Control.Value As Array;
            For i := 0 To Arr.Length - 1 Do
                Debug.Write(Arr[i] + " ");
            End For;
            Debug.WriteLine("");
        //Если объект, то приводим к IDimSelection и получаем количество отмеченных
        Elseif Control.Value.VarType = ForeVariantType.Object Then
            Debug.WriteLine("Отметка IDimSelection. Выделено: " + (Control.Value As IDimSelection).SelectedCount.ToString);
        //Если не массив и не объект, то просто выводим значение
        Else
            Debug.WriteLine(Control.Value);
        End If;
        //Атрибут, управляющий значением
        BM := New BindingManager.Create;
        Binding := BM.CreateByValue(Control.Binding);
        Debug.WriteLine("Атрибут, управляющий значением: "
            + (Binding As IBindingDimCombo).ValueAttribute);
    End If;
End Sub GetControlValue;

Указанная функция может использоваться для получения значения элемента управления, в основе которого лежит редактор DimCombo. Полученные значения выводятся в консоль среды разработки, а также в консоль выводится идентификатор атрибута справочника, значения которого формируют значение элемента управления.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Report;

Sub GetControlValue(Control: IPrxControl);
Var
    Arr: Array;
    i: Integer;
    BM: IBindingManager = New BindingManagerClass();
    Binding: IBindingValue;
Begin
    //Если в элементе управления задано значение, то получим и выведем его в консоль
    If Control.Value <> Null Then
        System.Diagnostics.Debug.Write("Значение(я) элемента управления: ");
        //Если массив, то просматриваем значения всех элементов массива
        If Control.Value Is Array Then
            Arr := Control.Value As Array;
            For i := 0 To Arr.Length - 1 Do
                System.Diagnostics.Debug.Write(Arr[i] + " ");
            End For;
            System.Diagnostics.Debug.WriteLine("");
        //Если объект, то приводим к IDimSelection и получаем количество отмеченных
        Elseif Control.Value Is IDimSelection Then
            System.Diagnostics.Debug.WriteLine("Отметка IDimSelection. Выделено: " + (Control.Value As IDimSelection).SelectedCount.ToString());
        //Если не массив и не объект, то просто выводим значение
        Else
            System.Diagnostics.Debug.WriteLine(Control.Value);
        End If;
        //Атрибут, управляющий значением
        Binding := BM.CreateByValue(Control.Binding);
        System.Diagnostics.Debug.WriteLine("Атрибут, управляющий значением: "
            + (Binding As IBindingDimCombo).ValueAttribute);
    End If;
End Sub;

См. также:

IPrxControl