Telerik Forums
Reporting Forum
1 answer
80 views
I am currently running 2018 Reporting R2 (12.1.18.260), and getting the following error on one of the reports:

"An error has occured while processing Report 'MyReport'
The expression contains object 'MyObject' that is not defined in the current context"

What I am doing is simply adding a grouping to the report, using a field from the dataset. It doesn't matter which field I use, they all generate this exact error in grouping. If I remove the grouping, the report runs fine, and I can see every field with appropriate data. There is no special formatting or expressions used at all.

Any idea on how to get this resolved? I have seen this issue on other issues with reports (dealing with expressions in textboxes, etc) but none related to grouping.
Nasko
Telerik team
 answered on 03 Aug 2018
1 answer
146 views

Hi,

I am suffering from slow rendering issue. My data source has more than 1 million records to render. I attached the sample CSV file and report definition. 

Ivan Hristov
Telerik team
 answered on 03 Aug 2018
1 answer
77 views
    Is there anyway to detected in winforms reporting how to tell if a reported has actually been printed successfully.
Nasko
Telerik team
 answered on 03 Aug 2018
4 answers
654 views

I am using the most-current version of Telerik Reporting.  I am testing with a very simple MVVM solution.  The report only has a report header page with a text block in it.  I have the report viewer in the main window and bound to the reportsource in the viewmodel.  The report will not display.  I have looked at several examples and do this same thing but none work for me.

 

public class MainWindowViewModel
        : ViewModelBase
    {
        private string MessageValue = "Nothing to see here...";
        public string Message
        {
            get => MessageValue;
            set
            {
                MessageValue = value;
                RaisePropertyChanged();
            }
        }
 
        private Telerik.Reporting.ReportSource ReportValue;
 
        public Telerik.Reporting.ReportSource Report
        {
            get => ReportValue;
            set
            {
                ReportValue = value;
                RaisePropertyChanged();
            }
        }
 
 
        public void RunReport()
        {
            Message = "Begin report run...";
 
            Task.Run(() => {
                System.Threading.Thread.Sleep(5000);
 
                App.Current.Dispatcher.BeginInvoke(new Action(() => {
                    var rs = new Telerik.Reporting.InstanceReportSource() { ReportDocument = new Report1() };
                    this.Report = rs;
                    Message = "Report complete.";
                }));
 
            });
 
        }
    }

 

 

<Window x:Class="ReportingTest.MainWindow"
        xmlns:local="clr-namespace:ReportingTest"
        xmlns:telerik="http://schemas.telerik.com/wpf"
        DataContext="{Binding MainWindowViewModel, Source={StaticResource ModelLocator}}"
        mc:Ignorable="d"
        Loaded="Window_Loaded"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries />
        </ResourceDictionary>
    </Window.Resources>
    <Grid x:Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
 
        <TextBlock Grid.Row="0"
                   Height="25"
                   VerticalAlignment="Center"
                   HorizontalAlignment="Center"
                   Text="{Binding Message}" />
 
        <telerik:ReportViewer Grid.Row="1"
                              ViewMode="PrintPreview"
                              VerticalAlignment="Stretch"
                              ReportSource="{Binding Report}"
                              HorizontalAlignment="Stretch" />
 
    </Grid>
</Window>
Samuel
Top achievements
Rank 1
 answered on 01 Aug 2018
4 answers
1.3K+ views

I looked for  a long time for this information. I watched YouTube videos, went to blogs, and contacted Telerik support. I decided when I figured this out I was going to post the code so that someone else would not have to struggle with figuring this out like I did. Support helped and pointed me in the right direction to put this together but no easy example to go by. Below is the code for the HTML5 Report Viewer that I use and seems to work exactly like I wanted. It is javascript that parses the URL string and then is fed to the parameters of your report. The only part of this that you should have to change is the the section that is called "reportSource:" the parameters section. In the example below change the first part "TransMonth: " to the name of the parameter you used in your report and change the name at the end to what your URL parameter is called " getParameterByName('TransMonth') " Mine were named the same for simplicity. See the entire code below. Also some of the js and css files have custom paths in the example below. Adjust yours accordingly. I'm far from an expert at this but I know it took me a while to get this working and I thought if I could save someone else this headache I would.

01.<!DOCTYPE html>
03.<head>
04.    <title>Form My Report</title>
05.    
06.    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
07.    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
08. 
09.    <script src="ReportViewer/js/jquery-1.9.1.min.js"></script>
10. 
11.    <link href="ReportViewer/CSS/kendo.common.min.css" rel="stylesheet" />
12.    <link href="ReportViewer/CSS/kendo.blueopal.min.custom.css" rel="stylesheet" />
13. 
14.    <!--kendo.web.min.js or kendo.all.min.js can be used as well instead of the following custom Kendo UI-->
15.    <script src="ReportViewer/js/telerikReportViewer.kendo-12.0.18.416.min.js"></script>
16. 
17.    <script src="ReportViewer/js/telerikReportViewer-12.0.18.416.min.js"></script>
18. 
19.  <style>
20.        #reportViewer1 {
21.            position: absolute;
22.            left: 5px;
23.            right: 5px;
24.            top: 5px;
25.            bottom: 5px;
26.            overflow: hidden;
27.            font-family: Verdana, Arial;
28.        }
29.    </style>
30.</head>
31.<body>
32. 
33.    <div id="reportViewer1">
34.        loading...
35.    </div>
36. 
37.    <script type="text/javascript">
38.        function getParameterByName(name, url) {
39.            if (!url) url = window.location.href;
40.            name = name.replace(/[\[\]]/g, "\\$&");
41.            var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
42.                results = regex.exec(url);
43.            if (!results) return null;
44.            if (!results[2]) return '';
45.            return decodeURIComponent(results[2].replace(/\+/g, " "));
46.        }
47.        $(document).ready(function () {
48.            $("#reportViewer1")
49.                .telerik_ReportViewer({
50. 
51.                    // The URL of the service which will serve reports.
52.                    // The URL corresponds to the name of the controller class (ReportsController).
53.                    // For more information on how to configure the service please check http://www.telerik.com/help/reporting/telerik-reporting-rest-conception.html.
54.                    serviceUrl: "api/reports",
55. 
56.                    // The URL for custom report viewer template. The template can be edited -
57.                    // new functionalities can be added and unneeded ones can be removed.
58.                    // For more information please check http://www.telerik.com/help/reporting/html5-report-viewer-templates.html.
59.                    templateUrl: 'ReportViewer/templates/telerikReportViewerTemplate_custom.html',
60. 
61.                    //ReportSource - report description
62.                    reportSource: {
63.                        // The report can be set to a report file name (trdx report definition)
64.                        // or CLR type name (report class definition).
65.                        report: "ReportApplication.FormMyReport, ReportApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", parameters: {
66.                            TransMonth: getParameterByName('TransMonth'),
67.                            TransYear: getParameterByName('TransYear'),
68.                            PrevMonth: getParameterByName('PrevMonth'),
69.                            ItemName: getParameterByName('ItemName')
70.                    },
71. 
72.                    // Specifies whether the viewer is in interactive or print preview mode.
73.                    // PRINT_PREVIEW - Displays the paginated report as if it is printed on paper. Interactivity is not enabled.
74.                    // INTERACTIVE - Displays the report in its original width and height without paging. Additionally interactivity is enabled.
75.                    viewMode: telerikReportViewer.ViewModes.INTERACTIVE,
76. 
77.                    // Sets the scale mode of the viewer.
78.                    // Three modes exist currently:
79.                    // FIT_PAGE - The whole report will fit on the page (will zoom in or out), regardless of its width and height.
80.                    // 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.
81.                    // SPECIFIC - Uses the scale to zoom in and out the report.
82.                    scaleMode: telerikReportViewer.ScaleModes.SPECIFIC,
83. 
84.                    // Zoom in and out the report using the scale
85.                    // 1.0 is equal to 100%, i.e. the original size of the report
86.                    scale: 1.0,
87.                    enableAccessibility: false,
88. 
89.                    ready: function () {
90.                        //this.refreshReport();
91.                    },
92.                    }
93.                });
94.        });
95.    </script>
96. 
97.</body>
98.</html>
John
Top achievements
Rank 1
 answered on 01 Aug 2018
17 answers
637 views

     I have created Reporting Projects which are RestService, and ReportLibrary. These two projects will be integrated with another project. The problem is Reporting Project can't get httpcontext that send from another project. I tried to figure out the problem and i found that it was success to receive the httpcontext in RestService(as image Success001, Success002) but ReportLibrary cannot(as image Failed001, Failed002). You can see example images that attach with this post.

 

Has anyone found this? or any suggestion?

Thank you

 

Todor
Telerik team
 answered on 01 Aug 2018
5 answers
1.5K+ views

I have a Visual Studio solution that contains two different projects. One is a class library that I used to create a simple report that lists users and some of their standard info. The DataSource for the report is a class with some hard coded data as a JSON string:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
 
namespace AdventureWorksReports {
 
   public class UsersObject {
 
      public string UserId { get; set; }
 
      public string LastName { get; set; }
 
      public string FirstName { get; set; }
 
      public DateTime? LastLogin { get; set; }
   }
 
   [DataObject]
   public class Users {
 
      [DataObjectMethod(DataObjectMethodType.Select)]
      public static IEnumerable<UsersObject> GetUsers() {
         var json = <LONG-JSON-STRING>;
         return JsonConvert.DeserializeObject<List<UsersObject>>(json);
      }
   }
}

Using the report designer I have a simple report (UsersList.cs [Design] in the AdventureWorksReports project) that uses the above GetUsers() method for populating the report. Nothing fancy, but it's displaying the data.

I'm having no success getting anything to display in a second project in the solution. This second project is a .NET MVC web application. I have a ReportController that inherits from ApiController to serve as the reporting server that does return the same JSON that works in the stand alone report above:

using AdventureWorksReports;
using System.Collections.Generic;
using System.Web.Http;
 
namespace WebApp.Controllers {
 
   public class ReportController : ApiController {
 
      [HttpPost]
      public IEnumerable<UsersObject> Post() {
         var users = Users.GetUsers();
 
         return users;
      }
   }
}

 

I feel like I have no idea how to set up the ReportViewer control in razor. I have the following, but it is obviously lacking:

@(Html.TelerikReporting().ReportViewer()
   .Id("reportViewer1")
   .ServiceUrl("~/api/report/")
   .TemplateUrl("~/ReportViewer/templates/telerikReportViewerTemplate.html")
   .ReportSource()
   .ViewMode(ViewMode.Interactive)
   .ScaleMode(ScaleMode.Specific)
   .Scale(1.0)
   .PersistSession(false)
   .EnableAccessibility(false)
   .Deferred()
)

 

Can anybody give me some clues as to what is missing at this point? It seems like none of the tutorials I've found address the situation as I'm trying to build it.

thanks

-Josh

Josh
Top achievements
Rank 1
 answered on 30 Jul 2018
2 answers
496 views

Hi,

I have upgraded to the Telerik Reporting R2 2018 SP1 (old version: prior to r3-2016).

Now I get an exception like:
System.Security.SecurityException: The assembly MyAssembly is not permitted to be used by an ObjectDataSource component. Please include it in an AssemblyReferences element in the Telerik.Reporting configuration section of your application configuration file.

(I am using ObjectDataSource).

I have added an entry as described in https://docs.telerik.com/reporting/objectdatasource#configuration

and in https://docs.telerik.com/reporting/standalone-report-designer-extending-configuration

to my app.config.

But the exception is still thrown.

Note: the standalone designer works fine after I have added a similar entry to its config file.

 

Thanks in advance

Wolfgang

Wolfgang
Top achievements
Rank 1
 answered on 30 Jul 2018
1 answer
111 views

Hello,

I'm trying to build a chart and prepared a classes:

        public class ReportIndicators
        {
            public Item item1 { get; set; }
            public Item item2 { get; set; }
        }

        public class Item
        {
            public int value1 { get; set; }
            public int value2 { get; set; }
            public string itemType { get; set; }
        }

In the report I return the data:

        return new ReportIndicators
        {
            item1 = new Item
            {
                value1 = 10,
                value2 = 15,
                itemType = "type1"
            },
            item2 = new Item
            {
                value1 = 20,
                value2 = 15,
                itemType = "type2"
            }
        };

The chart looks good (chart.jpg), but the groups of columns are not centered above each label, why is this? If I'll add more items, the columns will be narrower. How I can fix that? I tried to change Scale.SpacingSlotCount property, but it did not help me.

When I built the chart, I used the item 'Add Graph Series' in the context menu on the graph and set the values as on the screen 1.jpg, 2.jpg. Is it correct?

 

Simon
Top achievements
Rank 1
 answered on 27 Jul 2018
5 answers
750 views

Hello,

I would like to show negative currency values with the negative symbol instead of bracket in the telerik report. E.g. -$101.00 instead of ($203.00) or -€101.00 instead of (€101.00) - we use different currencies in the app. I set this.Culture.NumberFormat.CurrencyNegativePattern = 1; in the *.Designer.cs file. The application compiles correctly and the values show properly, but the report in the design mode has an error:
at System.ComponentModel.ReflectPropertyDescriptor.SetValue(Object component, Object value)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement, CodePropertyReferenceExpression propertyReferenceEx, Boolean reportError)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)
Do you have the information how to fix the issue?

Simon
Top achievements
Rank 1
 answered on 26 Jul 2018
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?