IRdsAttribute.Calculated

Синтаксис Fore

Calculated: Boolean;

Синтаксис Fore.NET

Calculated: boolean;

Описание

Свойство Calculated определяет, является ли атрибут вычисляемым.

Комментарии

Допустимые значения:

Текст запроса, по которому вычисляется значение атрибута, определяет свойство IRdsAttribute.Query. Задавать значение вычисляемого атрибута недопустимо. Если в запросе присутствуют поля основной таблицы и заимствованные поля, то пред основными полями необходимо использовать маску #TABLE#.

Если в справочнике присутствуют вычисляемые атрибуты, то при добавлении/изменении элемента происходит его перезагрузка.

Пример Fore

Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «RDS», содержащим табличный справочник НСИ с идентификатором «DICT».

Добавьте ссылки на системные сборки «Metabase», «Rds», «Dal».

Sub UserProc;
Var
    MB: IMetabase;
    RdsKey: Integer;
    MObj: IMetabaseObject;
    Dict: IRdsDictionary;
    Attrs: IRdsAttributes;
    Attr: IRdsAttribute;
Begin
    MB := MetabaseClass.Active;
    RdsKey := MB.GetObjectKeyById("RDS");
    MObj := MB.ItemByIdNamespace("DICT", RdsKey).Edit;
    Dict := MObj As IRdsDictionary;
    Attrs := Dict.Attributes;
    Attr := Attrs.Add;
    Attr.DataType := DbDataType.Integer;
    Attr.Id := "CALC_ATTR";
    Attr.Name := "Вычисляемый атрибут";
    Attr.Calculated := True;
    Attr.Query := "#TABLE#.KEY + 1";
    MObj.Save;
End Sub UserProc;

После выполнения примера в справочник НСИ будет добавлен вычисляемый атрибут с идентификатором «CALC_ATTR». Значение атрибута рассчитывается по формуле: значение ключа элемента + 1.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Rds;

[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RdsKey: uinteger;
    MObj: IMetabaseObject;
    Dict: IRdsDictionary;
    Attrs: IRdsAttributes;
    Attr: IRdsAttribute;
Begin
    MB := Params.Metabase;
    RdsKey := MB.GetObjectKeyById("RDS");
    MObj := MB.ItemByIdNamespace["DICT", RdsKey].Edit();
    Dict := MObj As IRdsDictionary;
    Attrs := Dict.Attributes;
    Attr := Attrs.Add();
    Attr.DataType := DbDataType.ddtInteger;
    Attr.Id := "CALC_ATTR";
    Attr.Name := "Вычисляемый атрибут";
    Attr.Calculated := True;
    Attr.Query := "#TABLE#.KEY + 1";
    MObj.Save();
End Sub;

См. также:

IRdsAttribute