We have spotted that PInvoke is now marked as deprecated (this applies even to the latest 0.7.124 version). In the description of the PInvoke.User32 NuGet package, it is mentioned that Microsoft.Windows.CsWin32 should be used instead:
Please consider replacing the deprecated package.
I am using the Standalone Report Designer for .NET to open a code-based report from an application that was migrated from .NET Framework. Before the migration, function calls defined in the designer.cs file were preserved and evaluated at runtime as expected. However, after migrating to the code-based reports functionality supported by the Standalone Report Designer for .NET, these function calls are evaluated immediately during the report import process, and the resulting values are then serialized and stored in the report definition.
It would be nice if the function calls were preserved in the imported report, allowing them to be evaluated later at runtime, as their return values may change depending on the execution context.
I have noticed that the performance of exporting reports has gotten worse in recent releases. After investigating, I found out that this is likely caused by the sheer size of the code in my projects.
To prove this, I created a simple application that renders a report to PDF programmatically. Then, I created 10 000+ dummy classes in the same project, and tried rendering the report again. The performance was noticeably impacted by this change.
The bug has two requirements for occurring:
When those two conditions are met, the report will fail to render, and an error message stating that one of the numeric values in the report cannot be parsed. For example, the message may look like this:
One or more errors occurred. (The numeric portion of 170.01mm cannot be parsed as a unit of type Mm.)
To avoid the issue, slightly decrease the width of the item so that it does not occupy the full width of the report section. If Docking is used, disable it, or wrap the docked item in a smaller container.
Alternatively, a culture with a dot-based decimal separator may be used.
I installed Reporting on my Windows without a database server. I chose to install with the examples so I can later provide a valid connection string for them.
Here is the connection string from the XML configuration that breaks the Standalone Report Designer applications:
<connectionStrings>
<clear/>
<add name="Telerik.Reporting.Examples.CSharp.Properties.Settings.TelerikConnectionString" connectionString="Data Source="No Local Servers Found!";Initial Catalog=AdventureWorks;Integrated Security=True;Password=" providerName="System.Data.SqlClient"/>
</connectionStrings>Note the quotation marks inside the DataSource value that make the XML invalid.
Previously, the same scenario resulted in the following connection string that didn't break the XML structure:
<connectionStrings>
<add name="Telerik.Reporting.Examples.CSharp.Properties.Settings.TelerikConnectionString"
connectionString="Data Source=No Local Servers Found!;Initial Catalog=AdventureWorks;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
</connectionStrings>Currently, to start the designers, I must fix the configuration files manually or install the Reporting without examples.
Almost any object can be set to grow (CanGrow = True). Which makes the object grow if the text is too long.
I believe you need a function for making the text fit inside the object.
“ShrinkToFit = True”
This would shrink the text so that it fits inside the object. So if the font size is 20 and a long text wouldn’t fit inside the object, the font size would shrink until it fits.
Today we need to set several conditional formatting rules for this and it’s far from perfect.
After upgrading to Telerik Reporting 2026 Q3(20.2.26.1007), we are unable to get any of our Object Data sources to load. With the 2026 Q2 release, we had to copy some of the .NET DLL's into the report designer folder for it to work, and after copying the DLLs, everything loaded without any issues.
We have three custom DLL's that depend on MySQLConnector (version 2.6.2) to pull the data from a MySQL DB. When we upgraded to 2026 Q3, we copied our custom DLL's and added them to the config file as assemblyReferences. After copying them in, we added MySqlConnector.dll to the directory. We then received an error that it couldn't load System.Transactions.Local.dll 10.0.0. I copied this DLL into the directory with the EXE for Telerik.ReportDesigner.Net.exe. After adding the DLL, we are now getting this error:
Telerik.Reporting.Processing.Data.ObjectDataSourceException: An error has occurred while resolving 'objectDataSource1' data source: An error occurred while invoking data retrieval method.
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.MissingMethodException: Method not found: 'Void System.Data.Common.DbConnection.EnlistTransaction(System.Transactions.Transaction)'.
at MySqlConnector.MySqlConnection.OpenAsync(Nullable`1 ioBehavior, CancellationToken cancellationToken)
at MySqlConnector.MySqlConnection.OpenAsync(Nullable`1 ioBehavior, CancellationToken cancellationToken)
at MySqlConnector.MySqlConnection.Open() in /_/src/MySqlConnector/MySqlConnection.cs:line 517
at TelerikReportsObject.AP.APDebitMemoConnections.GetDataViewSource(UInt32 receiverDetailId, String userName)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
--- End of inner exception stack trace ---
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at Telerik.Reporting.TypeValidation.SafeReflection.InvokeMethodSafe(MethodBase mi, Object target, Object[] parameters)
at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveDataMemberAsMemberMethod(Func`1 resolveTarget, MethodBase mi, Object[] args, Int32 outParemeterIndex, Object& result)
at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveAsMethodInvocationOnTarget(Type type, Func`1 resolveTarget, String dataMember, ObjectDataSourceParameterCollection parameters, Object& result)
--- End of inner exception stack trace ---
at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveAsMethodInvocationOnTarget(Type type, Func`1 resolveTarget, String dataMember, ObjectDataSourceParameterCollection parameters, Object& result)
at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveAsMethodInvocation(Object dataSource, String dataMember, ObjectDataSourceParameterCollection parameters, Object& instance)
at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.TryResolveAsMethodInvocation(Object dataSource, String dataMember, Boolean evaluateParametersValues, Object& instance)
at Telerik.Reporting.Processing.Data.ObjectDataSourceInstanceResolver.ResolveDataSource(Object dataSource, String dataMember, Boolean evaluateParametersValues)
at Telerik.Reporting.Processing.Data.ObjectDataSourcePropertiesResolver.ResolveDataSourcePropertiesFromEnumerable(ISimpleDataProvider provider, Object dataSource, String dataMember)
at Telerik.Reporting.Processing.Data.ObjectDataSourcePropertiesResolver.ResolveDataSourceProperties(ISimpleDataProvider provider, Object dataSource, String dataMember, IEnumerable`1 parameters)
at Telerik.Reporting.Processing.Data.ObjectDataProviderBase`1.ResolveDataSourceProperties()
at Telerik.Reporting.Processing.Data.ObjectSchemaAdapter.GetFields()+MoveNext()
at Telerik.Reporting.Processing.Data.SimpleSchemaAdapter.AddDataMeasures(SimpleDataModel model)
at Telerik.Reporting.Processing.Data.SimpleSchemaAdapterBase.Fill(SimpleDataModel model)
at Telerik.Reporting.Processing.Data.SimpleDataProvider`1.GetSchemaCore()
at Telerik.Reporting.Processing.Data.DataProvider`1.Telerik.Reporting.Processing.Data.IDataProvider.GetSchema()
at Telerik.Reporting.Data.Design.DataSourceService.GetLocalSchema(IDataSource datasource, IDataProviderContext dataProviderContext)
at Telerik.Reporting.Data.Design.DataSourceDesignerBase.GetSchemaCore()
at Telerik.Reporting.Data.Design.ObjectDataSourceDesigner.GetSchemaCore()
at Telerik.Reporting.Data.Design.DataSourceDesignerBase.Telerik.Reporting.Design.Interfaces.IDataSchemaProvider.GetSchema()
at Telerik.Reporting.Data.Design.DataSourceService.GetSchemaFromProvider(IDataSchemaProvider provider)
at Telerik.Reporting.Data.Design.DataSourceService.GetSchemaFromContext(Object context)
at Telerik.Reporting.Data.Design.DataSourceService.GetCurrentSchema(Boolean parentContext, Boolean getFromParentRecursively)
at Telerik.Reporting.Data.Design.DataSourceService.Telerik.Reporting.Design.Interfaces.IDataSourceService.GetCurrentDataItemSchema(Boolean getFromParentRecursively)
at Telerik.Reporting.Design.DataExplorerControl.<>c__DisplayClass12_0.<RefreshDataSource>b__0()
Currently, like the FileStorage and the MsSqlServerSrorage, the Reporting service performs periodic clean ups of the cachec client assets in the RedisStorage.
Those assets are stored in keys, which do not have an expiration date, so the Reporting service is the one that is single-handedly responsible for deleting those keys.
This approach may work well for the other storages, but in terms of Redis, it leaves more to be desired. Some of the possible cons of this approach are that:
So whether Redis memory is ever reclaimed depends on viewer traffic and upgrade history. In a shared Redis cache, the leftover data builds up until the cache reaches its memory limit. Redis can't evict it, because standard eviction policies apply only to keys with an expiration. The cache then starts rejecting writes, which breaks every application using it.
A cache provider should guarantee its data expires on its own, without depending on later traffic or on cleanup code that knows about earlier versions.
Requested:
An expiration option on RedisStorage, with a sliding expiration refreshed on access. With that in place, Redis reclaims all storage on its own, including data from previous versions, regardless of viewer traffic.
Password-protected PDF documents generated with Telerik Reporting have blank pages when opened with an iPhone.
Hello,
it seems there is some glitch in blazor telerik web report designer. So its not possible, to use stored procedure with parameters as datasource
lets have input parmeter in SP, expecting "some value", how to configure it for report? Only person, which is designin report, puts the value in as constant.
@Typ=1
1) - web report designer doesnt remember sql connection type(Choose data connection): Shared vs EMBEDED. Always fall to shared, when reopening report(but was configured as embeded).
2) - web repor designer, not applying DEFAULT "Configure design time parameters" VALUES, and also "Configure data source parameters". They are correctly stored in TRDP, they are visible in sql wizzard steps, but ALWAYS passed as NULL to the datasource when OPENING report.
= so report is than messed up/or datasource invalid.
**NOT BUG, ENHANCEMET: 3) - allow filtering in SQL datasource wizard "Stored procedure". Normally there is hundred of SP and its pain to pick one. OR allow to write SP directly
4) - when using SQL datasource, its not getting filed values correctly, this command is executed:
exec sp_executesql N' SET FMTONLY OFF; SET FMTONLY ON;exec [dbo].[IMS_PRINT_GETSET] @Typ,@ID;',N'@Typ nvarchar(1),@ID int',@Typ=N'1',@ID=30
in sql wizzard, there is command: "exec [dbo].[IMS_PRINT_GETSET] @Typ,@ID;"
how to solve that?
You are not ALWAYS allowed to modify SP. just consume as DATASOURCE, so its NOT VALID.
IF 1=0 BEGIN
SET FMTONLY OFF
END
iam unable to use version 1007-its not compatibile in project with telerik.blazor 15.1 (conflict in some skia or document proccesing nugets), but its not the case.
example:
Video demonstrating(reopened existing report), all described points + profiler result.
telerik sends - WRONG:
exec sp_executesql N' SET FMTONLY OFF; SET FMTONLY ON;exec [dbo].[IMS_PRINT_GETSET] @Typ,@ID;',N'@Typ nvarchar(4000),@ID int',@Typ=NULL,@ID=NULL
telerik SHOULD send:
exec sp_executesql N' SET FMTONLY OFF; SET FMTONLY ON;exec [dbo].[IMS_PRINT_GETSET] @Typ,@ID;',N'@Typ nvarchar(4000),@ID int',@Typ=N'1',@ID=30
TSQL demo procedure(one procedure for multiple sources - real world usage):
create PROCEDURE [dbo].[IMS_PRINT_GETSET]
@Typ INT,@ID INT
AS
BEGIN
SET NOCOUNT ON;
--!!TELERIK BUGFIX, but you are NOT ALWAYS permited to modify SP!!:
IF 1=0 BEGIN
SET FMTONLY OFF
END
IF @Typ=2 BEGIN
SELECT TOP 500 * FROM vTabOrders_active
RETURN
END
IF @Typ=1 BEGIN
SELECT TOP 500 ID,CisloZakazky,Nazev,Poradi FROM TabXYZ
RETURN
END
END
Thanks, even for some hotfix ideas.
If I create an SqlDataSource component through the wizard, and select the option to embed the connection in the report, and later open the SqlDataSource wizard for that component again, the wizard does not remember that the selected data option was "Embedded" and again defaults to a shared connection.
The wizard should remember the chosen option for the SqlDataSource component.
Our Reportviewer is opened or displayed within a dialog, if i open the search the search dialog is moved to the far right side and is not visible directly.
We need to scroll to the search dialog to see it.
The Telerik Reporting REST Service storage is automatically cleaned based on some configurable timeouts and hardcoded times. It requires an awaken service to be performed.
It would be very useful for the developer to be able to invoke manually the storage cleaning functionality either with code or through the service Web API.
All of my report parameters have their AutoRefresh setting set to False, and the parameters do not depend on each other, they are not cascading parameters. The parameters have available values.
If I change the value of one of the parameters, despite the above settings, all of the other parameters' data is re-retrieved(even if those parameters are not visible).
This causes issues because the "Preview" button is disabled until the parameters are refreshed, and makes the UX bad since if the connection is slow, the end-users will have to wait for the parameters area to refresh after changing any parameter value.