AddLanerToFactors(Laner: );
AddLanerToFactors(Laner: Prognoz.Platform.Interop.Laner.);
Laner. Рабочая книга БД временных рядов.
Метод AddLanerToFactors устанавливает отметку для элементов, содержащихся в указанной рабочей книге.
Для снятия отметки со всех элементов используйте метод IMobilePublishRubricator.ClearFactors.
Для выполнения примера в репозитории предполагается наличие мобильного приложения с идентификатором «MA_PUB». Добавьте ссылки на следующие системные сборки: Metabase, Mobile, Express, Laner.
Sub UserProc;
Var
mb: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
MaPubObs: IMobileApplicationPublishObjects;
i, j: Integer;
MaPubObj, LanPubObj: IMobileApplicationPublishObject;
PubObj: IMobilePublishObject;
RubPubObj: IMobilePublishRubricator;
Eax: IEaxAnalyzer;
Laner: ILaner;
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;
RubPubObj := PubObj As IMobilePublishRubricator;
// Очищаем текущую отметку
RubPubObj.ClearFactors;
For j := 0 To MaPubObs.Count - 1 Do
LanPubObj := MaPubObs.Item(j);
// Выбираем среди объектов рабочие книги
If LanPubObj.Type = MobilePublishObjectType.Laner Then
// Устанавливаем отметку для рядов из рабочей книги
Eax := LanPubObj.PublishObject.Object As IEaxAnalyzer;
Laner := Eax.Laner As ILaner;
RubPubObj.AddLanerToFactors(Laner);
End If;
End For;
// Указываем путь для публикации
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.Express;
Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.Mobile;
…
[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Mobile: IMobileApplication;
Publicator: IMobileApplicationPublicator;
MaPubObs: IMobileApplicationPublishObjects;
i, j: Integer;
MaPubObj, LanPubObj: IMobileApplicationPublishObject;
PubObj: IMobilePublishObject;
RubPubObj: IMobilePublishRubricator;
Eax: IEaxAnalyzer;
Laner: LanerFactory;
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;
RubPubObj := PubObj As IMobilePublishRubricator;
// Очищаем текущую отметку
RubPubObj.ClearFactors();
For j := 0 To MaPubObs.Count - 1 Do
LanPubObj := MaPubObs.Item[j];
// Выбираем среди объектов рабочие книги
If LanPubObj.Type = MobilePublishObjectType.mpotLaner Then
// Устанавливаем отметку для рядов из рабочей книги
Eax := LanPubObj.PublishObject.Object As IEaxAnalyzer;
Laner := Eax.Laner As LanerFactory;
RubPubObj.AddLanerToFactors(Laner);
End If;
End For;
// Указываем путь для публикации
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;
Результат выполнения примера: для всех БД временных рядов, содержащихся в мобильном приложении, установлена отметка рядов в соответствии с рабочими книгами из данного мобильного приложения.
См. также: