SetFactors(Value: Array);
SetFactors(Value: System.Array);
Value. Массив ключей рядов.
Метод SetFactors устанавливает заданную отметку элементов БД временных рядов.
Для получения текущей отметки элементов используйте метод IMobilePublishRubricator.LoadFactors.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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(Null) As 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;
Результат выполнения примера: БД временных рядов, содержащиеся в мобильном приложении, будут опубликованы с заданной отметкой; результаты публикации выведены в окно консоли.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «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(Null) As 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;
Результат выполнения примера: БД временных рядов, содержащиеся в мобильном приложении, будут опубликованы с заданной отметкой; результаты публикации выведены в окно консоли.
См. также: