The RTF rendering automatically switches to the Tables rendering mode whenever a Crosstab/Table/List is detected in a report. This rendering mode throws an exception whenever the report contains PictureBox with one of the following sizing options.
The RTF export should work with all PictureBox sizing options regardless of the rendering mode.
To work around the issue currently, one can either force the rendering engine to use the Frames rendering mode using the RenderingMode device information property or set the Sizing property of all picture boxes in the report to AutoSize.
Currently, the Map's TileProvider UrlTemplate property may be set only to a hard-coded string. It would be very useful to be configurable as an Expression to allow for dynamic values.
Password-protected PDF documents generated with Telerik Reporting have blank pages when opened with an iPhone.
When I deploy the Angular HTML5 Report Viewer demo on Docker and build for production I receive the next error:
main.fa32b7794d384513.js:1 Uncaught Error: Invalid template:'<td class="#=data.cssClass#" role="gridcell"><a tabindex="-1" class="k-link" href="\#" data-#=data.ns#value="#=data.dateString#">#=data.value#</a></td>' Generated code:'var $kendoOutput, $kendoHtmlEncode = kendo.htmlEncode;$kendoOutput='<td class="'+(data.cssClass)+'" role="gridcell"><a tabindex="-1" class="k-link" href="#" data-'+(data.ns)+'value="'+(data.dateString)+'">'+(data.value)+'</a></td>';return $kendoOutput;'
at Object.compile (main.fa32b7794d384513.js:1:269410)
at main.fa32b7794d384513.js:1:565164
at Object.dt (main.fa32b7794d384513.js:1:598166)
at 961 (main.fa32b7794d384513.js:1:1411020)
at n (runtime.142728358b17fb3f.js:1:128)
at 735 (main.fa32b7794d384513.js:1:117899)
at n (runtime.142728358b17fb3f.js:1:128)
at 158 (main.fa32b7794d384513.js:1:110372)
at n (runtime.142728358b17fb3f.js:1:128)
at main.fa32b7794d384513.js:1:1503100
When I remove the viewer from the project the problem disappears.
With the same 'Dockerfile' and 'nginx.conf' the Native Angular Report Viewer works as expected.
Using the November 2023 Report Designer, when a resize a Panel and then press Ctrl-Z to undo the resize, all objects within the Panel are lost.
I was able to confirm this by saving as a second copy and then comparing the XML between them.
To preview/export localized reports in different languages, I change the thread's current culture in the report viewer's ExportBegin/RenderingBegin events and reset it back to the original culture in the ExportEnd/RenderingEnd events.
This approach works well in .NET Framework projects but in .NET Core projects, the culture is not reset properly.
Changing the culture in the events of the desktop report viewers should work both in .NET Framework and .NET Core projects.
The Upgrade Wizard for Visual Studio backs up all files, including those in the '.vs' folder. In Visual Studio 2017 this may cause errors when upgrading due to the locked file 'db.lock':
System.IO.IOException: The process cannot access the file 'C:\Users\reportingagentuser\Desktop\reportlibrary1\ReportLibrary1\.vs\ReportLibrary1\v15\Server\sqlite3\db.lock' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
at Telerik.Reporting.UpgradeWizard.Engine.Services.BackupService.BackupDirectory(String directoryName)
at Telerik.Reporting.UpgradeWizard.Engine.Services.BackupService.BackupDirectory(String directoryName)
at Telerik.Reporting.UpgradeWizard.Engine.Services.BackupService.BackupDirectory(String directoryName)
at Telerik.Reporting.UpgradeWizard.Engine.Services.BackupService.BackupDirectory(String directoryName)
at Telerik.Reporting.UpgradeWizard.Engine.Services.BackupService.BackupDirectory(String directoryName)
at Telerik.Reporting.UpgradeWizard.Engine.Services.BackupService.BackupDirectory(String directoryName)
at Telerik.Reporting.UpgradeWizard.Engine.ProjectItem.BackupInternal()
at Telerik.Reporting.UpgradeWizard.Engine.UpgradeItem.Backup()</event>
The Preview button of the HTML5 Report Viewer is not styled appropriately when using Kendo SASS themes:
When the input data of a pie chart is such that some of the series are insignificant enough not to be drawn on the surface area, a DocumentRenderException with the message "The operation was canceled" is thrown by the Reporting engine.
Enlarging the pie chart or hiding/removing its data point labels clears the error.
.NET applications do not support rendering extensions like the XPS and MHTML rendering but the Reporting engine attempts to resolve them in such applications regardless.
There should be no attempts to resolve unsupported rendering extensions in .NET applications.
Dear Telerik
Please see thread on Report does not bring byte[] image through to PictureBox when rendered programmatically. | View Ticket | Your Account (telerik.com)
KR
David
I use HTML content like the below in an HtmlTextBox:
<a style="color: red" href="some link here">some text</a>
The color is not respected when I export to PPTX. The output color of the generated link is always the default blue. In the rest of the formats that support hyperlinks, the color is correct.
I tried to wrap the <a> tag also with <p> and <span> with the same color setting, to no avail.
I am using the Blazor Web Report Designer widget which when initialized, loads its theme based on the @progress/kendo-theme-default - npm (npmjs.com) theme and overrides the styles in my Blazor application. There is no way to disable the loading of the designer's theme and the application looks inconsistent as a result.
When the reporting service fails to generate a report document, the Get Document Info request returns a 500 response with the error message thrown from within the reporting engine. However, instead of displaying the error message in the viewport, the Native Blazor Report Viewer displays a message falsely suggesting that the report is still being rendered when the rendering has, in fact, failed.
After installing the latest version, the WebServiceDataSource wizard does not send query parameters.
When the report is previewed, the WebServiceDataSource performs the request correct and the expected result is returned.
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 }" />