Action: String;
Свойство Action определяет действие, производимое при срабатывании гиперссылки.
Действие | Пример значения свойства |
Открытие файла | "C:\Image.jpg"
Будет открыт указанный файл. |
Открытие ссылки | "http://www.example.com"
Будет открыт указанный адрес. |
Открытие листа отчета | "=Лист2"
Будет осуществлен переход на заданный лист отчета. |
Отображение диапазона ячеек | "=a0:b3;d0:f3"
Будет осуществлено позиционирование на указанном диапазоне. |
Отображение объекта в центре экрана | "#Лист2!PrxChart1"
Будет осуществлено позиционирование на диаграмме, которая расположена на втором листе отчета. |
Открытие объекта репозитория | "@Dim"
Будет открыт объект с идентификатором «Dim». |
Открытие объекта репозитория с передачей параметров | "@Dim(STRING=a;INT=1;FLOAT=0.01;DATE=09.02.2021 00:00:00)"
Будет открыт объект с идентификатором «Dim» и указанными параметрами. Параметры объекта передаются в круглых скобках в виде конструкции <идентификатор параметра>=<значение параметра> и отделяются друг от друга точкой с запятой. Значение параметра может принимать единичное и множественное значение. Множественное значение указывается в квадратных скобках в виде массива: "@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])" |
Выполнение процедуры/функции | В зависимости от того где находится реализация макроса, различается
способ указания пути к макросу в данном свойстве:
В макросе могут быть одновременно указаны JS-функция и Fore-функция. При этом JS-функция будет выполнятся только при просмотре в веб-приложении, а Fore-функция только при просмотре в настольном приложении «Форсайт. Аналитическая платформа»:
Сигнатура js-функции: function <Наименование функции>(пользовательские параметры, args) { … } Пример функции: function testHyperlink(type, args) { debugger; console.log(type); console.log(args); } При использовании гиперссылки в формах ввода в качестве аргументов могут приходить параметры:
Пример функции при использовании в форме ввода: 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); } В модулях/формах репозитория реализация пользовательских макросов должна производиться в глобальном пространстве имен (Global Scope). |
В рассматриваемом примере предполагается существование объекта Report типа IPrxReport.
Добавьте ссылки на системные сборки: Report, Tab.
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 := "=Лист2";
Hyperlink.Enable := TriState.OnOption;
Hyperlink.SeparateLinkText := TriState.OnOption;
Hyperlink.Text := "Перейти на Лист2";
End Sub UserProc;
После выполнения примера в ячейке «А0» регламентного отчета будет создана гиперссылка с текстом «Перейти на Лист2», при нажатии на которую будет осуществляться переход на «Лист2».
См. также: