Param: IMetabaseObjectParam;
The Param property determines the current object parameter, which values will be sent to calculation algorithm parameter.
The parameter should be created based on a repository dictionary.
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 IO, Metabase, and Report system assemblies.
Sub UserProc;
Var
Mb: IMetabase;
Report: IPrxReport;
UserBtn: IPrxUserButton;
AlgAction: IPrxUserButtonActionAlgorithm;
AlgParam: IPrxAlgorithmParam;
ParamControl: IPrxAlgorithmReportParamControl;
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\Images\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 := PrxAlgorithmParamType.ReportParam;
ParamControl := AlgParam.Control As IPrxAlgorithmReportParamControl;
ParamControl.Param := Report.MetabaseObject.Params.FindById("ITEM1");
ParamControl.AttributeId := "KEY";
ParamControl.SelectionType := PrxAlgorithmParamSelectionType.First;
// 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. Value of the KEY attribute of the first element selected in the regular report parameter will be sent to calculation algorithm parameter.
See also: