Использование отчётов для организации универсального поиска
Материал из BiTel WiKi
В отчётах имеется возможность использовать перекрёстные ссылки для открытия объектов биллинга. Это можно применить для некоего "универсального поиска". Метод работает как для Jasper-отчётов, так и для табличных отчётов, только по-разному.
Jasper-отчёты
Ссылка на форуме: Универсальный поиск договоров? Готово.
Как сделать универсальный поиск договоров и с любыми фильтрами и с любыми столбцами результата:
1) Делаем отчёт в модуле отчётов.
2) ???
3) PROFIT
Подробности (про это будет в доке):
В отчёте имеется возможность использовать гиперссылки. Это позволяет из одного отчёта быстро открывать другие связанные отчёты или разные сущности системы, например, договоры. Итак, можно использовать отчёты как пресловутый "универсальный поиск", а именно: формируем любые фильтры и логику поиска, связываем строки результата с отрываемыми договорами и всё -- можно получить список договоров по любому критерию с возможностью открыть нужный. На данный момент поддерживаются следующие типы ссылок:
- bgbilling:reports://bitel.billing.module.services.reports.BGReportsPanel?param1=value1¶m2=value2&... для открытия любого другого отчёта. Для этого нужно знать соответствующие параметры метода Report модуля reports (код отчёта итд).
- bgbilling:reports://bitel.billing.module.contract.ContractEditor?<cid> для открытия вкладки с соответствующим договором.
Для упомянутой цели, как видно, нужен второй пункт.
Подсказка подробнее:
В свой отчёт в нужное поле (например, куда выводите заголовок договора) вставляете гиперссылку вида[code]bgbilling:reports://bitel.billing.module.contract.ContractEditor? + <cid договора для этой строки>[/code]Появляется на заголовке договора гиперссылка, которая открывает вкладку договора.
И еще надо выбрать из списка hyperlinkType = "Reference".
Табличные отчёты
При клике на строки таблицы могут выполняться некоторые действия в зависимости от содержимого таблицы и содержимого в каждой строке. В данный момент имеются следующие возможности:
- Если в таблице присутствует столбец с заголовком cid (или же невидимый #cid, что одно и то же), то при клике на строку откроется соответствующий содержимому столбца cid договор. Как и в случае с jasper-отчётами это можно использовать для организации произвольного поиска договоров.