Telerik Forums
Reporting Forum
1 answer
257 views

Hello. I am posting a question like this because I keep getting errors while using the report.

This problem only occurs on the project I am currently working on.

"An exception of type 'System.NullReferenceException' occurred in

PresentationFramework.dll but was not handled in user code Additional information

: Object reference not set to an instance of an object."

 

When creating a new project with the same reference, no error appears.

What is the problem? Leave the sauce below.

 

Telerik 2020.3.915.40 Version References(7)

Telerik.Windows.Controls Telerik.Windows.Controls.Chart Telerik.Windows.Controls.Data Telerik.Windows.Controls.GridView

Telerik.Windows.Controls.Input Telerik.Windows.Controls.Navigation Telerik.Windows.Data

 

TelerikReporting 14.2.20.916 Version References(5)

Telerik.Reporting Telerik.Reporting.OpenXmlRendering Telerik.Reporting.OpenXmlRendering Telerik.ReportViewer.Wpf Telerik.ReportViewer.Wpf.Themes

 

 

=Xaml======================================================================================

<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/SKC_QTO;component/Plugin/Themes/Report/System.Windows.xaml" />
<ResourceDictionary Source="pack://application:,,,/SKC_QTO;component/Plugin/Themes/Report/Telerik.Windows.Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/SKC_QTO;component/Plugin/Themes/Report/Telerik.Windows.Controls.Input.xaml" />
<ResourceDictionary Source="pack://application:,,,/SKC_QTO;component/Plugin/Themes/Report/Telerik.Windows.Controls.Navigation.xaml" />
<ResourceDictionary Source="pack://application:,,,/SKC_QTO;component/Plugin/Themes/Report/Telerik.ReportViewer.Wpf.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>


<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button x:Name="ChangeReportButton" Grid.Row="0" Height="30" Width="100" Command="{Binding ThisCommand}" Content="Change Report" Margin="0,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" >
</Button>
<tr:ReportViewer Grid.Row="1" x:Name="ReportViewer1" HorizontalAlignment="Stretch" ReportSource="{Binding MyReportSource}">
</tr:ReportViewer>

</Grid>

 

=Xaml.cs======================================================================================

    public partial class ReportingView : Window
    {
        internal const string TelerikVersion = "2020.3.915.40";
        internal const string TelerikPublicKeyToken = "~~~~~~~~~~";
        internal const string Culture = "~~~~~~";
        public ReportingView()
        {

          // This is for testing purposes. Assembly is initially registered at startup. 
            Assembly.Load($"Telerik.Windows.Controls,            Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");
            Assembly.Load($"Telerik.Windows.Controls.Chart,      Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");
            Assembly.Load($"Telerik.Windows.Controls.Data,       Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");
            Assembly.Load($"Telerik.Windows.Controls.GridView,   Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");
            Assembly.Load($"Telerik.Windows.Controls.Input,      Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");
            Assembly.Load($"Telerik.Windows.Controls.Navigation, Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");
            Assembly.Load($"Telerik.Windows.Data,                Version={TelerikVersion}, Culture={Culture}, PublicKeyToken={TelerikPublicKeyToken}");

            InitializeComponent();   <<<<< This Error ★★★★★★★★★★
            this.DataContext = new ViewModel();
            //DataContext = new ReportingViewModel();
        }
    }

=ViewModel.cs======================================================================================

class ViewModel : INotifyPropertyChanged
    {
        private int testCounter = 0;


        public event PropertyChangedEventHandler PropertyChanged;
        Telerik.Reporting.ReportSource _myReportSource;

        public Telerik.Reporting.ReportSource MyReportSource
        {
            get { return this._myReportSource; }
            set
            {
                if (this._myReportSource != value)
                {
                    this._myReportSource = value;
                    if (null != this.PropertyChanged)
                    {
                        this.PropertyChanged(this, new PropertyChangedEventArgs("MyReportSource"));
                    }
                }
            }
        }

        public ViewModel()
        {

            this.MyReportSource = new InstanceReportSource { ReportDocument = null };

            _thisCommand = new Telerik.Windows.Controls.DelegateCommand(x => ChangeReport());

        }

        ICommand _thisCommand;
        public ICommand ThisCommand
        {
            get
            {
                return _thisCommand;
            }
        }

        public void ChangeReport()
        {
            if (testCounter % 2 == 1)
                this.MyReportSource = new InstanceReportSource { ReportDocument = new Report1() };
            else
                this.MyReportSource = new InstanceReportSource { ReportDocument = null };
            testCounter++;
        }

============================================================================================

 

Thanks.

Neli
Telerik team
 answered on 21 Dec 2020
4 answers
1.0K+ views

 

 

Currently running version R1 2020 SP1 (14.0.20.219) with the HTML 5 report viewer and the REST service ASP.NET Core 3.1

I am trying to set the database connection string dynamically using the method outlined in the knowledge base article below which passes it as a report parameter.

Change Connection String dynamically through a report parameter

 

This approach should be fine, however the issue is that I cannot find a way to modify the report parameters so that the connection string can be passed in.

 

I have tried to define a custom report resolver like the example below which adds the parameter to the report source.  But I am finding that the parameter value does not get passed into the report.

 

 

 

We are using .trdp files as our report source and I have seen some examples where people have unpacked the file to return an InstanceReportSource. By doing this it might be possible to set the parameters against the report object directly. 

Can anyone suggest a better way to set report parameters within the REST service (ie without passing the parameters from the client)?

 

 

 

 

Thanks

Andrew

 

public class CustomReportResolver : ReportFileResolver
{
    private readonly IDdrConnectionService _ddr;
    private readonly IHttpContextAccessor _httpContextAccessor;
 
    public CustomReportResolver(IDdrConnectionService ddr,
        IHttpContextAccessor httpContextAccessor,
        string repositoryDirectory) : base(repositoryDirectory)
    {
        _ddr = ddr;
        _httpContextAccessor = httpContextAccessor;
    }
 
    protected override ReportSource ResolveReport(string report)
    {
        ReportSource reportSource = base.ResolveReport(report);
 
        Guid tenantId = _httpContextAccessor.HttpContext.User.GetTenantId();
        string connString = _ddr.GetShardConnectionString(tenantId);
        reportSource.Parameters.Add("ConnectionString", connString);
 
        return reportSource;
    }
}

 

Andrew
Top achievements
Rank 1
 answered on 19 Dec 2020
6 answers
308 views

Hello,

I'm currently facing a problem with Telerik Reporting menus in Visual Studio 2019.

Last week I've created some reports, all was working well.

 

Today, I had to modify some of them but report files are not displaying icons of reports but of c# code.

When right clicking on my reports I don't have designer menu anymore (View designer menu).

 

What's really strange is that on other older reports, I still have this menu available and can view the designer.

 

I havent installed VS update

I tried to reinstall Telerik reporting package on my machine

Nothing changes.

 

The fact is that there is a difference between old reports and the one I created last week that make the first ones editable and the last ones not.

Do you know where I could search to find this difference that would make me able to edit them again please ? 

 

Thanks

Regards

Admin
Top achievements
Rank 1
 answered on 18 Dec 2020
1 answer
569 views

Hello, I am getting:

    "Unable to get report parameters.
    An error has occurred.
    Object reference not set to an instance of an object."

when trying to load a report into the HTML5 report viewer.

Code snippets below - resolve nevere gets called, but the payload of the POST looks correct.  Any ideas?

 

<script type="text/javascript">
    $(document).ready(function () {
            $("#reportViewer1")
                .telerik_ReportViewer({
                    // The URL of the service which will serve reports.
                    // The URL corresponds to the name of the controller class (ReportsController).
                    // For more information on how to configure the service please check http://www.telerik.com/help/reporting/telerik-reporting-rest-conception.html.
                    serviceUrl: "/reportdata/",
 
                    // The URL for the report viewer template. The template can be edited -
                    // new functionalities can be added and unneeded ones can be removed.
                    // For more information please check http://www.telerik.com/help/reporting/html5-report-viewer-templates.html.
                    // templateUrl: 'ReportViewer/templates/telerikReportViewerTemplate.html',
 
                    //ReportSource - report description
                    reportSource: {
 
                        // The report can be set to a report file name (.trdx or .trdp report definition)
                        // or CLR type name (report class definition).
                        report: { reportId: 89 },
 
                        // Parameters name value dictionary
                        parameters: { foo: 1}
                    },
 
 
 
                    //parameters: {
                    //    editors: {
                    //        singleSelect: telerikReportViewer.ParameterEditorTypes.COMBO_BOX,
                    //        multiSelect: telerikReportViewer.ParameterEditorTypes.COMBO_BOX,
                    //    }
                    //},
 
                    // Specifies whether the viewer is in interactive or print preview mode.
                    // PRINT_PREVIEW - Displays the paginated report as if it is printed on paper. Interactivity is not enabled.
                    // INTERACTIVE - Displays the report in its original width and height without paging. Additionally interactivity is enabled.
                    viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
 
                    // Sets the scale mode of the viewer.
                    // Three modes exist currently:
                    // FIT_PAGE - The whole report will fit on the page (will zoom in or out), regardless of its width and height.
                    // FIT_PAGE_WIDTH - The report will be zoomed in or out so that the width of the screen and the width of the report match.
                    // SPECIFIC - Uses the scale to zoom in and out the report.
                    scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
 
                    // Zoom in and out the report using the scale
                    // 1.0 is equal to 100%, i.e. the original size of the report
                    scale: 1.0,
 
                    //Enables or disables the accessibility features of the report viewer and its contents.
                    enableAccessibility: false,
 
                    //If set to true shows the Send Mail Message toolbar button
                    sendEmail: { enabled: true }
                });
 
    });
    </script>

 

public class ReportSourceResolver : IReportSourceResolver
    {
        private string _reportDbConnectionString;
 
 
        public ReportSourceResolver(string reportDbConnectionString)
        {
            _reportDbConnectionString = reportDbConnectionString;
        }
 
        public Telerik.Reporting.ReportSource Resolve(string reportId,OperationOrigin operationOrigin, IDictionary<string, object> currentParameterValues)
        {
 
            sproc_ReportDetailsXMLGet_Wrapper.In_Type inparams = new sproc_ReportDetailsXMLGet_Wrapper.In_Type()
            {
                ReportId = reportId.ToNullableInt(),
            };
 
            var sp = new sproc_ReportDetailsXMLGet_Wrapper(inparams);
            _ = ReportingDB.ExecOn(_reportDbConnectionString).SpCall(sp);
 
            var outrecord = sp.Out.Records[0];
            return new Telerik.Reporting.XmlReportSource { Xml = outrecord.SerializedReport };
        }
    }
}

 

Neli
Telerik team
 answered on 17 Dec 2020
1 answer
169 views
I am having a text box inside the details section of my report. Value for this text box is passed by the data source during runtime. This report is rendered as a pdf. I don't want the text box to wrap the content, so right now I am using the character count (to determine if it wraps) to show or hide the text box. I would like to know if there is a way to identify if the text inside the box is wrapped after rendered as a pdf?
Todor
Telerik team
 answered on 17 Dec 2020
1 answer
1.3K+ views
I have a .net core app in which I have a Telerik report which has two parameters and I have the code like so

$("#summaryReport").click(function () {
                var viewer = $("#reportViewer1").data("telerik_ReportViewer");
                viewer.reportSource({
                    report: "Sumaren.trdp",
                    parameters: {}
                });
                viewer.refreshReport();
            });
 
 
            $("#reportViewer1")
                .telerik_ReportViewer({
 
                    serviceUrl: "api/reports/",
 
                    //ReportSource - report description
                    reportSource: {
                        // The report can be set to a report file name (trdx report definition)
                        // or CLR type name (report class definition).
                    },
 
                    viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
 
                    scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
 
                    scale: 1.0,
                    enableAccessibility: true,
 
                    ready: function () {
                        this.refreshReport();
                    },
                });
I keep getting the error Unable to get report parameters. Report 'Sumared.trdp' cannot be resolved. Do I have to do something with the parameters in the reportSource? I think that when you add parameters via the Telerik Report Designer, do don't add anything in the reportSource besides the report name. The Telerik Designer previews the report just fine, works like it's supposed to but when I run the app it just keeps saying this - 'Unable to get report parameters. Report Sumaren.trdp cannot be resolved'
Eric R | Senior Technical Support Engineer
Telerik team
 answered on 16 Dec 2020
1 answer
8.9K+ views
I'm trying to show the data range selected as parameters in the header of the report. I added a text box and added {Parameters.StartDate.Value}. The problem is it shows the time and I just need the date. I tried this { Format('{0:d}',Parameters.StartDate.Value)} but it does not work. What is the proper way to accomplish my objective. Thanks in advanced. 
NPL IT
Top achievements
Rank 1
 answered on 16 Dec 2020
6 answers
820 views

Hey guys,

I want to change the Tooltip-Labels (and any other labels) of the ReportViewer in my C# WPF Application.

I don't want to localize anything in my report. ust these default buttons.

Is there any way I can do this? I tried to set the Language property to de-DE but it not affected anything.

 

I would be glad about any help.

 

Greetings

Benedikt

Eric R | Senior Technical Support Engineer
Telerik team
 answered on 16 Dec 2020
37 answers
1.9K+ views

Hi guys,

 

at the moment we are trying to figure out if we can use the Telerik Reporting to generate receipts on a thermo printer with endless paper.
We found the ContinuousPaper setting within the PageSettings but it doesn't seems to be working as expected. We are using the latest Version of Reporting (2018 R3)

When using the ContinuousPaper everything looks fine in the preview but after printing the paper gets cut after one DINA4 page. This happens when printing on the printer and when printing to a PDF file.

The only settings we have made is setting the ContinuousPaper property and adding a lot of textboxes to the report designer.

Any idea what we are doing wrong?

Todor
Telerik team
 answered on 15 Dec 2020
2 answers
288 views

I've been through the docs at least twice and obviously I'm missing quite a bit.

 

Created two simple, identical, reports with the wizard. One with the report designer, Report1, the other in VS2019, Report2.  They are calling a stored procedure in SQL Server 2016, with a parameter.  Both preview in the designers just fine. Both reports have a parameter set...@batchid Int32 6000

Stored procedure:    select * from batches where batchid=@batchid

I've added the NeedDataSource event to the reports

Telerik.Reporting.UriReportSource uriReportSource = new Telerik.Reporting.UriReportSource();
uriReportSource.Parameters.Add(new Telerik.Reporting.Parameter("@batchid", 7929));
uriReportSource.Uri = @"nunya\Report1.trdp";
reportViewer1.reportSource = uriReportSource;

reportViewer1.RefreshReport();

 

The trdp complains it can't find a connection string. IDK why. There is one in the app.config file which the rest of the application happily uses. When the connection string is embedded, it still does NOT use the Uri parameter.

 

 

Telerik.Reporting.TypeReportSource typeReportSource = new Telerik.Reporting.TypeReportSource();
typeReportSource.Parameters.Add( new Telerik.Reporting.Parameter("@batchid", 7929));
typeReportSource.TypeName = typeof(Report2).AssemblyQualifiedName;
reportViewer.reportSource=typeReportSource;

reportViewer1.RefreshReport();

 

 

 

Here, an exception is thrown in the Report1_NeedDataSource event:.report.Parameters is empty.

Do you have a sample winforms app which uses either the northwind or adventure works databases?

 

TIA

Dave
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 12 Dec 2020
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?