Для выполнения примера предполагается наличие в репозитории рабочей книги с идентификатором «OBJ123», в которой будут сгруппированы ряды. База данных, на которой построена рабочая книга, должна содержать атрибут с идентификатором «TERRID», среди значений которого должно быть значение 1.
Подключите ссылки на следующие системные сборки:
Cubes;
Express;
Laner;
Metabase (только для Fore);
Rds.
Sub UserProc;
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
Exp: IEaxAnalyzer;
WB: ILaner;
TSDB: IRubricator;
MetaAtt: IMetaAttribute;
AttrVals: ILanerMetaAttributeValues;
AttrVal: ILanerMetaAttributeValue;
GroupSer: ILanerGroupSerie;
Begin
MB := MetabaseClass.Active;
//Открываем рабочую книгу на редактирование
MObj := MB.ItemById("OBJ123").Edit;
Exp := MObj As IEaxAnalyzer;
//Возвращаем рабочую книгу
WB := Exp.Laner;
WB.BeginUpdate;
//Возвращаем базу данных, на основе которой построена рабочая книга
TSDB := WB.RubricatorInstance.Rubricator;
//Создаем коллекцию значений атрибутов
AttrVals := WB.Series.CreateMetaAttributeValues;
//Получаем из базы данных временных рядов атрибут с указанным идентификатором
MetaAtt := TSDB.Facts.Attributes.FindById("TERRID");
//Добавляем атрибут в коллекцию атрибутов
AttrVal := AttrVals.Add(MetaAtt);
//Устанавливаем значение атрибута
AttrVal.Value := 1;
//Добавляем в рабочую книгу группу рядов, у которых значение атрибута TERRID равняется «1»
GroupSer := WB.Series.AddGroupSerie(TSDB, AttrVals);
//Раскрываем группу рядов
GroupSer.Expanded := True;
WB.EndUpdate;
MObj.Save;
End Sub UserProc;
После выполнения примера в рабочую книгу будет добавлена новая группа рядов. В данную группу войдут ряды, у которых значение атрибута «COUNTRY» равняется «512». Группа будет развернута.
Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Express, Metabase, Laner, Rds, Cubes из системной сборки Prognoz.Platform.Interop.
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
Exp: IEaxAnalyzer;
WB: ILaner;
TSDB: IRubricator;
MetaAtt: IMetaAttribute;
AttrVals: ILanerMetaAttributeValues;
AttrVal: ILanerMetaAttributeValue;
GroupSer: ILanerGroupSerie;
Begin
MB := Params.Metabase;
//Открываем рабочую книгу на редактирование
MObj := MB.ItemById["OBJ123"].Edit();
Exp := MObj As IEaxAnalyzer;
//Возвращаем рабочую книгу
WB := Exp.Laner;
WB.BeginUpdate();
//Возвращаем базу данных, на основе которой построена рабочая книга
TSDB := WB.RubricatorInstance.Rubricator;
//Создаем коллекцию значений атрибутов
AttrVals := WB.Series.CreateMetaAttributeValues();
//Получаем из базы данных временных рядов атрибут с указанным идентификатором
MetaAtt := TSDB.Facts.Attributes.FindById("TERRID");
//Добавляем атрибут в коллекцию атрибутов
AttrVal := AttrVals.Add(MetaAtt);
//Устанавливаем значение атрибута
AttrVal.Value := 1;
//Добавляем в рабочую книгу группу рядов, у которых значение атрибута TERRID равняется «1»
GroupSer := WB.Series.AddGroupSerie(TSDB, AttrVals, 0, -1);
//Раскрываем группу рядов
GroupSer.Expanded := True;
WB.EndUpdate();
MObj.Save();
End Sub;
Результат выполнения примера аналогичен результату примера на Fore.
См. также:
Примеры | ILaner | ILanerMetaAttributeValue | ILanerMetaAttributeValues | ILanerGroupSerie