IDimInstance.NewElement

Синтаксис

NewElement: IDimElement;

Описание

Метод NewElement создает объект для работы с элементом измерения.

Пример

В рассматриваемом примере на форме располагаются компоненты: UiDimension, EditBox, DimensionCombo, Button. Для кнопки описано событие OnClick, для формы OnShow.

Class UserForm: Form

EditBox1: EditBox;

uidimCountries: UiDimension;

dcCountries: DimensionCombo;

Label1: Label;

Button1: Button;

Mb: IMetabase;

Cat: IRubricator;

Inst: IRubricatorInstance;

pAttrs : IMetaAttributes;

 

Sub UserFormOnShow(Sender: Object; Args: IEventArgs);

Begin

Mb := MetabaseClass.Active;

Cat := Mb.ItemById(EditBox1.Text).Bind As IRubricator; // EditBox1.Text содержит идентификатор базы данных временных рядов

Inst := (Cat As IMetabaseObject).Open(Null) As IRubricatorInstance;

pAttrs := Inst.Facts.Dictionary.Attributes;

uidimCountries.Object := pAttrs.FindById("COUNTRY").ValuesObject;

End Sub UserFormOnShow;

 

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);

Var

DManager: IDimOrmManager;

DimModel: IDimensionModel;

DimInst : IDimInstance;

DClass : IDimOrmClass;

DCond : IDimOrmCondition;

Cond : IOrmCondition;

factory : IDimSelectionSetFactory;

selections : IDimSelectionSet;

selection : IDimSelection;

Element : IDimElement;

i: Integer;

Begin

DimModel := dcCountries.Dimension.Dimension;

DimInst := dcCountries.Dimension.DimInstance;

DManager := New DimOrmManager.Create;

DClass := DManager.CreateClass(DimModel);

DCond := DClass.CreateCondition;

Cond := DCond.Conditions.Add;

Cond.AttributeName := "Grouped";

Cond.Operator_ := OrmComparisonOperator.IsNotNull;

factory := New DimSelectionSetFactory.Create;

selections := factory.CreateDimSelectionSet;

selection := selections.Add(DimInst);

Element := DimInst.NewElement;

For i := 0 To DimInst.Elements.Count-1 Do

Element.Element := i;

If DCond.Evaluate(Element) Then

selection.SelectElement(Element.Element,False);

End If;

End For;

selection.CopyTo(dcCountries.Selection, True);

End Sub Button1OnClick;

End Class UserForm;

После запуска формы необходимо произвести отметку в раскрывающемся списке измерения, затем нажать на кнопку, после чего отметка в списке будет изменена: будут выделены только те элементы, у которых по атрибуту Grouped будет найдено непустое значение.

См. также:

IDimInstance