Интерактивные отчеты позволяют определить в отчёте действие, которое произойдет при щелчке мыши на каком-нибудь объекте отчета в окне предварительного просмотра. В предыдущих версиях FastReport существовало несколько способов сделать отчет интерактивным.
Например, самый универсальный способ - это создать обработчик события OnClick. Этот обработчик может быть двух типов:
Сделать отчет интерактивным в FastReport можно и без написания кода. Например, можно использовать "разворачиваемые" группы. У заголовка группы есть свойство DrillDown. Включение этого свойства позволяет сделать группу интерактивной. Это означает, что группа будет реагировать на щелчок мышью в окне предварительного просмотра. Щелкнув мышью на заголовке группы, ее можно развернуть (показать все ее записи) или свернуть (скрыть все ее записи), оставив только заголовок и, при необходимости, подвал.
В FastReport VCL 5 был добавлен еще один способ управления интерактивностью отчетов без написания кода - объекту TfrxView добавили свойство Hyperlink: TfrxHyperlink (далее "гиперссылка"). Это свойство пришло на смену свойству TfrxView.URL из FastReport 4 и расширило его возможности.
У TfrxHyperlink есть два основных свойства - Kind и Value, и несколько вспомогательных - ValuesSeparator, ReportVariable, Expression, DetailPage, DetailReport.
Свойство Kind - это вид гиперссылки. Оно имеет тип TfrxHyperlinkKind и может принимать следующие значения:
Свойство Value содержит значение, которое используется для перехода по клику на гиперссылку. Например, в нём можно указать имя якоря при Kind=hkAnchor, строку для запуска в ShellExecute при Kind=hkURL, номер страницы при Kind=hkPageNumber. Его значение может заполняться динамически с помощью формулы заданной в свойстве Expression.
Свойство DetailPage содержит название страницы в текущем шаблоне. При Kind= hkDetailPage по клику на гиперссылку в диалоге предварительного просмотра открывается дополнительная закладка в которую загружается часть отчета, которая сформирована на основании страницы шаблона, имя которой указано в свойстве DetailPage.
Свойство DetailReport содержит название шаблона в формате FastReport. При Kind=hkDetailReport по клику на гиперссылку в диалоге предварительного просмотра открывается дополнительная закладка, в которую загружается отчет сформированный по шаблону, указанному в свойстве DetailReport. При этом если в дополнительном отчете есть переменная с именем, указанным в свойстве ReportVariable, то ей присваивается значение свойства Value.
Выше я писал, что свойство Hyperlink пришло на смену свойству URL, но свойство URL тоже можно использовать. Теперь изменение из скрипта свойства URL приведет к изменению свойств Kind и Value у Hyperlink по следующим правилам:
Как мы видим, свойство Hyperlink в FastReport VCL 5 позволяет в предварительном просмотре с минимальными настройками управлять реакцией на щелчок мыши по объектам. Это свойство существенно расширило возможности создания интерактивных отчетов в FastReport и упростило этот процесс.
Например, самый универсальный способ - это создать обработчик события OnClick. Этот обработчик может быть двух типов:
- глобальный - обработчик события для всех объектов отчета TfrxReport.OnClickObject: TfrxClickObjectEvent;
- локальный - обработчик события для отдельного объекта отчета TfrxReportComponent. OnPreviewClick: TfrxPreviewClickEvent.
Сделать отчет интерактивным в FastReport можно и без написания кода. Например, можно использовать "разворачиваемые" группы. У заголовка группы есть свойство DrillDown. Включение этого свойства позволяет сделать группу интерактивной. Это означает, что группа будет реагировать на щелчок мышью в окне предварительного просмотра. Щелкнув мышью на заголовке группы, ее можно развернуть (показать все ее записи) или свернуть (скрыть все ее записи), оставив только заголовок и, при необходимости, подвал.
В FastReport VCL 5 был добавлен еще один способ управления интерактивностью отчетов без написания кода - объекту TfrxView добавили свойство Hyperlink: TfrxHyperlink (далее "гиперссылка"). Это свойство пришло на смену свойству TfrxView.URL из FastReport 4 и расширило его возможности.
У TfrxHyperlink есть два основных свойства - Kind и Value, и несколько вспомогательных - ValuesSeparator, ReportVariable, Expression, DetailPage, DetailReport.
Свойство Kind - это вид гиперссылки. Оно имеет тип TfrxHyperlinkKind и может принимать следующие значения:
- hkURL - строка для запуска в ShellExecute (ссылка на сайт, документ, программу...);
- hkAnchor - якорь (специальная именная метка, по которой определяется номер страницы и позиция на странице для перехода по гиперссылке; ее, например, удобно использовать для создания страницы с содержанием отчета);
- hkPageNumber - номер страницы;
- hkDetailPage - дополнительные страницы отчета (например, скрытая страница шаблона с детальным отчетом);
- hkDetailReport - дополнительный отчет;
- hkCustom - свойство Hyperlink игнорируется (например, если необходимо обработать только OnPreviewClick).
Свойство Value содержит значение, которое используется для перехода по клику на гиперссылку. Например, в нём можно указать имя якоря при Kind=hkAnchor, строку для запуска в ShellExecute при Kind=hkURL, номер страницы при Kind=hkPageNumber. Его значение может заполняться динамически с помощью формулы заданной в свойстве Expression.
Свойство DetailPage содержит название страницы в текущем шаблоне. При Kind= hkDetailPage по клику на гиперссылку в диалоге предварительного просмотра открывается дополнительная закладка в которую загружается часть отчета, которая сформирована на основании страницы шаблона, имя которой указано в свойстве DetailPage.
Свойство DetailReport содержит название шаблона в формате FastReport. При Kind=hkDetailReport по клику на гиперссылку в диалоге предварительного просмотра открывается дополнительная закладка, в которую загружается отчет сформированный по шаблону, указанному в свойстве DetailReport. При этом если в дополнительном отчете есть переменная с именем, указанным в свойстве ReportVariable, то ей присваивается значение свойства Value.
Выше я писал, что свойство Hyperlink пришло на смену свойству URL, но свойство URL тоже можно использовать. Теперь изменение из скрипта свойства URL приведет к изменению свойств Kind и Value у Hyperlink по следующим правилам:
- если первый символ свойства URL = '#', то в гиперссылке будет якорь;
- если первый символ свойства URL = '@', то в гиперссылке будет номер страницы;
- иначе в гиперссылке будет строка для запуска в ShellExecute.
Как мы видим, свойство Hyperlink в FastReport VCL 5 позволяет в предварительном просмотре с минимальными настройками управлять реакцией на щелчок мыши по объектам. Это свойство существенно расширило возможности создания интерактивных отчетов в FastReport и упростило этот процесс.
Круто! Спасибо )
ОтветитьУдалитьА вот у меня на работе у наших менеджеров продукта FR Preview mode совсем игнорируется. FR отчёты делаются только для печати. На интерактивность и всяческие плюшки режима предпросмотра кладётся с прибором. Даже оглавление для больших отчётов никто не делает.
ОтветитьУдалить