IDmForecasting.ForecastingMethod

Syntax

ForecastingMethod: DmForecastingMethod;

Description

The ForecastingMethod property returns the method used for value forecasting.

Comments

To determine the number of forecasting periods, use the IDmForecasting.ForecastingPointsCount property.

Example

Executing the example requires that the repository contains:

Add links to the Dimensions, Metabase, Ms, Report, Stat, Tab system assemblies.

Sub UserF;
Var
    mb: IMetabase;
    ReportDS: IDmReportDataSource;
    TableDS: IDmTableDataSource;
    Method: IDmMethod;
    Report: IPrxReport;
    Shs: IPrxSheets;
    Sheet: ITabSheet;
    DM: IDmForecasting;
    i: Integer;
    Attrs: Array Of Integer;
    Reports: IDmReports;
    DmReport: IDmReport;
Begin
    mb := MetabaseClass.Active;
    // Create calculation method
    Method := (New DataMiningMethod.Create) As IDmMethod;
    // Specify method type
    Method.Kind := DmMethodKind.ExponentialSmoothing;
    // Create table data source
    TableDS := (New TableDataSource.Create) As IDmTableDataSource;
    // Determine source table
    TableDS.Table := mb.ItemByID("DM_TABLE").Bind;
    // Set input data source
    Method.InputDataSource := TableDS;
    // Create a data source that is a regular report
    ReportDS := (New ReportDataSource.Create) As IDmReportDataSource;
    // Set data consumer
    Method.OutputDataSource := ReportDS;
    // Set up calculation method parameters
    DM := Method.Details As IDmForecasting;
    // Set factors that influence analysis
    Attrs := New Integer[3];
    For i := 0 To 2 Do
        Attrs[i] := i + 1;
    End For;
    DM.Attributes := Attrs;
    If DM.ForecastingMethod = DmForecastingMethod.ExponentialSmoothing Then
        Debug.WriteLine("Exponential smoothing");
        // Set number of forecasting periods
        DM.ForecastingPointsCount := 20;
        // Determine calendar frequency
        DM.Level := DimCalendarLevel.Year;
        // Set data field containing labels for X axis
        DM.Labels := 0;
        // Add strings for forecasting results
        ReportDS.AddResultRows(20);
    End If;
    // Perform analysis and output results
    Reports := Method.Execute;
    DmReport := reports.FindByType(DmReportType.Forecasting);
    ReportDS := DmReport.Generate;
    ReportDS.TabSheet.View.Selection.SelectAll;
    ReportDS.TabSheet.View.Selection.Copy;
    // Get regular report, to which results will be loaded
    Report := mb.ItemByID("DM_REPORT_RES").Edit As IPrxReport;
    Shs := Report.Sheets;
    Shs.Clear;
    Sheet := (Shs.Add("", PrxSheetType.Table) As IPrxTable).TabSheet;
    Sheet.Table.Paste;
    Sheet.Columns(01).AdjustWidth;
    Sheet.Rows(01).AdjustHeight;
    Report.Sheets.Item(0).Name := ReportDS.Caption;
    // Save loaded data
    (Report As IMetabaseObject).Save;
End Sub UserF;

After executing the example, values forecasting will be executed for data from the DM_TABLE table using exponential smoothing. Analysis results will be loaded to the DM_REPORT_RES report.

See also:

IDmForecasting