IEmSeries.AddComputingSerie

Синтаксис Fore

AddComputingSerie(
    Name: String;
    DisplayName: String;
    BaseSerieName: String;
    Type: EmComputingSerieType;
    Condition: Variant): IEmComputingSerie;

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

AddComputingSerie(
    Name: string;
    DisplayName: string;
    BaseSerieName: string;
    Type: Prognoz.Platform.Interop.Modeller.EmComputingSerieType;
    Condition: object): Prognoz.Platform.Interop.Modeller.IEmComputingSerie;

Параметры

Name. Идентификатор вычисляемого ряда.

DisplayName. Наименование вычисляемого ряда.

BaseSerieName. Идентификатор ряда, на основании значений которого рассчитывается вычисляемый ряд.

Type. Метод вычисления значений ряда.

Condition. Параметр вычисления значений ряда.

Описание

Метод AddComputingSerie добавляет вычисляемый ряд в исходные ряды экспресс-моделирования.

Комментарии

Особенности использования метода в зависимости от значения параметра Type:

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку «Modeller».

Sub CompSerie;
Var
    ExprMod: IExpressModeller;
    Ar: Array[6Of Double;
    Series: IEmSeries;
    Serie: IEmSerie;
    CSerie: IEmComputingSerie;
Begin
    ExprMod := New ExpressModeller.Create;
    Ar[0] := 56; Ar[2] := 45; Ar[3] := 23; Ar[4] := 45;
    Ar[1] := Double.Nan; Ar[5] := Double.Nan;
    Series := ExprMod.Series;
    // Добавляем ряд данных
    Serie := Series.Add(Ar, "X1""Базовый ряд");
    // Выводим его значения
    Debug.WriteLine("Базовый ряд данных:");
    PrintSerie(Serie);
    // Добавляем вычисляемый ряд данных
    CSerie := Series.AddComputingSerie("F1""Базовый ряд (с учётом лага)""X1", EmComputingSerieType.Lag, 1);
    // Выводим его значения
    Debug.WriteLine("Базовый ряд данных (с учётом лага):");
    PrintSerie(CSerie As IEmSerie);
    // Изменяем формулу вычисляемого ряда
    CSerie.BaseName := "";
    CSerie.Name := "F2";
    CSerie.DisplayName := "Увеличенный ряд данных";
    CSerie.Type := EmComputingSerieType.User;
    CSerie.Condition := "X1+6";
    // Выводим его измененные значения
    Debug.WriteLine("Увеличенный базовый ряд данных:");
    PrintSerie(CSerie As IEmSerie);
End Sub CompSerie;

// Процедура вывода значений ряда
Sub PrintSerie(Serie: IEmSerie);
Var
    i: Integer;
Begin
    Debug.Indent;
    If Serie.Count > 0 Then
        For i := 0 To Serie.Count - 1 Do
            Debug.WriteLine(Serie.Item(i));
        End For;
    Else
        Debug.WriteLine("Ряд данных пуст");
    End If;
    Debug.Unindent;
End Sub PrintSerie;

Результат выполнения примера: в исходные данные будет добавлен простой ряд данных, его значения выведены в окно консоли. На основе данного ряда будет создан вычисляемый ряд и его значения будут выведены в окно консоли. Затем формула расчёта вычисляемого ряда будет изменена и его новые значения будут выведены в окно консоли.

Пример Fore.NET

Imports Prognoz.Platform.Interop.Modeller;

Public Shared Sub CompSerie();
Var
    ExprMod: IExpressModeller;
    Ar: Array[6Of Double;
    Series: IEmSeries;
    Serie: IEmSerie;
    CSerie: IEmComputingSerie;
Begin
    ExprMod := New ExpressModeller.Create();
    Ar[0] := 56; Ar[2] := 45; Ar[3] := 23; Ar[4] := 45;
    Ar[1] := Double.Nan; Ar[5] := Double.Nan;
    Series := ExprMod.Series;
    // Добавляем ряд данных
    Serie := Series.Add(Ar, "X1""Базовый ряд");
    // Выводим его значения
    System.Diagnostics.Debug.WriteLine("Базовый ряд данных:");
    PrintSerie(Serie);
    // Добавляем вычисляемый ряд данных
    CSerie := Series.AddComputingSerie("F1""Базовый ряд (с учётом лага)""X1", EmComputingSerieType.cstLag, 1);
    // Выводим его значения
    System.Diagnostics.Debug.WriteLine("Базовый ряд данных (с учётом лага):");
    PrintSerie(CSerie As IEmSerie);
    // Изменяем формулу вычисляемого ряда   
    CSerie.BaseName := "";
    CSerie.Name_2 := "F2";
    CSerie.DisplayName_2 := "Увеличенный ряд данных";
    CSerie.Type := EmComputingSerieType.cstUser;
    CSerie.Condition := "X1+6";
    // Выводим его измененные значения
    System.Diagnostics.Debug.WriteLine("Увеличенный базовый ряд данных:");
    PrintSerie(CSerie As IEmSerie);
End Sub CompSerie;

// Процедура вывода значений ряда
Public Shared Sub PrintSerie(Serie: IEmSerie);
Var
    i: Integer;
Begin
    System.Diagnostics.Debug.Indent();
    If Serie.Count > 0 Then
        For i := 0 To Serie.Count - 1 Do
            System.Diagnostics.Debug.WriteLine(Serie.Item[i]);
        End For;
    Else
        System.Diagnostics.Debug.WriteLine("Ряд данных пуст");
    End If;
    System.Diagnostics.Debug.Unindent();
End Sub PrintSerie;

Результат выполнения примера: в исходные данные будет добавлен простой ряд данных, его значения выведены в окно консоли. На основе данного ряда будет создан вычисляемый ряд и его значения будут выведены в окно консоли. Затем формула расчёта вычисляемого ряда будет изменена и его новые значения будут выведены в окно консоли.

См. также:

IEmSeries