Add([AddField: Boolean = True]): IMetaAttribute;
AddField - параметр, определяющий, будет ли создаваться новое поле в таблице для хранения значений атрибута.
По умолчанию передается значение True, при этом создается новое поле в таблице.
Если передавать значение False, то поле создано не будет. Для создания новой, либо обновления текущей таблицы, после изменения списка атрибутов будет необходимо вызвать метод CreateTable (Для обновления списка полей в существующей таблице можно использовать метод BuildFieldsByAttributes).
Метод Add осуществляет добавление атрибута в коллекцию.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором OBJ_FC и репозитория НСИ с идентификатором RDS_REPO. В репозитории НСИ должен присутствовать справочник с идентификатором DICT_COUNTRY.
Добавьте ссылки на системные сборки Metabase, Rds, Cubes.
Sub UserProc;
Var
MB: IMetabase;
Rubr: IRubricator;
Facts: IMetabaseObject;
Att: IMetaAttribute;
CollectionAtt: IMetaAttributes;
Begin
MB := MetabaseClass.Active;
Rubr := MB.ItemById("OBJ_FC").Bind As IRubricator;
Facts := (Rubr.Facts As IMetabaseObject).Edit;
Att := (Facts As IMetaDictionary).Attributes.Add;
Att.DataType := DbDataType.Integer;
Att.Id := "A_M_REF";
Att.Name := "Новый атрибут";
Att.Kind := (MetaAttributeKind.Collection) Or (MetaAttributeKind.Dimension);
Att.ValuesObject := MB.ItemByIdNamespace("DICT_COUNTRY", Mb.ItemById("RDS_REPO").Key);
Att.DataType := DbDataType.Integer;
Att.HasMultipleValues := True;
CollectionAtt := Att.CollectionAttributes;
CollectionAtt.BuildCollectionAttributes;
CollectionAtt.CreateTable(True);
Facts.Save;
End Sub UserProc;
После выполнения примера в справочнике, содержащем информацию о показателях базы данных временных рядов с идентификатором «OBJ_FC», будет добавлен атрибут с наименованием «Новый атрибут». Данный атрибут является ссылкой на справочник и поддерживает множественные значения. Также будет создана системная таблица для хранения множественных значений нового атрибута.
См. также: