Начиная с версии FastReport.NET 2013.4, появилась возможность использовать закладки для просмотра нескольких отчетов в WebReport.
Закладки могут быть полезны при просмотре отчетов, информация в которых взаимно дополняет друг друга. Отчеты в каждой из закладок имеют свою собственную навигацию и могут быть привязаны каждый к своему источнику данных. Сохранение в различные форматы выполняется для каждой закладки индивидуально.
В следующей версии FastReport.NET планируется реализация открытия детализированного отчета в отдельной закладке по клику на объекте страницы. Также будет добавлена возможность закрытия ненужных закладок.
Закладки можно добавить непосредственно в коде приложения, например:
WebReport webReport = new WebReport(); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Simple List.frx"); webReport.CurrentTab.Name = "Simple List"; // tab 2 Report report2 = new Report(); report2.RegisterData(dataSet, "NorthWind"); report2.Load(report_path + "Labels.frx"); webReport.AddTab(report2, "Labels"); // tab 3 Report report3 = new Report(); report3.RegisterData(dataSet, "NorthWind"); report3.Load(report_path + "Master-Detail.frx"); webReport.AddTab(report3, "Master-Detail");
Cвойство webReport.CurrentTab позволяет обратиться к активной закладке, например: webReport.CurrentTab.Report. По умолчанию доступна первая закладка. В каждой из закладок доступны свойства: Report – объект отчета, Name – наименование закладки. Если свойство Name не указано, то наименование закладки будет взято из свойств отчета или его имени файла.
Также доступна коллекция закладок webReport.Tabs, которую можно использовать для обращения к закладке по её индексу, например: webReport.Tabs[0].Name.
Метод webReport.AddTab добавляет новую закладку. Для данного метода доступны следующие варианты вызова:
// добавление объекта отчета report public ReportTab AddTab(Report report); // добавление объекта отчета report с именем name public ReportTab AddTab(Report report, string name); // добавление объекта отчета report с возможностью указания, что отчет уже построен (reportDone = true) public ReportTab AddTab(Report report, string name, bool reportDone);
Последний метод позволяет добавлять уже построенные отчеты. Во всех остальных случаях отчет будет построен при обращении к объекту.
Пример добавления построенных отчетов:
webReport.Tabs.Clear(); string s = this.Server.MapPath("~/App_Data/Prepared.fpx"); // first Report firstReport = new Report(); firstReport.LoadPrepared(s); webReport.AddTab(firstReport, "First tab", true); // second Report secondReport = new Report(); secondReport.LoadPrepared(s); webReport.AddTab(secondReport, "Second tab", true);
В дальнейшем планируется добавление настроек отображения закладок и, как я уже писал, реализация интерактивных отчетов.
Пример работы закладок в нашем онлайн демо.
Спасибо за внимание!