When you change a parameter, the parameter controls will be disabled while it fetches the data and then enabled again when the data returns, which is correct.
If you have a parameter with AvailableValues, the parameters will be disabled while it fetches the data but then never get enabled if the report has no data. You have to click the refresh or back button to enable them again.
Figure 1 report is generated using the data source in figure 2. Data in column "Value2" is mapped to the column Text in the generated report.
In the below-generated report, text in row one "Default CUS for CDV" is truncated. A feature to make the user know there is more data to be shown will be great.
Figure 1
Figure 2
So, Adding an option to display an indicator such as “...” for truncated strings so that the viewers get to know there is more information to be displayed
Or
Provide an option to absolute break (display until last possible character) of the string rather than word-wrapping if there’s more content than the text box width.
Generated PDFs do not have bookmarks in R2 2021 unless there is a TOC section in the report.
By setting the device info setting "ProcessItemActions", the generated PDFs have bookmarks again.
var reportProcessor = new Telerik.Reporting.Processing.ReportProcessor();
var reportSource = new Telerik.Reporting.UriReportSource();
reportSource.Uri = "some Uri";
var deviceInfo = new System.Collections.Hashtable();
deviceInfo["ProcessItemActions"] = true;
reportProcessor.RenderReport("PDF", reportSource, deviceInfo);
Cannot provide a valid design-time value for multivalue report parameter and thus cannot preview the data and check whether the query is returning anything. When using a multivalue report parameter of type Int, you may get the following error:
Failed to convert parameter value from a String to a Int32
This does not in any way affect the runtime behavior of the report and if the query is correct, the data is retrieved at runtime, and the report loads as expected.
I followed How to set up in Blazor application | Telerik Reporting
All done! But when it run i got an error "telerikWebReportDesignerInterop.js 404"
<script src="_content/telerik.webreportdesigner.blazor/telerikWebReportDesignerInterop.js" defer></script>and in console show:
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'Gyr8E4g_PwQHf7G2UKY2h3obMpujPfFp2x9i7dkB4oQ'.
Microsoft.JSInterop.JSException: Could not find 'telerikWebReportDesignerInterop.createWebReportDesignerWidget' ('telerikWebReportDesignerInterop' was undefined).
Error: Could not find 'telerikWebReportDesignerInterop.createWebReportDesignerWidget' ('telerikWebReportDesignerInterop' was undefined).
at https://localhost:5001/_framework/blazor.server.js:1:67713
at Array.forEach (<anonymous>)
at e.findFunction (https://localhost:5001/_framework/blazor.server.js:1:67673)
at v (https://localhost:5001/_framework/blazor.server.js:1:69415)
at https://localhost:5001/_framework/blazor.server.js:1:70361
at new Promise (<anonymous>)
at e.beginInvokeJSFromDotNet (https://localhost:5001/_framework/blazor.server.js:1:70334)
at https://localhost:5001/_framework/blazor.server.js:1:26441
at Array.forEach (<anonymous>)
at e.invokeClientMethod (https://localhost:5001/_framework/blazor.server.js:1:26411)
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle)Telerik Reporting 15.1.21.616
<PackageReference Include="Telerik.Reporting.Services.AspNetCore" Version="15.1.21.616" />
<PackageReference Include="Telerik.Reporting.OpenXmlRendering" Version="15.1.21.616" />
<PackageReference Include="Telerik.ReportViewer.Blazor" Version="15.1.21.616" />
<PackageReference Include="Telerik.WebReportDesigner.Blazor" Version="15.1.21.616" />
<PackageReference Include="Telerik.WebReportDesigner.Services" Version="15.1.21.616" />Startup.cs
namespace CSharp.Net5.BlazorIntegrationDemo
{
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
using System;
using Telerik.Reporting.Cache.File;
using Telerik.Reporting.Services;
using Telerik.WebReportDesigner.Services;
public class Startup
{
public Startup(IConfiguration configuration)
{
this.Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddRazorPages()
.AddNewtonsoftJson();
services.AddServerSideBlazor();
// Configure dependencies for ReportsController.
services.TryAddSingleton<IReportServiceConfiguration>(sp =>
new ReportServiceConfiguration
{
ReportingEngineConfiguration = sp.GetService<IConfiguration>(),
HostAppId = "Net5BlazorDemo",
Storage = new FileStorage(),
ReportSourceResolver = new UriReportSourceResolver(System.IO.Path.Combine(sp.GetService<IWebHostEnvironment>().ContentRootPath, "..", "..", "..", "..", "Report Designer", "Examples")),
});
// Configure dependencies for ReportDesignerController.
services.TryAddSingleton<IReportDesignerServiceConfiguration>(sp => new ReportDesignerServiceConfiguration
{
DefinitionStorage = new FileDefinitionStorage(
System.IO.Path.Combine(sp.GetService<IWebHostEnvironment>().ContentRootPath, "..", "..", "..", "..", "Report Designer", "Examples")),
SettingsStorage = new FileSettingsStorage(
System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Telerik Reporting")),
ResourceStorage = new ResourceStorage(
System.IO.Path.Combine(sp.GetService<IWebHostEnvironment>().ContentRootPath, "..", "..", "..", "..", "Report Designer", "Examples", "Resources"))
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
}
/// <summary>
/// Loads a reporting configuration from a specific JSON-based configuration file.
/// </summary>
/// <param name="environment">The current web hosting environment used to obtain the content root path</param>
/// <returns>IConfiguration instance used to initialize the Reporting engine</returns>
static IConfiguration ResolveSpecificReportingConfiguration(IWebHostEnvironment environment)
{
// If a specific configuration needs to be passed to the reporting engine, add it through a new IConfiguration instance.
var reportingConfigFileName = System.IO.Path.Combine(environment.ContentRootPath, "reportingAppSettings.json");
return new ConfigurationBuilder()
.AddJsonFile(reportingConfigFileName, true)
.Build();
}
}
}
WebReportDesignerDemo.razor
@page "/webreportdesigner"
@using Telerik.WebReportDesigner.Blazor
<style>
#wrd1 {
position: relative;
height: 880px;
padding-right: 50px;
}
</style>
@* Create the WebReportDesignerWidget *@
<p>This Web Report Designer instance works with reports hosted locally using the Reporting REST service. For more information, visit the <a target="_blank" href="https://docs.telerik.com/reporting/web-report-designer">Web Report Designer</a> article.</p>
<WebReportDesigner DesignerId="wrd1"
ServiceUrl="/api/reportdesigner"
Report="Dashboard.trdp"
ToolboxArea="new ToolboxAreaOptions() { Layout = ToolboxAreaLayout.List }"
PropertiesArea="new PropertiesAreaOptions() { Layout = PropertiesAreaLayout.Categorized }" />I've noticed an issue with the web service data source configuration window when using jQuery version 3.5.1 or higher.
When you use the click on the Web Service Data Source from the left side menu it will open the configuration window in which Responding encoding and Data selector fields will be there for the jQuery version 3.3.1.
Now try the same steps with the 3.5.1 jQuery version or higher and those 2 fields won't be there.