OutputAutoPeriod: Integer;
OutputAutoPeriod: integer;
Свойство OutputAutoPeriod определяет условия, которые используются для вычисления дат начала и окончания периода выгрузки данных.
Условия задаются с помощью перечисления MsDateAutoPeriodOptions.
Для выполнения примера в репозитории предполагается наличие рабочей книги с идентификатором «WB_OUTPUT», содержащей один или несколько вычисляемых рядов.
Добавьте ссылки на системные сборки: Express, Laner, Metabase.
Sub UserProc;
Var
mb: IMetabase;
ErAn: IEaxAnalyzer;
Laner: ILaner;
Series: ILanerSeries;
i: Integer;
Serie: ILanerCalculateSerie;
Period: ILanerTransformPeriod;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем рабочую книгу
ErAn := mb.ItemById("WB_OUTPUT").Edit As IEaxAnalyzer;
Laner := ErAn.Laner;
// Получаем все ряды в рабочей книге
Series := Laner.Series;
// Начинаем перебирать ряды
For i := 0 To Series.Count - 1 Do
Serie := Series.Item(i) As ILanerCalculateSerie;
// Если ряд вычисляемый, то задаем для него период выгрузки данных
If Serie.Kind = LnSerieKind.Calculate Then
Period := Serie.TransformPeriod;
// Период выгрузки данных будет задан с помощью условий:
// даты начала и окончания периода равна текущему числу
// плюс/минус заданное количество периодов
Period.OutputAutoPeriod := MsDateAutoPeriodOptions.UseNowAndOffsets;
// Количество периодов, на которое сдвигается дата начала периода выгрузки данных
Period.OutputStartOffset := -10;
// Количество периодов, на которое сдвигается дата окончания периода выгрузки данных
Period.OutputEndOffset := 5;
End If;
End For;
// Сохраняем изменения
(ErAn As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера для всех вычисляемых рядов в рабочей книге с помощью условий будет задан период выгрузки данных.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
ErAn: IEaxAnalyzer;
Laner: ILaner;
Series: ILanerSeries;
i: Integer;
Serie: ILanerCalculateSerie;
Period: ILanerTransformPeriod;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем рабочую книгу
ErAn := mb.ItemById["WB_OUTPUT"].Edit() As IEaxAnalyzer;
Laner := ErAn.Laner;
// Получаем все ряды в рабочей книге
Series := Laner.Series;
// Начинаем перебирать ряды
For i := 0 To Series.Count - 1 Do
Serie := Series.Item[i] As ILanerCalculateSerie;
// Если ряд вычисляемый, то задаем для него период выгрузки данных
If Serie.Kind = LnSerieKind.lskCalculate Then
Period := Serie.TransformPeriod;
// Период выгрузки данных будет задан с помощью условий:
// даты начала и окончания периода равна текущему числу
// плюс/минус заданное количество периодов
Period.OutputAutoPeriod := MsDateAutoPeriodOptions.msdapoUseNowAndOffsets As integer;
// Количество периодов, на которое сдвигается дата начала периода выгрузки данных
Period.OutputStartOffset := -10;
// Количество периодов, на которое сдвигается дата окончания периода выгрузки данных
Period.OutputEndOffset := 5;
End If;
End For;
// Сохраняем изменения
(ErAn As IMetabaseObject).Save();
End Sub;
См. также: