Отчеты Telerik — не удается получить параметры отчета

#.net-core #report #telerik-reporting

#.net-core #Сообщить #telerik-отчетность

Вопрос:

У меня есть приложение .net core, в котором у меня есть отчет Telerik, который имеет два параметра

введите описание изображения здесь

и у меня есть код, подобный этому

 $("#summaryReport").click(function () {
                var viewer = $("#reportViewer1").data("telerik_ReportViewer");
                viewer.reportSource({
                    report: "Sumaren.trdp",
                    parameters: {}
                });
                viewer.refreshReport();
            });


            $("#reportViewer1")
                .telerik_ReportViewer({

                    serviceUrl: "api/reports/",

                    //ReportSource - report description
                    reportSource: {
                        // The report can be set to a report file name (trdx report definition)
                        // or CLR type name (report class definition).
                    },

                    viewMode: telerikReportViewer.ViewModes.INTERACTIVE,

                    scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,

                    scale: 1.0,
                    enableAccessibility: true,

                    ready: function () {
                        this.refreshReport();
                    },
                });
 

Я продолжаю получать ошибку Unable to get report parameters. Report 'ReportName' cannot be resolved.
Должен ли я что-то делать с параметрами в reportSource ? Я думаю, что когда вы добавляете параметры через конструктор отчетов Telerik, не добавляйте ничего reportSource , кроме имени отчета.Дизайнер Telerik отлично просматривает отчет, работает так, как и должно быть, но когда я запускаю приложение, оно просто продолжает повторять это
введите описание изображения здесь

Ответ №1:

Я немного опаздываю на вечеринку, но постараюсь ответить — может быть, это было бы полезно для кого-то еще. Поскольку вы не используете абсолютный путь к отчету при настройке viewer.ReportSource, механизм будет искать его в папке, указанной в ReportServiceConfiguration . Эта конфигурация должна быть зарегистрирована где-то в вашем классе Startup.cs, где добавляются зависимости для ReportsController. Это должно выглядеть примерно так:

 services.TryAddSingleton<IReportServiceConfiguration>(sp =>
new ReportServiceConfiguration
{
    ReportingEngineConfiguration = ConfigurationHelper.ResolveConfiguration(sp.GetService<IWebHostEnvironment>()),
    HostAppId = "ReportingCore3App",
    Storage = new FileStorage(),
    ReportSourceResolver = new UriReportSourceResolver(
        System.IO.Path.Combine(sp.GetService<IWebHostEnvironment>().ContentRootPath, "Reports"))
});
 

Значение, присвоенное ReportSourceResolver, указывает, как будут разрешены отчеты. В этом случае он будет искать отчеты в папке root Reports, где root — это корневая папка вашего приложения .NET Core.