reporting support for .net core 2

2 posts, 0 answers
  1. ahmed
    ahmed avatar
    4 posts
    Member since:
    Aug 2018

    Posted 19 Aug Link to this post

    I am trying to run a report in a web application .net core 2 

    I have followed the HTML5 Report Viewer in ASP.NET Core 2 Article with no success

    I have added the below controller.

    namespace schoolAppCore.Controllers
    {
       [Route("api/reports")]
        public class ReportsController : Controller
        {
     
     
            string reportsPath = string.Empty;
     
            public ReportServiceConfiguration ReportServiceConfiguration { get; }
     
            public ReportsController(IHostingEnvironment environment)
            {
                this.reportsPath = Path.Combine(environment.WebRootPath, "Report1.trdp");
     
                this.ReportServiceConfiguration = new ReportServiceConfiguration
                {
                    HostAppId = "schoolAppCore",
                    Storage = new FileStorage(),
                    ReportResolver = new ReportTypeResolver()
                                        .AddFallbackResolver(new ReportFileResolver(this.reportsPath)),
                };
            }
     
            [HttpGet("reportlist")]
            public IEnumerable<string> GetReports()
            {
                return Directory
                    .GetFiles(this.reportsPath)
                    .Select(path =>
                        Path.GetFileName(path));
            }
     
     
        }
     
    }

     and also I have added a controller named to run the View as  following:

    public class TelerikController : Controller
        {
    public IActionResult viewreport()
            {
                return View("reportViewer");
            }
         

     

    finally the Report view itself as following:

    <html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
        <title></title>
        <script src="~/lib/jquery/dist/jquery.min.js"></script>
         
        <link href="~/styles/kendo.common.min.css" rel="stylesheet" />
        <link href="~/styles/kendo.blueopal.min.css" rel="stylesheet" />
     
        <script src="~/lib/Kendo/telerikReportViewer.kendo-12.1.18.620.min.js"></script>
        <script src="~/lib/Kendo/telerikReportViewer-12.1.18.620.min.js"></script>
     
        <style>
            #reportViewer1 {
                position: absolute;
                left: 5px;
                right: 5px;
                top: 50px;
                bottom: 5px;
                overflow: hidden;
                font-family: Verdana, Arial;
            }
        </style>
     
    </head>
    <body>
        <div id="reportViewer1">
            loading...
        </div>
     
        <script>
            $(document).ready(function () {
                $("#reportViewer1")
                    .telerik_ReportViewer({
                        serviceUrl: "api/reports/",
                        //"resources/templates/telerikReportViewerTemplate.html"
     
                        reportSource: {
                            // report: "Telerik.Reporting.Examples.CSharp.ReportCatalog, CSharp.ReportLibrary",
                            report: "Report1.trdp",
     
                            parameters: {}
                        },
                        viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
                        scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
                        scale: 1.0,
                    });
            });
        </script>
    </body>
    </html>

     

    I am getting the below error 

    jquery.min.js:4 GET https://localhost:44332/telerik/api/reports/resources/templates/telerikReportViewerTemplate-html 404 ()

     

    and also (viewreport:1 Uncaught (in promise) undefined)

    can some one help in getting this run in core 2 Application 

     


  2. Todor
    Admin
    Todor avatar
    175 posts

    Posted 22 Aug Link to this post

    Hello ahmed,

    We have already addressed your questions in the support ticket you opened on the same topic.
    For the benefit of our community I will summarize the answers also here :

    The HTML5 Report Viewer is a pure HTML5/JavaScript/CSS3 jQuery-based widget that allows displaying Telerik Reporting reports in an HTML page. It can be added in any application, and does *not* require .NET framework.

    On the other hand, Telerik Reporting engine relies on the GDI+ API that is available only in the full .NET framework, hence it should be built against the latter.
    Note that the REST Service where the Reporting engine runs can be set up in a separate project built with the .NET framework, whereas the viewer can be hosted in a .NET Core application targeting .NET Core.

    With the installation of Telerik Reporting we distribute CSharp|VB.Asp.NetCoreDemo example project that can be found in CSharp|VB.ReportExamples.VS2017.sln solution in (Telerik Reporting installation folder)\Examples\CSharp|VB (e.g. C:\Program Files (x86)\Progress\Telerik Reporting R2 2018\Examples\CSharp). You can compare the settings of your project with those of the demo and try to adjust them accordingly.

    Note that the ReportsController must reside in a project targeting the full .NET Framework and must inherit Telerik.Reporting.Services.AspNetCore.ReportsControllerBase.

    Regards,
    Todor
    Progress Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top