IOrmRecord.AttributeValue

Синтаксис Fore

AttributeValue(AttributeIndex: Integer): Variant;

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

AttributeValue[AttributeIndex: integer]: object;

Параметры

AttributeIndex. Индекс атрибута.

Описание

Свойство AttributeValue возвращает значение атрибута по его индексу.

Комментарии

Для получения индекса атрибута по его идентификатору используйте метод IOrmRecord.FindAttribute.

Пример Fore

Для выполнения примера предполагается наличие формы, содержащей компонент MetaAttributesBreadcrumb и компонент MetaAttributesTreeList с идентификатором «MetaAttributesTreeList1». Компоненты настроены на совместную работу с какой-либо БД временных рядов.

Добавьте ссылку на системные сборки «Cubes», «Metabase», «Orm», «Rds».

Sub RecordProc;
Var
    Facts: IMetaDictionary;
    Atts: IMetaAttributes;
    SelNodes: Array;
    MembersSet: IMetaMembersSet;
    Member: IMetaMember;
    Rec: IOrmRecord;
    i, AtrIndex: Integer;
    Att: IMetaAttribute;
Begin
    // Получаем справочник временных рядов
    Facts := MetaAttributesTreeList1.Rubricator.Facts;
    // Получаем атрибуты временных рядов
    Atts := Facts.Attributes;
    // Получаем элементы, выделенные в дереве рядов
    SelNodes := MetaAttributesTreeList1.GetSelectedNodes;
    MembersSet := MetaAttributesTreeList1.GetNodesMembers(SelNodes);
    MembersSet.Reset;
    // Выводим информацию об элементах в окно консоли
    While Not MembersSet.Eof Do
        Member := MembersSet.Current;
        Debug.WriteLine("Элемент: " + Member.Name);
        Rec := Member.Tuple;
        Debug.WriteLine("Значения атрибутов элемента:");
        For i := 0 To Atts.Count - 1 Do
            Att := Atts.Item(i);
            AtrIndex := Rec.FindAttribute(Att.Id);
            If AtrIndex <> -1 Then
                Debug.Indent;
                Debug.Write(" атрибут: '" + Att.Name + "'; значение: ");
                Debug.Unindent;
                Debug.WriteLine(Rec.AttributeValue(AtrIndex));
            End If;
        End For;
        Debug.WriteLine("");
        MembersSet.Next;
    End While;
End Sub RecordProc;

Результат выполнения примера: в окно консоли будет выведена информация об элементах, выделенных в компоненте «MetaAttributesTreeList1».

Пример Fore.NET

Для выполнения примера предполагается наличие формы .NET, содержащей компонент MetaAttributesBreadcrumbNet и компонент MetaAttributesTreeListNet с идентификатором «metaAttributesTreeListNet1». Компоненты настроены на совместную работу с какой-либо БД временных рядов.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Orm;
Imports Prognoz.Platform.Interop.Rds;

Sub RecordProc();
Var
    Facts: IMetaDictionary;
    Atts: IMetaAttributes;
    SelNodes: Array;
    MembersSet: IMetaMembersSet;
    Member: IMetaMember;
    Rec: IOrmRecord;
    i, AtrIndex: Integer;
    Att: IMetaAttribute;
Begin
    // Получаем справочник временных рядов
    Facts := metaAttributesTreeListNet1.Rubricator.Facts;
    // Получаем атрибуты временных рядов
    Atts := Facts.Attributes;
    // Получаем элементы, выделенные в дереве рядов
    SelNodes := metaAttributesTreeListNet1.CtrlBox.GetSelectedNodes();
    MembersSet := metaAttributesTreeListNet1.CtrlBox.GetNodesMembers(SelNodes);
    MembersSet.Reset();
    // Выводим информацию об элементах в окно консоли
    While Not MembersSet.Eof() Do
        Member := MembersSet.Current();
        System.Diagnostics.Debug.WriteLine("Элемент: " + Member.Name);
        Rec := Member.Tuple;
        System.Diagnostics.Debug.WriteLine("Значения атрибутов элемента:");
        For i := 0 To Atts.Count - 1 Do
            Att := Atts.Item[i];
            AtrIndex := Rec.FindAttribute(Att.Id);
            If AtrIndex <> -1 Then
                System.Diagnostics.Debug.Indent();
                System.Diagnostics.Debug.Write(" атрибут: '" + Att.Name + "'; значение: ");
                System.Diagnostics.Debug.Unindent();
                System.Diagnostics.Debug.WriteLine(Rec.AttributeValue[AtrIndex]);
            End If;
        End For;
        System.Diagnostics.Debug.WriteLine("");
        MembersSet.Next();
    End While;
End Sub RecordProc;

Результат выполнения примера: в окно консоли будет выведена информация об элементах, выделенных в компоненте «metaAttributesTreeListNet1».

См. также:

IOrmRecord