#.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.