Action: String;
The Action property determines the action to be executed when a hyperlink is activated.
Action | Property value example |
Open file | "C:\Image.jpg" The specified file will be opened. |
Open link | "http://www.example.com" The specified address will be opened. |
Open report sheet | "=Sheet2" Moving to the specified report sheet will be executed. |
Show cell range | "=a0:b3;d0:f3" Positioning on the specified range will be executed. |
Show object in the centre of the screen | "#Sheet2!PrxChart1" Positioning on a chart on the second report sheet will be executed. |
Open repository object | "@Dim" An object with the Dim identifier will be opened. |
Open repository object with sending parameters | "@Dim(STRING=a;INT=1;FLOAT=0.01;DATE=09.02.2021 00:00:00)" An object with the Dim identifier and specified parameters will be opened. Object parameters are sent in round brackets as follows: <parameter identifier>=<parameter value >, and are separated with a semicolon. A parameter value may take single and multiple values. A multiple value is specified in square brackets as an array: "@Dim(STRING=[q,e];INT=[1,2];FLOAT=[0.01,0.02];DATE=[09.02.2021 00:00:00,10.02.2021 00:00:00])" |
Run procedure/function | Depending on the file where the macro is implemented the path to the macro in this property is specified in the different ways:
JS-function and Fore function can be specified in macro together. JS-function will be executed only on viewing the web application, and Fore function will be executed on viewing the Foresight Analytics Platform desktop application:
JS-function signature: function <Function name>(custom parameters, args) { … } The example of function: function testHyperlink(type, args) { debugger; console.log(type); console.log(args); } When a hyperlink is used, data entry forms may return parameters as arguments may be returned:
The example of function used in a data entry form: function addAttachmentsTB(row, col, args) { var rep = args.Report var da = args.DataArea var grid = da.getGridView(); var tabSheet = grid.getTabSheet(); var tabSheetRange = tabSheet.getCell(row, col); attachFile(da, tabSheetRange); } In the units and forms of the repository user macros should be implemented in the Global Scope of names. |
This example is supposed to have the Report object of the IPrxReport type.
Add links to the Report, Tab system assemblies.
Sub UserProc;
Var
Rep: IPrxReport;
Tab: ITabSheet;
Range: ITabRange;
Hyperlink: ITabHyperlink;
Begin
Tab := Rep.ActiveSheet.Table;
Range := Tab.Cell(0, 0);
Hyperlink := Range.Style.Hyperlink;
Hyperlink.Action := "=Sheet2";
Hyperlink.Enable := TriState.OnOption;
Hyperlink.SeparateLinkText := TriState.OnOption;
Hyperlink.Text := "Go to Sheet2";
End Sub UserProc;
As a result, the A0 cell of the regular report a hyperlink with the text "Go to Sheet2" will be created, clicking on which will result in going to "Sheet2".
See also: