IRdsDictionary.NonUniqueKeys

Синтаксис Fore

NonUniqueKeys: IRdsNonUniqueKeys;

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

NonUniqueKeys: Prognoz.Platform.Interop.Rds.IRdsNonUniqueKeys;

Описание

Свойство NonUniqueKeys возвращает коллекцию неуникальных ключей справочника НСИ.

Комментарии

Для получения коллекции уникальных ключей справочника НСИ используйте свойство IRdsDictionary.UniqueKeys.

Пример Fore

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

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Dict: IRdsDictionary;
    Attrs: IRdsAttributes;
    Attr: IRdsAttribute;
    Keys: IRdsNonUniqueKeys;
    Key: IRdsNonUniqueKey;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemByIdNamespace("DICT_1", MB.ItemById("NSI_1").Key).Edit;
    Dict := MObj As IRdsDictionary;
    // Создаем новый атрибут
    Attrs := Dict.Attributes;
    Keys := Dict.NonUniqueKeys;
    Attr := Attrs.Add;
    Attr.DataType := DbDataType.String;
    Attr.Id := "GosNomer";
    Attr.Name := "Государственный номер";
    // Создаем неуникальный ключ
    Key := Keys.Add;
    Key.Id := "Index_1";
    Key.Name := "Индекс 1";
    Key.Contains(Attr) := True;
    // Сохраняем изменения
    (Key.Dictionary As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера в справочнике НСИ будет создан пользовательский атрибут. По данному атрибуту создан неуникальный ключ справочника НСИ.

Пример Fore.NET

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

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Dict: IRdsDictionary;
    Attrs: IRdsAttributes;
    Attr: IRdsAttribute;
    Keys: IRdsNonUniqueKeys;
    Key: IRdsNonUniqueKey;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemByIdNamespace["Dict_1", MB.ItemById["NSI_1"].Key].Edit();
    Dict := MObj As IRdsDictionary;
    // Создаем новый атрибут
    Attrs := Dict.Attributes;
    Keys := Dict.NonUniqueKeys;
    Attr := Attrs.Add();
    Attr.DataType := DbDataType.ddtString;
    Attr.Id := "GosNomer";
    Attr.Name := "Государственный номер";
    // Создаем неуникальный ключ
    Key := Keys.Add();
    Key.Id := "Index_1";
    Key.Name := "Индекс 1";
    Key.Contains[Attr] := True;
    // Сохраняем изменения
    (Key.Dictionary As IMetabaseObject).Save();
End Sub

См. также:

IRdsDictionary