IMobilePublishRubricator.SetFactors

Синтаксис Fore

SetFactors(Value: Array);

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

SetFactors(Value: System.Array);

Параметры

Value. Массив ключей рядов.

Описание

Метод SetFactors устанавливает заданную отметку элементов БД временных рядов.

Комментарии

Для получения текущей отметки элементов используйте метод IMobilePublishRubricator.LoadFactors.

Пример Fore

Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB». Добавьте ссылки на системные сборки: Metabase, Mobile, Orm, Cubes, Dimensions, Rds.

Sub UserProc;
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    RubInst: IRubricatorInstance;
    FactsL: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    Cond: IOrmCondition;
    RubPubObj: IMobilePublishRubricator;
    Atts: Array Of Integer;
    res: MobilePublishObjectResult;
Begin
    mb := MetabaseClass.Active;
    // Получаем мобильное приложение (МП)
    Mobile := mb.ItemById("MA_PUB").Bind As IMobileApplication;
    // Создаем публикатор МП
    Publicator := Mobile.CreatePublicator;
    // Получаем объекты МП
    MaPubObs := Publicator.Items;
    For i := 0 To MaPubObs.Count - 1 Do
        MaPubObj := MaPubObs.Item(i);
        // Выбираем среди объектов БД временных рядов
        If MaPubObj.Type = MobilePublishObjectType.Rubricator Then
            PubObj := MaPubObj.PublishObject;
            // Получаем ключи рядов с годовой динамикой, измененных в последнюю ревизию
            RubInst := PubObj.Object.Open(NullAs IRubricatorInstance;
            FactsL := RubInst.CreateFactsLookup;
            MetaDLookup := FactsL.Lookup;
            Cond := MetaDLookup.Where.Add;
            Cond.AttributeName := "DL";
            Cond.Value := DimCalendarLevel.Year As Integer;
            Atts := MetaDLookup.LookupKeys("REV");
            Cond := MetaDLookup.Where.Add;
            Cond.AttributeName := "REV";
            Atts := MetaDLookup.LookupKeys("KEY");
            RubPubObj := PubObj As IMobilePublishRubricator;
            // Устанавливаем отметку для данных рядов
            RubPubObj.SetFactors(Atts);
            // Указываем путь для публикации
            PubObj.ExportPath := "C:\" + PubObj.Object.Id + ".zip";
            // Публикуем рабочую БД временных рядов
            res := PubObj.Publish;
            // Выводим результат в окно консоли
            If (res As integer) = 0 Then
                Debug.WriteLine("Публикация выполнена успешно");
                Debug.WriteLine("    Путь публикации: " + PubObj.ExportPath);
            Else
                Debug.WriteLine("При публикации возникла ошибка");
            End If;
        End If;
    End For;
End Sub UserProc;

Результат выполнения примера: БД временных рядов, содержащиеся в мобильном приложении, будут опубликованы с заданной отметкой; результаты публикации выведены в окно консоли.

Пример Fore.NET

Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB».

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Mobile;
Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.Orm;
Imports Prognoz.Platform.Interop.Dimensions;

[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Mobile: IMobileApplication;
    Publicator: IMobileApplicationPublicator;
    MaPubObs: IMobileApplicationPublishObjects;
    i: Integer;
    MaPubObj: IMobileApplicationPublishObject;
    PubObj: IMobilePublishObject;
    RubInst: IRubricatorInstance;
    FactsL: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    Cond: IOrmCondition;
    RubPubObj: IMobilePublishRubricator;
    Atts: Array Of Integer;
    res: MobilePublishObjectResult;
Begin
    mb := Params.Metabase;
    // Получаем мобильное приложение (МП)
    Mobile := mb.ItemById["MA_PUB"].Bind() As IMobileApplication;
    // Создаем публикатор МП
    Publicator := Mobile.CreatePublicator();
    // Получаем объекты МП
    MaPubObs := Publicator.Items;
    For i := 0 To MaPubObs.Count - 1 Do
        MaPubObj := MaPubObs.Item[i];
        // Выбираем среди объектов БД временных рядов
        If MaPubObj.Type = MobilePublishObjectType.mpotRubricator Then
            PubObj := MaPubObj.PublishObject;
            // Получаем ключи рядов с годовой динамикой, измененных в последнюю ревизию
            RubInst := PubObj.Object.Open(NullAs IRubricatorInstance;
            FactsL := RubInst.CreateFactsLookup();
            MetaDLookup := FactsL.Lookup;
            Cond := MetaDLookup.Where.Add();
            Cond.AttributeName := "DL";
            Cond.Value := DimCalendarLevel.dclYear As Integer;
            Atts := MetaDLookup.LookupKeys("REV"As array Of integer;
            Cond := MetaDLookup.Where.Add();
            Cond.AttributeName := "REV";
            Atts := MetaDLookup.LookupKeys("KEY"As array Of integer;
            RubPubObj := PubObj As IMobilePublishRubricator;
            // Устанавливаем отметку для данных рядов
            RubPubObj.SetFactors(Atts);
            // Указываем путь для публикации
            PubObj.ExportPath := "C:\" + PubObj.Object.Id + ".zip";
            // Публикуем рабочую БД временных рядов
            res := PubObj.Publish(Null);
            // Выводим результат в окно консоли
            If (res As integer) = 0 Then
                System.Diagnostics.Debug.WriteLine("Публикация выполнена успешно");
                System.Diagnostics.Debug.WriteLine("    Путь публикации: " + PubObj.ExportPath);
            Else
                System.Diagnostics.Debug.WriteLine("При публикации возникла ошибка");
            End If;
        End If;
    End For;
End Sub;

Результат выполнения примера: БД временных рядов, содержащиеся в мобильном приложении, будут опубликованы с заданной отметкой; результаты публикации выведены в окно консоли.

См. также:

IMobilePublishRubricator