Load(UpdateMode: UpdateLoadMode);
Load(UpdateMode: Prognoz.Platform.Interop.Metabase.UpdateLoadMode);
UpdateMode. Режим обновления записей в справочнике.
Метод Load загружает данные из источника в табличный справочник НСИ.
Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «MDM» и файла Microsoft Excel «C:\data.xls», соответствующего следующим требованиям:
Файл должен содержать заголовки столбцов.
В файле должен присутствовать столбец «Name», содержащий текстовые данные и не содержащий пустых значений.
В файле должен присутствовать столбец «Key», содержащий целочисленные данные.
Добавьте ссылки на системные сборки: Dt, Metabase, Rds.
Sub UserProc;
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
RdsLoader: IMetaRdsLoader;
ExcelProvider: IDtExcelProvider;
Begin
// Создаем источник данных для справочника и задаем его параметры
ExcelProvider := New DtExcelProvider.Create;
ExcelProvider.DriverVersion := "Excel 8.0";
ExcelProvider.File := "C:\Data.xls";
ExcelProvider.HasHeader := True;
ExcelProvider.Query := "Select * From [Лист1$]";
// Получаем текущий репозиторий
MB := MetabaseClass.Active;
// Задаем информацию о создаваемом справочнике
CrInfo := MB.CreateCreateInfo;
CrInfo.Parent := MB.ItemById("MDM");
CrInfo.Permanent := True;
CrInfo.Id := MB.GenerateId("NewDictionary", CrInfo.Parent.Key);
// Создаем объект для создания табличного справочника НСИ и загрузки в него данных
RdsLoader := New MetaRdsLoader.Create;
// Задаем источник данных создаваемого справочника
RdsLoader.Source := ExcelProvider;
// Генерируем привязки полей источника данных и создаваемого справочника
RdsLoader.GenerateBindingsBySource;
// Создаем справочник
(RdsLoader.CreateObject(CrInfo) As IMetabaseObject).Save;
// Выполняем загрузку данных
RdsLoader.Load(UpdateLoadMode.Insert);
End Sub UserProc;
В результате выполнения примера будет инициализирован объект, используемый для создания табличных справочников НСИ и загрузки в них данных. Для создания справочника будет указан источник данных и автоматически сгенерированы привязки к полям. После этого будет создан справочник и в него будут загружены данные.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Rds;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
RdsLoader: IMetaRdsLoader;
ExcelProvider: IDtExcelProvider;
Begin
// Создаем источник данных для справочника и задаем его параметры
ExcelProvider := New DtExcelProvider.Create();
ExcelProvider.DriverVersion := "Excel 8.0";
ExcelProvider.File := "C:\Data.xls";
ExcelProvider.HasHeader := True;
ExcelProvider.Query := "Select * From [Лист1$]";
// Получаем текущий репозиторий
MB := Params.Metabase;
// Задаем информацию о создаваемом справочнике
CrInfo := MB.CreateCreateInfo();
CrInfo.Parent := MB.ItemById["MDM"];
CrInfo.Permanent := True;
CrInfo.Id := MB.GenerateId("NewDictionary", CrInfo.Parent.Key);
// Создаем объект для создания табличного справочника НСИ и загрузки в него данных
RdsLoader := New MetaRdsLoader.Create();
// Задаем источник данных создаваемого справочника
RdsLoader.Source := ExcelProvider;
// Генерируем привязки полей источника данных и создаваемого справочника
RdsLoader.GenerateBindingsBySource();
// Создаем справочник
(RdsLoader.CreateObject(CrInfo) As IMetabaseObject).Save();
// Выполняем загрузку данных
RdsLoader.Load(UpdateLoadMode.ulmInsert);
End Sub;
См. также: