In our Bold Reports new assemblies are introduced for both client and server-side to resolve the compatibility problem between Essential Studio Report Viewer versions. It has changes in both Web API service and client-side scripts.
This section provides step-by-step instructions for migrating Report Viewer from Syncfusion Essential Studio release version to Bold Reports version of ASP.NET MVC Report Viewer application:
In the Solution Explorer, right-click the References and remove the following assembly references:
Syncfusion.EJ
Syncfusion.EJ.MVC
Add the assembly from the Syncfusion NuGet package BoldReports.Mvc5
. To add from NuGet, right-click the project or solution in the Solution Explorer tab, and choose Manage NuGet Packages. Search for BoldReports.Mvc5
NuGet package, and install in your application.
Refer to the NuGet Packages section to learn more details about installing and configuring Report Viewer NuGet packages.
Remove the following scripts and CSS references from the Report Viewer \Views\Shared\_Layout.cshtml
page:
ej.web.all.min.css
ej.web.all.min.js
ej.unobtrusive.min.js
The Report Viewer scripts and style sheets are added to the Scripts
and Content
folders in your application when installing the BoldReports.Mvc5
NuGet package. Add scripts as in the following code sample.
@Styles.Render("~/content/bold-reports/v2.0/tailwind-light/bold.report-viewer.min.css")
<!-- Report Viewer component dependent script -->
@Scripts.Render("~/Scripts/bold-reports/v2.0/common/bold.reports.common.min.js")
@Scripts.Render("~/Scripts/bold-reports/v2.0/common/bold.reports.widgets.min.js")
<!-- Report Viewer component script-->
@Scripts.Render("~/Scripts/bold-reports/v2.0/bold.report-viewer.min.js")
Open the the ~/Views/Shared/_Layout.cshtml
page and replace the script manager tag at the end of <body>
element from @(Html.EJ().ScriptManager())
to @(Html.Bold().ScriptManager())
as in the following code sample.
<body>
....
....
<!-- Bold Report Viewer ScriptManager -->
@Html.Bold().ScriptManager()
</body>
To render the report with data visualization components such as chart, gauge, and map items, add scripts of the visualization element. The following table shows the script reference that needs to be added in Report Viewer page for data visualization elements.
Visualization item | Script file |
---|---|
Gauge, Map, Chart | bold.reports.common.min.js |
The following code can be used to render the chart, gauge, and map report items in Report Viewer.
@Styles.Render("~/content/bold-reports/v2.0/tailwind-light/bold.report-viewer.min.css")
<!-- Report Viewer component dependent script -->
@Scripts.Render("~/Scripts/bold-reports/v2.0/common/bold.reports.common.min.js")
@Scripts.Render("~/Scripts/bold-reports/v2.0/common/bold.reports.widgets.min.js")
<!-- Report Viewer component script-->
@Scripts.Render("~/Scripts/bold-reports/v2.0/bold.report-viewer.min.js")
The component prefix has been changed from EJ()
to SF()
.
Open the ~/Views/Web.config
file and add the BoldReports.Mvc
assembly reference to the <system.web.webPages.razor>
element.
<configuration>
....
....
<system.web.webPages.razor>
....
....
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
....
....
<add namespace="BoldReports.Mvc"/>
</namespaces>
</pages>
</system.web.webPages.razor>
....
....
</configuration>
Set the value of UnobtrusiveJavaScriptEnabled
to false in Root directory web.config
file as demonstrated in the following code example.
<configuration>
<appSettings>
......
......
<add key="UnobtrusiveJavaScriptEnabled" value="false" />
</appSettings>
......
......
</configuration>
Open the Report Viewer page in Index.cshtml
page.
Replace the component tag Html.EJ().ReportViewer("viewer")
with Html.Bold().ReportViewer("viewer")
.
<div style="min-height:600px">
@(Html.Bold().ReportViewer("viewer"))
</div>
Syncfusion.EJ.ReportViewer
assembly reference.BoldReports.Web
. To add from NuGet, right-click the project or solution in the Solution Explorer tab, and choose Manage NuGet Packages. Search for BoldReports.Web
NuGet package, and then install in your application.Refer to the NuGet Packages section to learn more details about installing and configuring Report Viewer NuGet packages.
The IReportController
interface is moved to BoldReports.Web.ReportViewer
. Open the Report Viewer Web API Controller file and remove the following using statement.
using Syncfusion.EJ.ReportViewer;
Add the following using statement.
using BoldReports.Web.ReportViewer;
Your application is successfully upgraded to the latest version of Report Viewer, and you can run the application with new assemblies.
Now, the BoldReports.Web
can export the reports with data visualization components only using web components. It is mandatory to configure the web scripts in Report Viewer Web API controller for exporting data visualization components such as chart, gauge, and map that are used in report definition. To configure the scripts in Web API, refer to the following steps:
Open the Report Viewer Web API controller.
Configure the following scripts and styles in OnInitReportOptions
on Web API controller:
bold.report-viewer.min.css
jquery.min.js
bold.reports.common.min.js
bold.reports.widgets.min.js
bold.report-viewer.min.js
Replace the following codes in Report Viewer Web API controller.
[NonAction]
public void OnInitReportOptions(ReportViewerOptions reportOption)
{
var resourcesPath = System.Web.Hosting.HostingEnvironment.MapPath("~/Scripts");
reportOption.ReportModel.ExportResources.Scripts = new List<string>
{
resourcesPath + @"\bold-reports\v2.0\common\bold.reports.common.min.js",
resourcesPath + @"\bold-reports\v2.0\common\bold.reports.widgets.min.js",
//Report Viewer Component Script
resourcesPath + @"\bold-reports\v2.0\bold.report-viewer.min.js"
};
reportOption.ReportModel.ExportResources.DependentScripts = new List<string>
{
"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"
};
}
The data visulization components will not export without the above script configurations.