IMDCalculationInstance.GetProcedureText

Синтаксис Fore

GetProcedureText(Args: IMDCalculationCalculateArgs; ProcName: String): String;

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

GetProcedureText(

Args: Prognoz.Platform.Interop.Cubes.IMDCalculationCalculateArgs;

ProcName: String): String;

Параметры

Args. Параметры, в соответствии с которыми будет генерироваться текст процедуры выполнения многомерного расчета на сервере БД.

ProcName. Наименование процедуры, которая будет создаваться на сервере БД при выполнении сгенерированного кода.

Описание

Метод GetProcedureText генерирует текст процедуры, которая может быть использована для запуска выполнения многомерного расчета на сервере БД.

Комментарии

Если в методе указан параметр ProcName, то в текст процедуры также будет включена строка «CREATE PROCEDURE <ProcName> as». При выполнении полученного кода данная строка позволит вместо запуска многомерного расчета, создать на сервере БД процедуру.

Если в многомерном расчете установлена зависимость формул от времени и в аргументе Args указаны параметры DateBegin и DateEnd, то в строку «CREATE PROCEDURE <ProcName> as» также будут добавлены два параметра для указания даты начала и окончания периода. Строка будет иметь следующий вид: «CREATE PROCEDURE <ProcName>(ArgDateBegin in DATE, ArgDateEnd in DATE) as».

Пример Fore

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонента Memo с наименованием «Memo1». В репозитории имеется многомерный расчет на сервере БД с идентификатором «MDCalc_1». В настройках многомерного расчета установлена зависимость формул от времени.

    Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
    Var
        MB: IMetabase;
        MDInst: IMDCalculationInstance;
        CalcArg: IMDCalculationCalculateArgs;
        Text_Proc: String;
    Begin
        MB := MetabaseClass.Active;
        MDInst := MB.ItemById("MDCalc_1").Open(NullAs IMDCalculationInstance;
        CalcArg := MDInst.CreateCalculateArgs;
        CalcArg.CleanType := MDCalculateArgsCleanType.None;
        CalcArg.UpdateType := MDCalculateArgsUpdateType.All;
        CalcArg.DateBegin := DateTime.ComposeDay(200011);
        CalcArg.DateEnd := DateTime.ComposeDay(20101231);
        Text_Proc := MDInst.GetProcedureText(CalcArg, "CalculateProc");
        Memo1.Lines.Add(Text_Proc);
    End Sub Button1OnClick;

После выполнения примера при нажатии на кнопку будет сгенерирован текст процедуры, которая может быть использована для запуска выполнения многомерного расчета на сервере БД. Полученный текст будет выведен в компонент «Memo1». Данный текст будет содержать строку для создания процедуры на сервере БД.

Пример Fore.NET

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонента TextBox с наименованием «TextBox1». В репозитории имеется многомерный расчет на сервере БД с идентификатором «MDCalc_1». В настройках многомерного расчета установлена зависимость формул от времени.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Metabase;

    Private Sub button1_Click( sender : System.Object; e : System.EventArgs );
    Var
        MB: IMetabase;
        MDInst: IMDCalculationInstance;
        CalcArg: IMDCalculationCalculateArgs;
        Text_Proc: System.Collections.Generic.List <String> = New System.Collections.Generic.List <String>();
    Begin
        MB := Self.Metabase;
        MDInst := MB.ItemById["MDCalc_1"].Open(NullAs IMDCalculationInstance;
        CalcArg := MDInst.CreateCalculateArgs();
        CalcArg.CleanType := MDCalculateArgsCleanType.cactNone;
        CalcArg.UpdateType := MDCalculateArgsUpdateType.cautAll;
        CalcArg.DateBegin := DateTime.Parse("1.1.2000");
        CalcArg.DateEnd := DateTime.Parse("1.1.2010");
        Text_Proc.Add(MDInst.GetProcedureText(CalcArg, "CalculateProc"));
        TextBox1.Lines := Text_Proc.ToArray();
    End Sub;

После выполнения примера при нажатии на кнопку будет сгенерирован текст процедуры, которая может быть использована для запуска выполнения многомерного расчета на сервере БД. Полученный текст будет выведен в компонент «TextBox1». Данный текст будет содержать строку для создания процедуры на сервере БД.

См. также:

IMDCalculationInstance