IsGroupActive(Group: IMetaAttributeGroup): Boolean;
IsGroupActive(Group: Prognoz.Platform.Interop.Rds.IMetaAttributeGroup): boolean;
Group. Группа атрибутов базы данных временных рядов.
Метод IsGroupActive возвращает признак того, входит ли показатель в указанную группу.
Если IsGroupActive возвращает значение True, то показатель входит в указанную группу.
Признак того, что указанный групповой атрибут доступен для показателя возвращает метод IMetaDictionaryDataInfo.IsAttributeActive.
Для выполнения примера предполагается наличие базы данных временных рядов с идентификатором «FC_GROUPS», содержащей групповой атрибут. Добавьте ссылки на системные сборки «Rds», «Metabase», «Cubes».
Sub UserProc;
Var
mb: IMetabase;
RubDesc: IMetabaseObjectDescriptor;
Rub: IRubricator;
RubrIn: IRubricatorInstance;
Dic: IMetaDictionary;
i: Integer;
key: Array Of Integer;
Grp: IMetaAttributeGroup;
FactsLookup: IRubricatorFactsLookup;
FactData: IRubricatorFactData;
FactInfo: IMetaDictionaryDataInfo;
Begin
mb := MetabaseClass.Active;
RubDesc := mb.ItemById("FC_GROUPS");
Rub := RubDesc.Bind As IRubricator;
// Получаем справочник показателей базы
данных временных рядов
Dic := (Rub.Facts As IMetabaseObject).Edit As IMetaDictionary;
// Получаем первую группу атрибутов справочника
Grp := Dic.Groups.Item(0);
// Получаем массив ключей показателей
RubrIn := RubDesc.Open(Null) As IRubricatorInstance;
FactsLookup := RubrIn.CreateFactsLookup;
i := FactsLookup.LookupFactors.Length;
key := New Integer[i];
key := FactsLookup.LookupFactors;
// Получаем показатели, которые входят в первую группу атрибутов
For Each i In key Do
FactData := RubrIn.GetFactData(i);
FactInfo := FactData As IMetaDictionaryDataInfo;
If FactInfo.IsGroupActive(Grp) Then
Debug.WriteLine(FactData.Mnemo);
End If;
End For;
End Sub UserProc;
После выполнения примера в окно консоли будут выведены мнемоники показателей, для которых доступно изменение значения группового атрибута.
Для выполнения примера предполагается наличие базы данных временных рядов с идентификатором «FC_GROUPS», содержащего групповой атрибут.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
RubDesc: IMetabaseObjectDescriptor;
Rub: IRubricator;
RubrIn: IRubricatorInstance;
Dic: IMetaDictionary;
i: integer;
key: System.Array;
Grp: IMetaAttributeGroup;
FactsLookup: IRubricatorFactsLookup;
FactData: IRubricatorFactData;
FactInfo: IMetaDictionaryDataInfo;
Begin
mb := Params.Metabase;
RubDesc := mb.ItemById["FC_GROUPS"];
Rub := RubDesc.Bind() As IRubricator;
// Получаем справочник показателей базы
данных временных рядов
Dic := (Rub.Facts As IMetabaseObject).Edit() As IMetaDictionary;
// Получаем первую группу атрибутов справочника
Grp := Dic.Groups.Item[0];
// Получаем массив ключей показателей
RubrIn := RubDesc.Open(Null) As IRubricatorInstance;
FactsLookup := RubrIn.CreateFactsLookup();
key := New Integer[FactsLookup.LookupFactors().Length];
key := FactsLookup.LookupFactors();
// Получаем показатели, которые входят в первую группу атрибутов
For Each i In key Do
FactData := RubrIn.GetFactData(i As uinteger, DictionaryGetDataOptions.dgdoNone);
FactInfo := FactData As IMetaDictionaryDataInfo;
If FactInfo.IsGroupActive(Grp) Then
System.Diagnostics.Debug.WriteLine(FactData.Mnemo);
End If;
End For;
End Sub;
После выполнения примера в окно консоли будут выведены мнемоники показателей, для которых доступно изменение значения группового атрибута.
См. также: