DefaultExpression: IExpression;
DefaultExpression: Prognoz.Platform.Interop.ForeSystem.IExpression;
Свойство DefaultExpression определяет выражение, по которому будет определяться значение атрибута по умолчанию.
Для выражения, в виде символьной строки, используйте свойство IExpression.AsString.
Для выполнения примера в репозитории предполагается наличие табличного справочника НСИ с идентификатором ATTRIBUTED.
Добавьте ссылки на системные сборки: Dal, Metabase, Rds.
Sub UserProc;
Var
mb: IMetabase;
Dict: IRdsDictionary;
Attributes: IRdsAttributes;
Attribute: IRdsAttribute;
Exp: IExpression;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем справочник НСИ
Dict := mb.ItemById("ATTRIBUTED").Edit As IRdsDictionary;
// Получаем атрибуты справочника
Attributes := Dict.Attributes;
// Добавляем новый атрибут
Attribute := Attributes.Add;
// Задаём наименование и тип данных атрибута
Attribute.Name := "Новый атрибут";
Attribute.DataType := DbDataType.String;
// Задаём возможность редактировать значение атрибута
Attribute.VisibleForEdit := TriState.OnOption;
// Задаём значение по умолчанию
Exp := Attribute.DefaultExpression;
Exp.AsString := "NAME";
// Задаём вычисление значения по умолчанию каждый раз при изменении элемента
Attribute.DefaultExpressionKind := RdsAttributeDefaultExpressionKind.EvaluateOnEdit;
// Сохраняем изменения в справочнике НСИ
(Dict As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера в справочнике будет добавлен атрибут и задано выражение, для вычисления его значения по умолчанию. Значение будет вычисляться каждый раз при изменении элемента.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Дополнительно добавьте ссылку на системную сборку ForeSystem.
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Dict: IRdsDictionary;
Attributes: IRdsAttributes;
Attribute: IRdsAttribute;
Exp: IExpression;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем справочник НСИ
Dict := mb.ItemById["ATTRIBUTED"].Edit() As IRdsDictionary;
// Получаем атрибуты справочника
Attributes := Dict.Attributes;
// Добавляем новый атрибут
Attribute := Attributes.Add();
// Задаём наименование и тип данных атрибута
Attribute.Name := "Новый атрибут";
Attribute.DataType := DbDataType.ddtString;
// Задаём возможность редактировать значение атрибута
Attribute.VisibleForEdit := TriState.tsOnOption;
// Задаём значение по умолчанию
Exp := Attribute.DefaultExpression;
Exp.AsString := "NAME";
// Задаём вычисление значения по умолчанию каждый раз при изменении элемента
Attribute.DefaultExpressionKind := RdsAttributeDefaultExpressionKind.radeEvaluateOnEdit;
// Сохраняем изменения в справочнике НСИ
(Dict As IMetabaseObject).Save();
End Sub;
См. также: