IRubricatorSegment.AsObject

Синтаксис

AsObject: IMetabaseObjectDescriptor;

Описание

Метод AsObject возвращает временный объект для редактирования дескриптора безопасности.

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «OBJ_RUBRICATOR», в которой должен присутствовать атрибут показателя с идентификатором «COUNTRY», являющийся ссылкой на справочник.

Sub Main;

Var

mb: IMetabase;

rubInst: IRubricatorInstance;

Rub: IRubricator;

Segs: IRubricatorSegments;

Seg: IRubricatorSegment;

Sd: ISecurityDescriptor;

mbSec: IMetabaseSecurity;

User: IMetabaseUser;

Attr: IMetaAttribute;

Dict: IMetabaseObject;

DI: IDimInstance;

Sel: IDimSelection;

segmFact: IRubricatorFactorsSegment;

segmObject: IMetabaseObjectDescriptor;

Begin

mb := MetabaseClass.Active;

Rub := mb.ItemById("OBJ_RUBRICATOR").Bind As IRubricator;

rubInst := (Rub As IMetabaseObjectDescriptor).Open(Null) As IRubricatorInstance;

Segs := rubInst.Segments;

Seg := Segs.CreateFactorsSegment As IRubricatorSegment;

segmObject := Seg.AsObject;

Sd := segmObject.SecurityDescriptor;

Sd.Edit;

mbSec := MB.Security;

User := mbSec.ResolveName("ADMIN") As IMetabaseUser;

Debug.WriteLine(sd.GetEffectiveRights(User));

Seg.AttributeName := "COUNTRY";

Attr := Rub.Facts.Attributes.FindById("COUNTRY");

Seg.Attribute := Attr;

Dict := Attr.ValuesObject.Bind;

DI := Dict.Open(Null) As IDimInstance;

Sel := DI.CreateSelection;

Sel.SelectElement(0, False);

Sel.SelectElement(1, False);

segmFact := Seg As IRubricatorFactorsSegment;

segmFact.SetSelection(Sel);

Seg.Save;

End Sub Main;

После выполнения примера в базе данных временных рядов будет создан сегмент, представляющий собой диапазон данных. Сегмент включает первый и второй элементы справочника, на который ссылается атрибут «COUNTRY». В окно консоли будут выведены эффективные права пользователя «ADMIN».

См. также:

IRubricatorSegment