Добрый день!
Возможен ли вариант отчета, в котором клиент сам выбирает, какие поля должны быть в таблице. Например, для контрагента/-ов пользователь выбирает в таблице должны отображаться полное название, контактное лицо и адрес контрагента, и в отчете в таблице отображаются лишь эти поля именно в этом порядке. Если это реально, то в какую сторону вообще копать, чтобы организовать подобную гибкость?
Нравится
Здравствуйте, Константин!
В коробочной версии такой вариант не предусмотрен.
Сделать подобную функциональность можно попробовать программно при помощи механизма вертикальных бэндов. Алгоритм следующий:
1. Создаем окно фильтрации для отчета.
2. Окно динамически фильтруется в зависимости от выбранной таблицы;
3. В отчете формируются столбцы в зависимости от информации, переданной окном фильтрации.
Хочу предпредить, что данная реализация может быть трудоемкой, и в том числе придется решать вопрос дизайна: слишком большое количество столбцов, выбранных в окне фильтрации, может оказаться нечитабельным.
Спасибо, Анна, за вариант решения задачи, но при этом сразу появляются еще вопросы:
- для того, чтобы получить названия колонок таблицы, нужно обращаться к tbl_Service, но при этом вся xml-информация хранится в виде набора символов в 16тиричной системе. Есть ли функции конвертации в читабельный вид и парсинга xml?
- каким образом в самом FastReport организовать связь и вывод информации из датасетов, если они формируются динамически из создаваемых в скрипте SelectQuery?
"Constantine" написал:для того, чтобы получить названия колонок таблицы, нужно обращаться к tbl_Service, но при этом вся xml-информация хранится в виде набора символов в 16тиричной системе. Есть ли функции конвертации в читабельный вид и парсинга xml?
Константин, получить запрос в читабельном виде можно по заголовку (USI) запроса следующей конструкцией:
var Query = Services.GetSingleItemByUSI('sq_Query');
В результате Вы получите структурированный объект запроса, где можно будет посмотреть, например, колонки запроса, фильтры, SQL-текст запроса и другое:
каким образом в самом FastReport организовать связь и вывод информации из датасетов, если они формируются динамически из создаваемых в скрипте SelectQuery?
Если формирование датасетов происходит до вывода отчета FastReport, тогда датасеты будут подтягиваться автоматически.
Для вывода колоннок в отчет необходимо будет написать соответствующий программный код на Delphi во вкладке Code компонента Fast Report.
реализация подобной функциональности рассмотрена по следующей ссылке: http://www.fast-report.com/ru/documentation/frhelp/postroen_otcheta_kod…
Полезная ссылка по теме: http://www.community.terrasoft.ua/forum/topic/1630