IRdsBaseBinding.InUniqueKey

Синтаксис Fore

InUniqueKey: Boolean;

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

InUniqueKey: boolean;

Описание

Свойство InUniqueKey определяет признак использования привязки ключа.

Комментарии

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

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

Пример Fore

Для выполнения примера в репозитории предполагается наличие таблицы с идентификатором «T_BINDING» и папки с идентификатором «F_RDS_BINDING». Таблица должна содержать строковые поля «NAME» и «EDUCATION».

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

Sub UserProc;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    RdsLoader: IMetaRdsLoader;
    Bindings: IRdsLoaderBindings;
    PredBinding: IRdsPredefinedBinding;
    Binding: IRdsUserAttributeBinding;
Begin
    // Получаем текущий репозиторий
    MB := MetabaseClass.Active;
    // Создаем объект для создания табличного справочника НСИ и загрузки в него данных
    RdsLoader := New MetaRdsLoader.Create;
    // Указываем таблицу, являющуюся источником данных
    RdsLoader.TableSource := MB.ItemById("T_BINDING").Bind As ITable;
    // Задаем привязки полей таблицы и создаваемого табличного справочника
    Bindings := RdsLoader.Bindings;
    // Задаем привязку атрибута «Наименование»
    PredBinding := Bindings.NameBinding;
    PredBinding.Field := "NAME";
    // Указываем, что используется привязка ключа
    PredBinding.InUniqueKey := True;
    // Добавляем привязку для пользовательского атрибута
    Binding := Bindings.Add(RdsLoaderBindingType.UserAttribute) As IRdsUserAttributeBinding;
    Binding.Field := "EDUCATION";
    // Указываем, что атрибут, создаваемый в справочнике НСИ, будет иметь тип «Длинный текст»
    Binding.DataDomain := DbDataDomain.Memo;
    // Задаем информацию о создаваемом справочнике
    CrInfo := MB.CreateCreateInfo;
    CrInfo.Parent := MB.ItemById("F_RDS_BINDING");
    CrInfo.Id := MB.GenerateId("DICT"0);
    // Указываем базу данных, используемую для создания справочника НСИ
    RdsLoader.Database := RdsLoader.TableSource.Database;
    // Создаем справочник
    (RdsLoader.CreateObject(CrInfo) As IMetabaseObject).Save;
    // Выполняем загрузку данных
    RdsLoader.Load(UpdateLoadMode.Insert);
End Sub UserProc;

В результате выполнения примера в папке «F_RDS_BINDING» будет создан табличный справочник с идентификатором «DICT», используемый для загрузки данных из таблицы «T_BINDING».

Пример Fore.NET

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

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    RdsLoader: IMetaRdsLoader;
    Bindings: IRdsLoaderBindings;
    PredBinding: IRdsPredefinedBinding;
    Binding: IRdsUserAttributeBinding;
Begin
    // Получаем текущий репозиторий
    MB := Params.Metabase;
    // Создаем объект для создания табличного справочника НСИ и загрузки в него данных
    RdsLoader := New MetaRdsLoader.Create();
    // Указываем таблицу, являющуюся источником данных
    RdsLoader.TableSource := MB.ItemById["T_BINDING"].Bind() As ITable;
    // Задаем привязки полей таблицы и создаваемого табличного справочника
    Bindings := RdsLoader.Bindings;
    // Задаем привязку атрибута «Наименование»
    PredBinding := Bindings.NameBinding;
    PredBinding.Field := "NAME";
    // Указываем, что используется привязка ключа
    PredBinding.InUniqueKey := True;
    // Добавляем привязку для пользовательского атрибута
    Binding := Bindings.Add(RdsLoaderBindingType.rlbtUserAttribute) As IRdsUserAttributeBinding;
    Binding.Field := "EDUCATION";
    // Указываем, что атрибут, создаваемый в справочнике НСИ, будет иметь тип «Длинный текст»
    Binding.DataDomain := DbDataDomain.dddMemo;
    // Задаем информацию о создаваемом справочнике
    CrInfo := MB.CreateCreateInfo();
    CrInfo.Parent := MB.ItemById["F_RDS_BINDING"];
    CrInfo.Id := MB.GenerateId("DICT"0);
    // Указываем базу данных, используемую для создания справочника НСИ
    RdsLoader.Database := RdsLoader.TableSource.Database;
    // Создаем справочник
    (RdsLoader.CreateObject(CrInfo) As IMetabaseObject).Save();
    // Выполняем загрузку данных
    RdsLoader.Load(UpdateLoadMode.ulmInsert);
End Sub;

См. также:

IRdsBaseBinding