AttributeValue(AttributeIndex: Integer): Variant;
AttributeValue[AttributeIndex: integer]: object;
AttributeIndex. Индекс атрибута.
Свойство AttributeValue возвращает значение атрибута по его индексу.
Для получения индекса атрибута по его идентификатору используйте метод IOrmRecord.FindAttribute.
Для выполнения примера предполагается наличие формы, содержащей компонент 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».
Для выполнения примера предполагается наличие формы .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».
См. также: