Even though I set "parametersAreaVisible" to false, the parameter area is still visible. A bit of tweaking.
Let me make a change request in the telerikReportViewer-18.3.24.1112.js file:
function showParametersAreaIfNecessary(params) {
parametersAreaNecessary = hasVisibleParameters(params) || !controller.isReportAutoRun();
showParametersArea(parametersAreaVisible && parametersAreaNecessary);
}
For example, if I set the accent color to be "Navy blue", the quick access toolbar's icons will be pretty much invisible:
The report parameters selection options cannot be navigated through by the keyboard.
The select all and clear selection options can be accessed through the TAB but individual values are not focusable.
The DateTime picker of the DateTime parameters cannot be opened with the keyboard as well.
Inside telerik designer for reports actually if you wish to use an RGBA color, you would need to manually write it.
And generally color choise / picking its a little old style.
-> Would be nice to modernize the UI for color management and implement a COLOR PICKER.
Currently, to customize the report engine, for example to add some custom user functions, we have to either use the app config or provide a IConfiguration to ReportProcessor constructor, which seems to set a static field for all reports, and on top of that we have to provide a whole assembly (which will load ALL non-private static methods, I did try to use typereferences instead of assemblyReferences, but that doesn't seem to work for custom functions).
Meanwhile all we needed was to expose a handful of functions. Our current workaround is to have a whole assembly dedicated to that.
It'd good to be able to:
- Specify either a single class or individual methods through the library API (e.g. reportProcessor.AddCustomFunction("name", (arg) => ...); or reportProcessor.AddCustomFunctions(typeof(MyCustomFunctions);)
- Avoid using static state (it limits how the library can be used and, more importantly, tested)
- Maybe have a way to provide a Service Provider, that Telerik library would use to create services/classes and pull IConfiguration from, especially those we provide, that way the custom functions could use services from our application, rather than using all static methods.
Thank you,
<Telerik.ReportViewer.BlazorNative.ReportViewer
@ref="reportViewer"
ServiceType="ReportViewerServiceType.REST"
PageMode="PageMode.SinglePage"
ServiceUrl="@(ServiceUrl)"
@bind-ReportSource="@ReportSource"
AuthenticationToken="@(AuthToken)"
ScaleMode="(ScaleMode)ReportSetItem.Report.ScaleMode"
@bind-ParametersAreaVisible="@ParametersAreaVisible"
Scale="1.5">
</Telerik.ReportViewer.BlazorNative.ReportViewer>
The variable, ParametersAreaVisible, is set to false. The report viewer is still showing the parameters area. I went back to the designer and set all parameters to Visible = false. When I did this, the parameters area is not displayed.
The report viewer should respect what is bound to ParametersAreaVisible.
I'm using Angular 15 LTS
core.mjs:8400 ERROR Error: Uncaught (in promise): TypeError: perspectiveManager.dispose is not a function
TypeError: perspectiveManager.dispose is not a function
at Object.dispose (telerikReportViewer.js:8692:32)
at TelerikReportViewerComponent.ngOnDestroy (telerik-report-viewer.component.js:60:27)
at executeOnDestroys (core.mjs:5976:32)
at cleanUpView (core.mjs:5886:9)
at destroyViewTree (core.mjs:5712:21)
at destroyLView (core.mjs:5864:9)
at RootViewRef.destroy (core.mjs:11804:9)
at ComponentRef.destroy (core.mjs:12226:23)
at RouterOutlet.deactivate (router.mjs:2624:28)
at ActivateRoutes.deactivateRouteAndOutlet (router.mjs:2999:32)
at Object.dispose (telerikReportViewer.js:8692:32)
at TelerikReportViewerComponent.ngOnDestroy (telerik-report-viewer.component.js:60:27)
at executeOnDestroys (core.mjs:5976:32)
at cleanUpView (core.mjs:5886:9)
at destroyViewTree (core.mjs:5712:21)
at destroyLView (core.mjs:5864:9)
at RootViewRef.destroy (core.mjs:11804:9)
at ComponentRef.destroy (core.mjs:12226:23)
at RouterOutlet.deactivate (router.mjs:2624:28)
at ActivateRoutes.deactivateRouteAndOutlet (router.mjs:2999:32)
at resolvePromise (zone.js:1255:35)
at resolvePromise (zone.js:1209:21)
at zone.js:1322:21
at _ZoneDelegate.invokeTask (zone.js:450:35)
at Object.onInvokeTask (core.mjs:24197:33)
at _ZoneDelegate.invokeTask (zone.js:449:64)
at Zone.runTask (zone.js:218:51)
at drainMicroTaskQueue (zone.js:639:39)
at ZoneTask.invokeTask [as invoke] (zone.js:536:25)
at invokeTask (zone.js:1710:22)
This needs to be fixed ASAP, it's causing isues when the report page is being destroyed.
The HTML5 Report Viewer uses inline templates which may require enabling the unsafe-eval CSP policy.
The viewer should migrate to using CSP templates as shown in Getting Started with Content Security Policy (CSP) Templates - Kendo UI Templates - Kendo UI for jQuery.
My connection string contains spaces:
Data Source=(local)\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=SSPI
When I use the functionality 'Build new data connection', the designer throws the following exception:
I use as background color of a TextBox light green (128,255,128). It appears as expected in all renderings except XLS (old Excel 97-2003). In XLS the color is grey (128,128,128).
I observe the same issue when modifying the RGB numbers in some boundaries - the color in XLS is always grey. There are RGB values rendered as expected though.
The issue reproduces with TRDP and CS reports in the corresponding Report Designers.
I export the same TRDP report that embeds a Bitmap image on Windows with GDI and on Linux Docker Container.
The result PDF file from the Linux environment is much bigger than the one generated on Windows.
If I use an HTML5-based Report Viewer with the default CONTINUOUS_SCROLL page mode and I start scrolling to the next page, the Get Document Page request is made multiple times for the same page.
If I move to the next page via the toolbar buttons or if I use the SINGLE_PAGE page mode, then problem is not reproduced.
Hello,
when i set Visible=false for some columns in a table, there is a white space between this columns.
How can i prevent that?
Designer (Standalone):
Preview:
Thanks in advance
I have overridden the SendMailMessage method of the ReportsController to implement the email-sending functionality of the web report viewers.
However, despite the method being implemented in my controller, inheriting from the ReportsControllerBase class, the method is never hit, and instead, I get a 501 Not Implemented response.
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.
---
Adding the "Telerik.ReportViewer.WinUI.Themes/Themes/Generic.xaml" theme to a WinUI project causes existing AppBarButtons to grow in size because it overrides the AppBarButtonContentHeight setting.
The report viewer theme should not override the styles of the default WinUI controls.
The ReportsControllerBase is returning a JSON payload of { "InstanceId": "xxxx" } instead of { "instanceId": "xxxx" } that the Html5 ReportViewer is expecting. I believe the CreateInstance method should be using CreateJsonResponse instead of CreateResponse. I overrode the ReportsControllerBase.CreateInstance like the following to get it working again:
response = base.CreateInstance(clientId, reportSource);
// This is to work around a bug in telerik reporting.
BusinessLogicResponse v = BusinessLogicResponse.CreateInstance(HttpStatusCode.Created, ((ObjectResult)response).Value);
response = base.CreateJsonResponse(v);