FindById(Id: String): IRdsNonUniqueKey;
FindById(Id: string): Prognoz.Platform.Interop.Rds.IRdsNonUniqueKey;
Id. Идентификатор неуникального ключа, по которому осуществляется поиск.
Метод FindById осуществляет поиск неуникального ключа по идентификатору в справочнике НСИ.
Для удаления неуникального ключа по индексу используйте метод IRdsNonUniqueKeys.Remove.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «NSI_1», содержащего справочник НСИ с идентификатором «DICT_1». В справочнике должны быть добавлены пользовательские атрибуты с неуникальными ключами. Первый неуникальный ключ характеризуется индексом «Index_1», второй неуникальный ключ -ключом «1».
Добавьте ссылки на системные сборки «Metabase», «Rds».
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
Dict: IRdsDictionary;
Attrs: IRdsAttributes;
Keys: IRdsNonUniqueKeys;
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;
Keys.FindById("Index_1");
Keys.FindByKey(1);
Keys.Remove(0);
Keys.RemoveByKey(1);
MObj.Save;
End Sub UserProc;
В результате выполнения примера будут найдены и затем удалены неуникальные ключи по заданным индексам и ключам.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObject;
Dict: IRdsDictionary;
Attrs: IRdsAttributes;
Keys: IRdsNonUniqueKeys;
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;
Keys.FindById("Index_1");
Keys.FindByKey(1);
Keys.Remove(0);
Keys.RemoveByKey(1);
MObj.Save();
End Sub;
См. также: