AutoPeriodDates(Calculation: IMsMethodCalculation;
Coord: IMsFormulaTransformCoord;
Var AutoStartDate: DateTime;
Var AutoEndDate: DateTime);
AutoPeriodDates(Calculation: Prognoz.Platform.Interop.Ms.IMsMethodCalculation;
Coord: Prognoz.Platform.Interop.Ms.IMsFormulaTransformCoord;
var AutoStartDate: System.DateTime;
var AutoEndDate: System.DateTime);
Calculation. Settings that are necessary on model calculation.
Coord. Coordinate parameters in the variable, by which calculation is executed.
AutoStartDate. Period start date.
AutoEndDate. Period end date.
The AutoPeriodDates method returns period limits if conditions to calculate period start and end dates are used.
The AutoStartDate and AutoEndDate parameters must be variables. After executing the method they will contain results.
Executing the example requires that the repository contains a modeling container with the MS identifier containing a model with the MODEL_FREEDIM identifier.
Add links to the Metabase, Ms system assemblies.
Sub UserProc;
Var
mb: IMetabase;
DescrCM: IMetabaseObjectDescriptor;
pModel: IMsModel;
trans: IMsFormulaTransform;
coo: IMsFormulaTransformCoord;
calc: IMsMethodCalculation;
Period: IMsModelPeriod;
OutputPeriod: IMsDatePeriod;
StDate, EndDate: DateTime;
Begin
// Get model
mb := MetabaseClass.Active;
DescrCM := mb.ItemById("MS");
pModel := mb.ItemByIdNamespace("MODEL_FREEDIM", DescrCM.Key).Edit As IMsModel;
// Set calculation parameters
trans := pModel.Transform;
coo := trans.CreateCoord(trans.Outputs.Item(0));
calc := trans.CreateCalculation;
// Set calculation periods
Period := pModel.Transform.Period;
calc.Period.IdentificationStartDate := Period.IdentificationStartDate;
calc.Period.IdentificationEndDate := Period.IdentificationEndDate;
calc.Period.ForecastStartDate := Period.ForecastStartDate;
calc.Period.ForecastEndDate := Period.ForecastEndDate;
calc.CurrentPoint := Period.IdentificationStartDate;
OutputPeriod := trans.OutputPeriod As IMsDatePeriod;
// Clear parameters of data unloading period
OutputPeriod.ClearPeriod;
// Set autoperiod parameters: data unloading period is determined by current date
OutputPeriod.AutoPeriod := MsDateAutoPeriodOptions.StartAsNow Or MsDateAutoPeriodOptions.EndAsNow;
// Set moving of start and end dates for data unloading period
OutputPeriod.StartOffset := 1;
OutputPeriod.EndOffset := 2;
// Get and display in the console period start and end dates of data loading
OutputPeriod.AutoPeriodDates(calc, coo, StDate, EndDate);
Debug.WriteLine("Data uploading start: " + StDate.ToString);
Debug.WriteLine("Data unloading end: " + EndDate.ToString);
// Save changes
(pModel As IMetabaseObject).Save;
End Sub UserProc;
After executing the example data calculation and unloading periods will be set for the model. Data unloading period will be set using conditions, period actual dates will be displayed in the console.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
DescrCM: IMetabaseObjectDescriptor;
pModel: IMsModel;
trans: IMsFormulaTransform;
coo: IMsFormulaTransformCoord;
calc: IMsMethodCalculation;
Period: IMsModelPeriod;
OutputPeriod: IMsDatePeriod;
StDate, EndDate: DateTime;
Begin
// Get model
mb := Params.Metabase;
DescrCM := mb.ItemById["MS"];
pModel := mb.ItemByIdNamespace["MODEL_FREEDIM", DescrCM.Key].Edit() As IMsModel;
// Set calculation parameters
trans := pModel.Transform;
coo := trans.CreateCoord(trans.Outputs.Item[0]);
calc := trans.CreateCalculation;
// Set calculation periods
Period := pModel.Transform.Period;
calc.Period.IdentificationStartDate := Period.IdentificationStartDate;
calc.Period.IdentificationEndDate := Period.IdentificationEndDate;
calc.Period.ForecastStartDate := Period.ForecastStartDate;
calc.Period.ForecastEndDate := Period.ForecastEndDate;
calc.CurrentPoint := Period.IdentificationStartDate;
OutputPeriod := trans.OutputPeriod As IMsDatePeriod;
// Clear parameters of data unloading period
OutputPeriod.ClearPeriod();
// Set autoperiod parameters: data unloading period is determined by current date
OutputPeriod.AutoPeriod := MsDateAutoPeriodOptions.msdapoStartAsNow Or MsDateAutoPeriodOptions.msdapoEndAsNow;
// Set moving of start and end dates for data unloading period
OutputPeriod.StartOffset := 1;
OutputPeriod.EndOffset := 2;
// Get and display in the console period start and end dates of data loading
OutputPeriod.AutoPeriodDates(calc, coo, Var StDate, Var EndDate);
System.Diagnostics.Debug.WriteLine("Data unloading start: " + StDate.ToString);
System.Diagnostics.Debug.WriteLine("Data unloading end: " + EndDate.ToString());
// Save changes
(pModel As IMetabaseObject).Save();
End Sub;
See also: