Telerik Forums
Reporting Forum
0 answers
128 views

Hello Telerik Reporting Community,

We have released a new version of Telerik Reporting today, 2024 Q1 (18.0.24.130). Please update your existing installation at your earliest convenience.

You can review the Legacy Installer Vulnerability - Telerik Reporting article to learn more details about why we are recommending customers to update.

To get the new version, take the following steps:

  1. Go to Downloads | Your Account. 
  2. Select Telerik Reporting.
  3. Download the msi installer file, run it, and follow the steps to completion.


Notes

As the KB article explains, the issue pertained only to the old installer component, and not Telerik Reporting contained within the installation package. It does not affect any applications you’re using Telerik Reporting with.

If you have a rare situation where you cannot update the PC installed version, there are various ways to keep a project using an older version of reporting even though the PC has a newer version installed.

  • Copied Assemblies OptionCopy the older version’s DLLs to the project directory, then update the project references to use the copied assemblies (instead of the assemblies in C:/Program files (x86)/Progress/Telerik Reporting [older version]/)

We highly recommend you open a Technical Support Ticket if you have a complex situation and would like to ask questions before updating the PC’s installed version. You can open a Support Ticket here => https://prgress.co/DevToolsSupport.

Lance
Top achievements
Rank 2
 asked on 31 Jan 2024
2 answers
1.4K+ views

Hello Supports,


I want to try and install Nuget packages Telerik.Reporting.Services.AspNetCore for my Asp.net Core project but it isn't found.

when I go to the option "Manage Nuget packages", these are no available the packages to download (see the attached file).
Is it missing from the private nuget feed ?

Thank You.

 

Lance | Manager Technical Support
Telerik team
 updated answer on 31 Jan 2024
0 answers
2 views
Good afternoon, we have an API developed in NET 6 that is running on a Linux server.
Using the Telerik Reporting 18.0.24.305 library, when executing the function var report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream), where sourceStream is System.IO.File.OpenRead(ReportPath), we encounter the following error:

Failed to launch 'type:%20Telerik.Reporting.ReportSerialization.Current.ReportSerializable%601[Telerik.Reporting.Report]' because the scheme does not have a registered handler.

However, if the API is executed on a Windows server, it runs correctly.

How can this error be resolved?
Jordi
Top achievements
Rank 1
 asked on 28 Mar 2024
1 answer
11 views

Hi everyone. 

 

We have an extremely frustrating problem we are attempting to solve.

We have a .NET 7 Web Application using a Blazor Server hosting model for reporting. The application is containerized and runs as part of a service via AWS Fargate. We have a series of legacy reports that we have converted to '.trdp' format, several of these reports use a named connection string to interact with RDS (AWS SQL DB).

 

We are using the 'Blazor' reporting solution that is merely a wrapper over the HTML5 reporting. The assembly versions are as follows:

Telerik.Drawing.Skia, 17.2.23.1114 
Telerik.Reporting, 17.2.23.1114 
Telerik.Reporting.OpenXmlRendering, 17.2.23.1114 
Telerik.Reporting.Services.AspNetCore, 17.2.23.1114
Telerik.ReportViewer.Blazor, 17.2.23.1114

As part of our build process - we inject a secrets file into the container definition with the credentials for accessing the db. This is modified during launch to include the correct environment db and db credentials:

if (ConnectionUtility.IsRunningInFargate())
{
    // Create new copy of string in memory so we can modify it
    var connectionString = connectionStrings[Constants.ReportingSqlConnectionKey];
    var databaseUriForEnvironment = ConnectionUtility.GetDatabaseUriForEnvironment();
    var databaseForEnvironment = ConnectionUtility.GetDatabaseForEnvironment();

    // Replace placeholders with values
    var protoConnectionString =
        connectionString!
            .Replace("{0}", databaseUriForEnvironment)
            .Replace("{1}", databaseForEnvironment);

    // Important! - This replaces the 'in-memory' connection string that reports use to interact with the primary db
    connectionStrings[Constants.ReportingSqlConnectionKey] = protoConnectionString.TransformSecret(Constants.SettingClass.ConnectionString);
}


The connection string key isn't important here, but it is used to provide the connection key for each report.; 

The Telerik services are injected:

builder.Services.TryAddSingleton<IReportServiceConfiguration>(sp => new ReportServiceConfiguration
{
    ReportingEngineConfiguration = sp.GetService<IConfiguration>(),
    HostAppId = "X.Reporting",
    Storage = new FileStorage(),
    ExceptionsVerbosity = "detailed",
    ReportSourceResolver =
        new CustomReportSourceResolverWithFallBack(
            new TypeReportSourceResolver()
                .AddFallbackResolver(
                    new UriReportSourceResolver(
                        Path.Combine(
                            GetReportsDir(sp))))),
});

 

The resolver is less important, but for the sake of completion:

using Telerik.Reporting;
using Telerik.Reporting.Services;

namespace X.Reporting.Services
{
    public class CustomReportSourceResolverWithFallBack : IReportSourceResolver
    {
        private readonly IReportSourceResolver? _parentResolver;

        public CustomReportSourceResolverWithFallBack(IReportSourceResolver? parentResolver)
        {
            _parentResolver = parentResolver;
        }

        public ReportSource Resolve(string report, OperationOrigin operationOrigin, IDictionary<string, object> currentParameterValues)
        {
            var reportDocument = ResolveCustomReportSource(report, operationOrigin, currentParameterValues);

            if (null == reportDocument && null != _parentResolver)
            {
                reportDocument = _parentResolver.Resolve(report, operationOrigin, currentParameterValues);
            }

            return reportDocument;
        }


        private ReportSource ResolveCustomReportSource(string reportId, OperationOrigin operationOrigin, IDictionary<string, object> currentParameterValues)
        {
            var reportBook = new ReportBook();
            var splitString = reportId.Split(',').ToList();

            foreach (var report in splitString)
            {
                var uriReportSource = new UriReportSource
                {
                    Uri = $"Reports/{report}.trdp"
                };

                reportBook.ReportSources.Add(uriReportSource);

                if (operationOrigin == OperationOrigin.ResolveReportParameters)
                {
                    reportBook.ReportSources.Add(GetReportParameters(report, currentParameterValues));
                }
            }

            return new InstanceReportSource { ReportDocument = reportBook };
        }

        private ReportSource GetReportParameters(string reportId, IDictionary<string, object> currentParameterValues)
        {
            UriReportSource report = new UriReportSource();

            foreach (var parameterValue in currentParameterValues)
            {
                if (parameterValue.Value is not null and not (string)"standardReport")
                {
                    var par = new Parameter
                    {
                        Name = parameterValue.Key,
                        Value = parameterValue.Value.ToString()
                    };

                    report.Parameters.Add(par);
                    report.Uri = $"Reports/{reportId}.trdp";
                }
            }

            return report;
        }
    }
}

 

90 % of the time, we can render reports without issue. However, there are times where any report that uses a SQL connection seems to be unable to reach our primary database. EF Core (which interacts with the same DB prior to and after rendering reports) seems to never have this issue - even when Telerik does. Both share the exact same connection string. Rendering a report with an included SQL query returns something like the following: 

On occasion, this issue seems to resolve itself after ~5 minutes. Most of time, we need to kill the container instance and restart it a number of times before reports render without issue. I'm confounded why this happens - it 'feels' like the underlying SQL connection is reused.

Any help is appreciated - this has been a critical issue to our clients, we can't keep using this reporting solution without a fix.

Todor
Telerik team
 answered on 27 Mar 2024
0 answers
1 view
currently we are using webservice datasource to generate a report but i want to change this datasource from webservicedatasource to jsondatasource, when i manually put the json in inline, its working perfectly but how to pass the data from programatically , as of now we are using telerik.reportserver.httpclient dll and createdocumentdata model to send an data to report but i could not see any fields available in the model to accept json data. Anyone help on this and its a large report it has lot of tables , list ,fields etc
1 answer
10 views

We have a JSON dataset (attached) where one of the nodes is a list of products. We are displaying these products in a table in the detail section. This table has the corresponding ProductList Datasource and has 3 columns: "UP", "Total", "Net UP".  We obtain the "UP" and "Total" directly from the DataSource (Fields.[@UP], Fields.[@Total]). To obtain the "Net UP" we need to check all Discounts nodes in the same line that [@Type]= "Comercial" , take the [@Rate] and multiply it with the Fields.[@UP] of that line.

We are trying to do this inserting a table to which we have bound its DataSource to the Fields.Discounts.Discount field in the "Net UP" column. With this we can obtain the [@Rate] of the discount but the problem here is that we can not address the Fields.[@UP] because it is in another context.

Do you have any idea how we can achieve that?

3 answers
209 views

Im getting an "Error creating report document" error when trying to load the report on the published site.. it works just perfectly in local.

i would like to know what should i do in order to get this issue solved.

 

thanks in advance.

Baryalay
Top achievements
Rank 1
Iron
 answered on 25 Mar 2024
1 answer
9 views

Hi,
I am using ASP.NET WEB API ( not .Net Core ) and I try to integrate Web report designer into my ReactJs front-end
Telerik.Reporting version 17.1.23.718

I am using this Configuration

 ReportDesignerServiceConfiguration designerConfigurationInstance = new ReportDesignerServiceConfiguration
 {
     DefinitionStorage = new FileDefinitionStorage(reportsPath),
     SettingsStorage = fs,

     SharedDataSourceStorage = new FileSharedDataSourceStorage(reportsSharedDSPath),
 };

 

It all works when I try to create a Shared Data Source and for the first time I want to bind it to a Wizard Table but when I go to Preview it shows me an error

An error has occurred while processing Table 'table1': Cannot instantiate the referenced DataSource. Value cannot be null.Parameter name: The path to the SharedDataSource asset was null or empty.


And If I save the same report and try to reopen, it doesn't recognize the shared data source and gives me this error:

Unable to retrieve the referenced Shared Data Source for 'sDS_Test1'.

But the shared data source exists and it is in the same place, if I try to manually add it again it will work and recognize it, but again the preview won't work.

Perhaps I have to use a CustomSharedDataSourceResolver ?

CustomSharedDataSourceResolver : Data.ISharedDataSourceResolver

If yes how do I integrate it in my ASP NET project cause I don't have the appsettings.json file to add the section:

I have to use Web.config but I don't understand how to integrate it, I cannot find any documentation for ASP.NET WEB API.

"telerikReporting": {
  "processing": {
    "resourceResolver": {
      // The element below represents an implementation of a Resource resolver that uses a path provider:
      //"provider": "path",
      //"parameters": [
      //  {
      //    "name": "directory",
      //    "value": "c:\\CommonResources\\"
      //  }
      //],

      // The element below represents an implementation of a Resource resolver that uses a custom type provider:
      "provider": "custom",
      "parameters": [
        {
          "name": "typeName",
          "value": "SqlDefinitionStorageExample.CustomResourceResolver, SqlDefinitionStorageExample"
        }
      ]
    },
    "sharedDataSourceResolver": {
      // The element below represents an implementation of a SharedDataSource resolver that uses a path provider:
      //"provider": "path",
      //"parameters": [
      //  {
      //    "name": "directory",
      //    "value": "c:\\CommonSharedDataSources\\"
      //  }
      //],

      // The element below represents an implementation of a SharedDataSource resolver that uses a custom type provider:
      "provider": "custom",
      "parameters": [
        {
          "name": "typename",
          "value": "SqlDefinitionStorageExample.CustomSharedDataSourceResolver, SqlDefinitionStorageExample"
        }
      ]
    }
  }
}


Please help me,
Thanks
Dimitar
Telerik team
 answered on 25 Mar 2024
1 answer
8 views

This may be a dumb question, I apologize in advance.

I was tasked with updating and existing Rest service from .net 4.6.1 to .net 8.

I was going to just create a new one using your template, but it only supports up to .net 4.8.

What am I missing here?

 

Thank you!

Joe

Momchil
Telerik team
 answered on 25 Mar 2024
1 answer
11 views

Hi,
I'm using a trial version of Telerik reporting.
I designed a trdp project file and I included it in my application.
The data source is a json string that I change at runtime.

I tried to export on pdf and I get no error from the call to RenderReport, but saving the bytes of RenderingResult.DocumentBytes on a pdf file I get a unreadeable file, it is a real pdf file (I see it on hexadecimal editor) but very short.

I tried to export on csv, html, and rtf and I get a valid and  good file.

Could be a trial limitation?

Thank you

Luigi

Todor
Telerik team
 answered on 25 Mar 2024
Top users last month
horváth
Top achievements
Rank 2
Iron
Iron
Steve
Top achievements
Rank 2
Iron
Erkki
Top achievements
Rank 1
Iron
Mark
Top achievements
Rank 2
Iron
Iron
Veteran
Jakub
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?