IPrxUserButtonActionAlgorithm.Algorithm

Syntax

Algorithm: IMetabaseObjectDescriptor;

Description

The Algorithm property determines description of the algorithm that will be calculated.

Example

Executing the example requires that the repository contains a regular report with the REPORT identifier and a calculation algorithm with the ALGORITHM identifier. The algorithm and the regular report contain a parameter based on the same repository dictionary.

The file system should contain the button image file D:\Work\Image\btn16x16.png.

Add links to the Express, IO, Metabase and Report system assemblies.

Sub UserProc;
Var
    Mb: IMetabase;
    Report: IPrxReport;
    UserBtn: IPrxUserButton;
    AlgAction: IPrxUserButtonActionAlgorithm;
    AlgParam: IAlgorithmParam;
    ElementKeys: Array;
Begin
    Mb := MetabaseClass.Active;
    Report := Mb.ItemById("REPORT").Edit As IPrxReport;
    // Create a new custom button
    UserBtn := Report.UserButtons.AddByType(PrxUserButtonType.Algorithm);
    UserBtn.Name := "Start algorithm";
    // Set up custom button
    UserBtn.Icon := New FileStream.Create("D:\Work\Image\btn16x16.png", FileOpenMode.Read, FileShare.DenyNone);
    UserBtn.IconType := "png";
    UserBtn.SmallIcon := False;
    // Set up actions
    AlgAction := UserBtn.Action As IPrxUserButtonActionAlgorithm;
    AlgAction.Algorithm := Mb.ItemById("ALGORITHM");
    AlgParam := AlgAction.Params.Item(0);
    AlgParam.Type := AlgorithmParamType.Constant;
    ElementKeys := New Variant[2];
    ElementKeys[0] := 1;
    ElementKeys[1] := 2;
    (AlgParam.Control As IAlgorithmConstantParamControl).ConstantValue := ElementKeys;
    // Save changes
    (Report As IMetabaseObject).Save;
End Sub UserProc;

After executing the example a new custom button is created in the regular report. Name and image are set for the button. Algorithm calculation is selected as a custom button action. A constant value that is a selection of two elements with the specified keys will be sent to calculation algorithm parameter.

See also:

IPrxUserButtonActionAlgorithm