ICubeCreatorField.Translations

Синтаксис Fore

Translations: ICubeCreatorFieldTranslations;

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

Translations: Prognoz.Platform.Interop.Cubes.ICubeCreatorFieldTranslations;

Описание

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

Комментарии

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

Пример Fore

Для выполнения примера предполагается наличие в репозитории папки с идентификатором «F_CUBES», в которой хранятся кубы. Также предполагается наличие файла «C:\Data.xls», в котором имеются столбцы со следующими наименованиями:

Sub UserProc;
Var
    MB: IMetabase;
    Loader: ICubeLoaderFromSource;
    Provider: IDtExcelProvider;
    Bindings: ICubeLoaderDimensionBindings;
    Binding: ICubeLoaderDimensionBinding;
    Fields: ICubeCreatorFields;
    Field: ICubeCreatorField;
    FactBindings: ICubeLoaderFactBindings;
    FactBinding: ICubeLoaderFactBinding;
Begin
    MB := MetabaseClass.Active;
    //Источник данных для куба
    Provider := New DtExcelProvider.Create;
    Provider.DriverVersion := "Excel 8.0";
    Provider.File := "D:\Work\Data.xls";
    Provider.HasHeader := True;
    Provider.Query := "Select * From [Лист1$]";
    //Загрузчик данных в куб
    Loader := New CubeLoaderFromSource.Create;
    Loader.Parent := MB.ItemById("CUBE_FOLDER").Bind;
    //Настройка привязок измерений и фактов
    Bindings := Loader.DimensionBindings;
    Binding := Bindings.Add("Country Name");
    Binding.AttributeId := "NAME";
    Binding.NewDictionaryName := "Country";
    Fields := Binding.Fields;
    //Привязка атрибутов перевода
    Field := Fields.Item(0);
    Field.Translations.Add(LocaleCodeID.English_UnitedStates, "Country Name En");
    //Календарь
    Binding := Bindings.AddCalendar("Date", DimCalendarLevel.Month);
    //Привязка фактов
    FactBindings := Loader.FactBindings;
    FactBinding := FactBindings.Add("Value");
    //Создание куба и загрузка данных
    Loader.Load(Provider, Null);
End Sub UserProc;

При выполнении примера будут инициализированы объект импорта из Excel и загрузчик данных в куб. На основании информации о полях источника данных буду настроены привязки измерений и фактов создаваемого куба. Для стран будет создаваться мальтиязычный справочник. При выполнении метода Load будут созданы новый стандартный куб, необходимые справочники для измерений и таблица для хранения данных. Данные будут импортированы в созданную таблицу.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Metabase;

Public Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Loader: ICubeLoaderFromSource = New CubeLoaderFromSourceClass();
    Provider: IDtExcelProvider = New DtExcelProviderClass();
    Bindings: ICubeLoaderDimensionBindings;
    Binding: ICubeLoaderDimensionBinding;
    Fields: ICubeCreatorFields;
    Field: ICubeCreatorField;
    FactBindings: ICubeLoaderFactBindings;
    FactBinding: ICubeLoaderFactBinding;
Begin
    MB := Params.Metabase;
    //Источник данных для куба
    Provider.DriverVersion := "Excel 8.0";
    Provider.File := "D:\Work\Data.xls";
    Provider.HasHeader := True;
    Provider.Query := "Select * From [Лист1$]";
    //Загрузчик данных в куб
    Loader.Parent := MB.ItemById["CUBE_FOLDER"].Bind();
    //Настройка привязок измерений и фактов
    Bindings := Loader.DimensionBindings;
    Binding := Bindings.Add("Country Name");
    Binding.AttributeId := "NAME";
    Binding.NewDictionaryName := "Country";
    Fields := Binding.Fields;
    //Привязка атрибутов перевода
    Field := Fields.Item[0];
    Field.Translations.Add(LocaleCodeID.lcidEnglish_UnitedStates, "Country Name En");
    //Календарь
    Binding := Bindings.AddCalendar("Date", DimCalendarLevel.dclMonth);
    //Привязка фактов
    FactBindings := Loader.FactBindings;
    FactBinding := FactBindings.Add("Value");
    //Создание куба и загрузка данных
    Loader.Load(Provider, Null);
End Sub;

См. также:

ICubeCreatorField