CreateBatch(BatchType: RdsDictionaryBatchType): IRdsDictionaryBatch;
CreateBatch(BatchType: Prognoz.Platform.Interop.Rds.RdsDictionaryBatchType): Prognoz.Platform.Interop.Rds.IRdsDictionaryBatch;
BatchType. Тип пакета элементов.
Метод CreateBatch создает пакет элементов справочника НСИ.
Пакет предназначен для выполнения каких-либо действий над всеми элементами в пакете одновременно.
Параметр BatchType не может принимать значение Null.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «MDM». Данный репозиторий содержит версионный справочник НСИ с ручным управлением периодами и идентификатором «DICT».
Добавьте ссылки на системные сборки «Metabase» и «Rds».
Sub UserProc;
Var
mb: IMetabase;
RdrRepoDescr: IMetabaseObjectDescriptor;
RdsDictObj: IMetabaseObject;
DictInst: IRdsDictionaryInstance;
DictBatch: IRdsDictionaryBatch;
DelBatch: IRdsDictionaryBatchDelete;
Begin
mb := MetabaseClass.Active;
// Получаем репозиторий НСИ
RdrRepoDescr := mb.ItemById("MDM");
// Получаем справочник
RdsDictObj := mb.ItemByIdNamespace("DICT", RdrRepoDescr.Key).Edit;
DictInst := RdsDictObj.Open(Null) As IRdsDictionaryInstance;
// Создаем пакет для удаления элементов
DictBatch := DictInst.CreateBatch(RdsDictionaryBatchType.Delete);
If DictBatch.BatchType = RdsDictionaryBatchType.Delete Then
DelBatch := DictBatch As IRdsDictionaryBatchDelete;
// Задаем дату окончания действия для значений элементов
DelBatch.CloseDate := DateTime.Parse("20.07.2013");
End If;
// Выполняем удаление элементов и выводим результат в окно консоли
Debug.WriteLine("Число обработанных элементов: " + DelBatch.Execute.ToString);
Debug.WriteLine("Число удаленных элементов: " + DelBatch.Count.ToString);
RdsDictObj.Save;
End Sub UserProc;
Результат выполнения примера: создан пакет для удаления элементов, задана дата окончания действия для значений элементов. Действие над пакетом элементов будет выполнено. В окно консоли будет выведено число обработанных и удаленных элементов.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
RdrRepoDescr: IMetabaseObjectDescriptor;
RdsDictObj: IMetabaseObject;
DictInst: IRdsDictionaryInstance;
DictBatch: IRdsDictionaryBatch;
DelBatch: IRdsDictionaryBatchDelete;
Begin
mb := Params.Metabase;
// Получаем репозиторий НСИ
RdrRepoDescr := mb.ItemById["MDM"];
// Получаем справочник
RdsDictObj := mb.ItemByIdNamespace["DICT", RdrRepoDescr.Key].Edit();
DictInst := RdsDictObj.Open(Null) As IRdsDictionaryInstance;
// Создаем пакет для удаления элементов
DictBatch := DictInst.CreateBatch(RdsDictionaryBatchType.rdbtDelete);
If DictBatch.BatchType = RdsDictionaryBatchType.rdbtDelete Then
DelBatch := DictBatch As IRdsDictionaryBatchDelete;
// Задаем дату окончания действия для значений элементов
DelBatch.CloseDate := DateTime.Parse("20.07.2013");
End If;
// Выполняем удаление элементов и выводим результат в окно консоли
System.Diagnostics.Debug.WriteLine("Число обработанных элементов: "
+ DelBatch.Execute().ToString());
System.Diagnostics.Debug.WriteLine("Число удаленных элементов: "
+ DelBatch.Count.ToString());
RdsDictObj.Save();
End Sub;
См. также: