Unplanned
Last Updated: 19 Apr 2024 08:36 by Rolf

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.

  • Center
  • Normal
  • Stretch
  • ScaleProportional

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.

 
In Development
Last Updated: 18 Apr 2024 15:38 by ADMIN
I have a problem with the current version in a Linux container using 2024.1.30 and 18.0.24.305 version of reporting. I only get this when I'm attempting to produce multiple reports at the same time.  It's the same issue regardless of whether it's running as a hosted web service or if I'm running as a server based blazor app.

DockerBlazorApp Error: 0 : An error has occurred while rendering the report: System.InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
   at System.Collections.Generic.Dictionary`2.set_Item(TKey key, TValue value)
   at Telerik.Drawing.SKIA.Text.FontMapper.LoadPrivateFont(SKTypeface typeface, String familyName)
   at Telerik.Drawing.Skia.Graphics.MeasureTextBlock(String text, Single widthConstraint, Single heightConstraint, StringFormatBase stringFormat, IFont font)
   at Telerik.Drawing.Skia.Graphics.MeasureString(String text, IFont font, SizeF layoutArea, StringFormatBase stringFormat, Int32& charactersFitted, Int32& linesFilled)
   at Telerik.Reporting.Processing.WindowsTextMeasureProvider.MeasureString(IGraphics graphics, String text, GdiFontInfo fontInfo, SizeF layoutArea, StringFormatBase stringFormat, Int32& charactersFitted, Int32& linesFilled)
   at Telerik.Reporting.Processing.MeasureContext.MeasureString(String text, IFont font, SizeF layoutArea, TextFormat textFormat, Int32& charactersFitted, Int32& linesFilled)
   at Telerik.Reporting.Processing.TextRenderer.MeasureText(IMeasureContext context, String text, IFont font, RectangleF layoutRectangle, TextFormat textFormat, Boolean multiline, Int32& charactersFitted)
   at Telerik.Reporting.Processing.TextBoxUtil.MeasureTextContainer(ITextContainer textContainer, RectangleF layoutBounds, IMeasureContext context)
   at Telerik.Reporting.Processing.TextBox.MeasureItem(IMeasureContext context, SizeLU availableClientSize, Boolean canGrow)
   at Telerik.Reporting.Processing.TextBox.MeasureItem(IMeasureContext context, SizeLU availableClientSize)
   at Telerik.Reporting.Processing.TextBox.MeasureContent(IMeasureContext context, SizeLU availableClientSize)
   at Telerik.Reporting.Processing.LayoutElement.MeasureCore(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.VisualElement.MeasureCore(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.ProcessingElement.MeasureCore(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.LayoutElement.Measure(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.AbsolutePositionLayout.MeasureChildItems(IMeasureContext context, SizeLU availableClientSize)
   at Telerik.Reporting.Processing.AbsolutePositionLayout.MeasureContent(IMeasureContext context, SizeLU availableClientSize)
   at Telerik.Reporting.Processing.ReportSectionBase.MeasureContent(IMeasureContext context, SizeLU availableClientSize)
   at Telerik.Reporting.Processing.PageSection.MeasureContent(IMeasureContext context, SizeLU availableClientSize)
   at Telerik.Reporting.Processing.LayoutElement.MeasureCore(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.VisualElement.MeasureCore(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.ProcessingElement.MeasureCore(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Processing.LayoutElement.Measure(IMeasureContext context, SizeLU availableSize)
   at Telerik.Reporting.Paging.PageCompositionBase.MeasurePageSection(PageSection section)
   at Telerik.Reporting.Paging.PageCompositionBase.ProcessPageSectionsForPaging()
   at Telerik.Reporting.Paging.PageCompositionBase.MoveToNextPageArea()
   at Telerik.Reporting.Paging.PageCompositionBase.NextVerticalPage()
   at Telerik.Reporting.Paging.PageCompositionBase.CreatePages()
   at Telerik.Reporting.Paging.PagerBase.Telerik.Reporting.Paging.IPager.CreatePages(IPageHandler handler, LayoutElement root)
   at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render(LayoutElement root, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback, PageSettings pageSettings
Completed
Last Updated: 18 Apr 2024 07:52 by ADMIN
Release 2024 Q1

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.

Unplanned
Last Updated: 16 Apr 2024 08:19 by Jonathan
Created by: Jonathan
Comments: 0
Type: Bug Report
1

Password-protected PDF documents generated with Telerik Reporting have blank pages when opened with an iPhone.

Unplanned
Last Updated: 11 Apr 2024 07:01 by Stavros

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.

Under Review
Last Updated: 05 Apr 2024 08:39 by ADMIN

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.

Unplanned
Last Updated: 03 Apr 2024 13:49 by Ludek

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.

Unplanned
Last Updated: 03 Apr 2024 11:28 by Gursharan

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>

Unplanned
Last Updated: 29 Mar 2024 10:20 by Ronald

The Preview button of the HTML5 Report Viewer is not styled appropriately when using Kendo SASS themes:

In Development
Last Updated: 28 Mar 2024 15:07 by ADMIN
Scheduled for 2024 Q2

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. 

Unplanned
Last Updated: 27 Mar 2024 13:08 by ADMIN
The result from the PageExec function is null when rendering the report in XLS and XLSX format from the Html5 Viewer and the Standalone designer.
Unplanned
Last Updated: 27 Mar 2024 08:49 by Muhammad

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

Completed
Last Updated: 19 Mar 2024 16:14 by ADMIN
Release 2024 Q2
Telerik.Reporting.Pdf.Fonts.TrueType.FontProgram.GenerateSubSet throws NullReferenceException when exporting to PDF with Skia. The problem occurs when trying to resolve OpenType(.otf) font, and FontEmbedding is set to "Subset". The bug occurs for both installed and private fonts.
 
Recommended workarounds are to set FontEmbedding option to "Full" or to use TrueType fonts.
Unplanned
Last Updated: 15 Mar 2024 10:37 by Joby

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.

Unplanned
Last Updated: 14 Mar 2024 09:26 by Philip

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.

Unplanned
Last Updated: 13 Mar 2024 12:59 by Chris

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.

Completed
Last Updated: 12 Mar 2024 17:22 by ADMIN
Release 2024 Q2
Tetelik Reporting uses SKFontManager.Default.MatchTypeface to resolve private fonts. This works fine on Windows, but crashes when run on Linux (Ubuntu 22.04) with the default Skia graphics engine.
 
The issue is a known problem for Skia and Skiasharp.

It looks like the function MatchTypeface is deprecated and was removed with this Skiasharp PR.
Completed
Last Updated: 12 Mar 2024 17:19 by ADMIN
Release 2024 Q2

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.

 
Declined
Last Updated: 11 Mar 2024 12:23 by ADMIN
Created by: Thanh
Comments: 2
Type: Bug Report
1

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 }" />

1 2 3 4 5 6