IRubricatorSegments.CreateFactorsSegment

Синтаксис

CreateFactorsSegment: IRubricatorFactorsSegment;

CreateFactorsSegment: Prognoz.Platform.Interop.Cubes.IRubricatorFactorsSegment;

Описание

Метод CreateFactorsSegment добавляет диапазон данных в коллекцию.

Пример

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

Для выполнения примера добавьте ссылки на системные сборки: Metabase, Cubes, Dimensions, Rds.

Sub UserProc;
Var
    MB: IMetabase;
    RubInst: IRubricatorInstance;
    Rub: IRubricator;
    Segs: IRubricatorSegments;
    Seg: IRubricatorSegment;
    Sd: ISecurityDescriptor;
    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(NullAs IRubricatorInstance;
    Segs := RubInst.Segments;
    Seg := Segs.CreateFactorsSegment 
As IRubricatorSegment;
    SegmObject := Seg.AsObject;
    Sd := SegmObject.SecurityDescriptor;
    Sd.Edit;
    Seg.AttributeName := 
"COUNTRY";
    Attr := Rub.Facts.Attributes.FindById(
"COUNTRY");
    Seg.Attribute := Attr;
    Dict := Attr.ValuesObject.Bind;
    DI := Dict.Open(
NullAs IDimInstance;
    Sel := DI.CreateSelection;
    Sel.SelectElement(
0False);
    Sel.SelectElement(
1False);
    SegmFact := Seg 
As IRubricatorFactorsSegment;
    SegmFact.SetSelection(Sel);
    Seg.Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RubInst: IRubricatorInstance;
    Rub: IRubricator;
    Segs: IRubricatorSegments;
    Seg: IRubricatorSegment;
    Sd: ISecurityDescriptor;
    Attr: IMetaAttribute;
    Dict: IMetabaseObject;
    DI: IDimInstance;
    Sel: IDimSelection;
    SegmFact: IRubricatorFactorsSegment;
    SegmObject: IMetabaseObjectDescriptor;
Begin
    MB := Params.Metabase;
    Rub := MB.ItemById[
"OBJ_RUBRICATOR"].Bind() As IRubricator;
    RubInst := (Rub 
As IMetabaseObjectDescriptor).Open(NullAs IRubricatorInstance;
    Segs := RubInst.Segments;
    Seg := Segs.CreateFactorsSegment() 
As IRubricatorSegment;
    SegmObject := Seg.AsObject();
    Sd := SegmObject.SecurityDescriptor;
    Sd.Edit();
    Seg.AttributeName := 
"COUNTRY";
    Attr := Rub.Facts.Attributes.FindById(
"COUNTRY");
    Seg.Attribute := Attr;
    Dict := Attr.ValuesObject.Bind();
    DI := Dict.Open(
NullAs IDimInstance;
    Sel := DI.CreateSelection();
    Sel.SelectElement(
0False);
    Sel.SelectElement(
1False);
    SegmFact := Seg 
As IRubricatorFactorsSegment;
    SegmFact.SetSelection(Sel);
    Seg.Save();
End Sub;

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

См. также:

IRubricatorSegments