Якоря

       Якорь (anchor) – один из элементов системы гиперссылок, которая позволяет при щелчке на объекте готового отчета (в окне предварительного просмотра) перейти на элемент, связанный с этим объектом.

 

       Якорь – это специальная метка, которая устанавливается методом Engine.AddAnchor. Якорь имеет имя, и ему соответствует номер страницы и позиция на странице. Перейти на якорь с указанным именем можно, поместив в свойство URL любого объекта отчета строку вида:

 

#ИмяЯкоря

или

#[ИмяЯкоря]

 

       В последнем случае, при построении отчета FastReport раскроет выражение, находящееся в квадратных скобках.

 

       При щелчке на этом объекте произойдет переход на то место отчета, где был добавлен якорь.

 

       Якоря удобно использовать при построении раздела "Содержание" со ссылками на соответствующие разделы. Покажем, как это делается, на небольшом примере. Для этого нам понадобится уже знакомая таблица Customer.db.

 

       Наш отчет будет двухстраничным (имеется в виду – две страницы в режиме дизайнера). На первой странице мы разместим раздел "Содержание", на второй – собственно список клиентов. При щелчке на строке содержания будет осуществлен переход на соответствующий элемент отчета.

 

Первая страница:

 

clip0188

 

       В свойство URL объекта "Текст", который лежит на дата-бэнде, поместим строку:

 

#[Customers."Company"]

 

и установим свойства шрифта – синий цвет и подчеркивание, чтобы имитировать внешний вид гиперссылки.

 

Вторая страница:

 

 

       Чтобы добавить якорь, в скрипте бэнда MasterData2.OnBeforePrint напишем:

 

PascalScript:

 

procedure MasterData2OnBeforePrint(Sender: TfrxComponent);

begin

Engine.AddAnchor(<Customers."Company">);

end;

 

C++ Script:

 

void MasterData2OnBeforePrint(TfrxComponent Sender)

{

Engine.AddAnchor(<Customers."Company">);

}

 

       Вот и все, что нужно. Запустив отчет, убедимся, что наши "гиперссылки" работают.

 

       Последнее, что можно упомянуть, это функция Engine.GetAnchorPage. Эта функция возвращает номер страницы, на которой был добавлен соответствующий якорь. Эта функция так же полезна для создания раздела "Содержание". Для ее использования отчет должен быть двухпроходным.