Переход на скрытый лист по гиперссылке

Вопрос

Как настроить переход на скрытые листы через гиперссылку?

Область применения

С листов регламентного отчета можно настроить гиперссылку для перехода на скрытый лист.

Исходные данные

Создайте регламентный отчет, в котором содержатся:

Решение

Для настройки гиперссылки необходимо выполнить действия:

  1. Создайте модуль с идентификатором «HIDING_SHEET» для отображения скрытого листа. Добавьте системную сборку Report:

Sub UserProc;
Var Rep: IPrxReport;
   Sheet: IPrxSheet;
    Name: String;
Begin
    Rep := PrxReport.ActiveReport;
    Sheet := Rep.Sheets.FindByName("Лист2");
    Sheet.Visible := True;
    Rep.ActiveSheet := Sheet;
End Sub UserProc;

  1. Добавьте созданный модуль к отчету.

  2. Добавьте текст с гиперссылкой для выполнения процедуры/функции. Выберите модуль, подключенный ранее к отчёту.

  3. Создайте обработчик событий в модуле Fore.

  4. Задайте для события OnBeforeActivateSheet скрытие отображенного листа:

Public Sub OnBeforeActivateSheet(OldSheet: IPrxSheet; NewSheet: IPrxSheet; Var Cancel: Boolean);
Var Rep: IPrxReport;
    Sheet: IPrxSheet;
   Name: String;
Begin
    Rep := PrxReport.ActiveReport;
    If Rep.ActiveSheet.Name = "Лист2" Then
       Sheet := Rep.Sheets.FindByName("Лист2");
       Sheet.Visible := False;
    End If;
End Sub OnBeforeActivateSheet;

В регламентном отчете появится возможность перехода на скрытый лист по гиперссылке без возможности его отображения при смене листа.

Примечание. В веб-приложение передаются настройки гиперссылки из настольного приложения.

См. также:

Вопросы и ответы | Скрытие листа