Currently, when using External Stylesheets in the reports, the engine tries to first load the stylesheet as an embedded resource of the assembly. If it fails to load it from the assembly, a message is written to the trace along the lines of:
ESS: Attempt to load ExternalStyleSheet from EmbeddedResource from assembly Telerik.Reporting, Version=19.0.25.211 with resource name styles.xml is unsuccessful.
After this, the engine will try other ways to resolve the stylesheet such as from URI and if it succeeds, the report will render as expected.
This can create confusion because looking at the trace, one might think that there were errors with the rendering of the report because the stylesheet did not load but it was actually successfully loaded with one of the other approaches.
It would be better to write the errors to the trace only if the stylesheet does not load after all attempts.
Currently, when you set SplitWorksheetOnPageBreak to True, the Excel Sheet name is formed from the DocumentName or ReportName and the number of the page.
It would be very helpful if the report authors can manipulate these names with Expressions.
I have a .NET project. I tried to add a CS-based report to it using the Visual Studio item template. However, when I opened it, I encountered an error message, which wasn't helpful.
After reaching out to the technical support, I was told that the Visual Studio Report Designer was not supported in .NET projects, and the alternative was either to open the CS-based report through the Standalone Report Designer or use TRDP reports (recommended for new reports) instead.
It would be nice if there were some warning about this, as it would save me some time and confusion, as at first, when I encountered the error message, I took the assumption that something was corrupted with my project.
When the current thread culture is set to Turkish (tr-TR), the lowercase and uppercase conversion rules differ from English — especially for the letter "i".
In Turkish:
"i".ToUpper() → İ (with a dot)
"I".ToLower() → ı (dotless i)
Our assumption that the Telerik HtmlTextBox internally parses and maps HTML tags by converting them to uppercase. When the Turkish culture is active, this conversion causes tag names to break, which is not a valid tag, so ordered lists fail to render.
Best regards,
Denis
WebReportDesigner (Blazor) - permission to restrict "Build new data connections" and allow to use only "Select from existing data connections".
It isn't required, but would be nice have button "Test connection" in the bottom enabled to verify predefined connection
In the latest Reporting version, the interface of the report viewer allows users to set the value of a multiselect report parameter to an empty collection but not make it null.
In some scenarios, reports rely on parameters being null to filter their data and this makes them unusable in the latest version.
Images taken with a mobile device are sometimes displayed in PictureBox rotated by 90, 180 or 270 degrees. The reason is that whenever a photo is taken, the device saves its current accelerometer orientation into a corresponding Exif tag with the image metadata, so this info is then read and taken into account by our Report Designer.
ADA Accessibility is a priority for our customers, so we are aiming to ensure logical tabbing order for keyboard users.
I've noticed that the RowHeadersPrintOnEveryPage attribute, while very useful for creating more readable PDF exports, seems to result in some strange screen reader behavior when set to True.
The first problem is with the strange tabbing order in the live environment. The second column header is the first to receive focus, followed by the remaining column headers, then the data fields under the first column receive focus in a vertical list, until finally the first column header receives focus. Without the default RowHeadersPrintOnEveryPage setting (False), the first column header is the first to receive focus, which is expected.
In addition to the wrong tabbing order, the RowHeaderPrintOnEveryPage causes the screen reader to announce the incorrect column associated with a particular cell. I use the Windows Narrator. Other screen readers may result in slightly different behavior.
Currently, the is permission for disabling saving, but it disables only the "Save" button.
I would like to be able to disable the "Save As" button and keep the "Save" button active, or vice-versa.
When I open a tab that includes the Angular report viewer and close it immediately after, before the viewer can be properly initialized, the following error will be thrown:
core.js:7744 ERROR Error: Uncaught (in promise): TypeError: perspectiveManager.dispose is not a function
TypeError: perspectiveManager.dispose is not a function
at Object.dispose (telerikReportViewer.js:8447:30)
at TelerikReportViewerComponent.ngOnDestroy (telerik-report-viewer.component.js:61:27)
at executeOnDestroys (core.js:6118:1)
at cleanUpView (core.js:6021:1)
at destroyViewTree (core.js:5847:1)
at destroyLView (core.js:5999:1)
at RootViewRef.destroy (core.js:22750:1)
at ComponentRef$1.destroy (core.js:25284:1)
at RouterOutlet.deactivate (router.js:5577:1)
at ActivateRoutes.deactivateRouteAndOutlet (router.js:2101:1)
at resolvePromise (zone.js:1211:1)
at resolvePromise (zone.js:1165:1)
at zone.js:1278:1
at _ZoneDelegate.invokeTask (zone.js:406:1)
at Object.onInvokeTask (core.js:28767:1)
at _ZoneDelegate.invokeTask (zone.js:405:1)
at Zone.runTask (zone.js:178:1)
at drainMicroTaskQueue (zone.js:585:1)
at ZoneTask.invokeTask [as invoke] (zone.js:491:1)
at invokeTask (zone.js:1661:1)
This is related to Ticket ID 1699907.
Currently, the WinForm report viewer fetches configuration (specifically the connection string for any named connection strings defined in reports) directly from appsettings.json, however, it would be useful if the report viewer could take into account an injected IConfiguration since there are scenarios where the configuration may not exist in appsettings.json or a preferred or more up to date user selected value has been added to the configuration from a different source (such as a userSettings.json or secrets.json).
Some background of my use case:
I have a desktop WinForms application targeting .NET 8.0. It usesTelerik.Reporting 19.2.25.813 and Telerik.ReportViewer.WinForms 19.2.25.813 to display reports.Steps To Reproduce:
Expected behavior: The function is executed
Actual behavior: A message saying "Operation could destabilize the runtime." is shown.
I have projects on .NET Core and I want to use the System.Text.Json serializer that is the new default, but reporting relies on Newtonsoft.Json.
---
ADMIN EDIT
There are two approaches that can be taken right now to solve this:
OPTION 1: define separate endpoints (services, projects) for the different tasks - they can still use the same database layer through a shared project, depending on the architecture you have. This would let you have separated services with the appropriate serializers without custom attributes and code (see below). For example, create a separate project for the reporting REST services.
OPTION 2: add some custom decoration on the endpoints so you can choose which serializer is used on each, you can find some examples here: https://stackoverflow.com/questions/59650907/how-to-configure-two-json-serializers-and-select-the-correct-one-based-on-the-ro - the point being to register a serializer depending on the endpoint based on your own code rather than let the framework put one in for all endpoints.
NOTE: This would be a breaking change.
---
Currently, the only way to set ObjectDataSource parameters as nullable is by typing this manually in the `DataType` property as follows:
Consider allowing to do this through the "Edit Parameters" dialog:
I use an approved government font for the reports. I have specified it in the `privateFonts` option of the report engine configuration. However, on Linux, it is not picked up during rendering. In FontForge, the font shows the following warning:
On Windows, it causes no issues.