Telerik Forums
Reporting Forum
1 answer
83 views

Hello,

Since my previous post, we've been evaluating the functionalities of the designer.

One of our main requirement is to display data as crosstabs.

We intend to use a WebServiceDataSource to fetch the data as JSON so that the report will only have to display them, without having to make any calculations or containing business rules.

I've included the JSON sample that I'm using below. As you can see, we have a school, which contains classes, which contains a list of students and a list of subjects. Each student has evaluations : a grade in one of the subject of the class. Each subject has a display order and a grade average of the class.

Each report page must display one class with a crosstab. The crosstab must display the grades of each students for each subjects.

Now, I struggle to show the following information (in yellow in the screenshot below) : 

  • The room number of the class should be located in the header, but I can't get to it from the header since the class is part of the list and not the header.
  • The subjects should be on the Y-axis with :
    • The subject label on the crosstable header, ordered by it's display order
    • For each student line, the grade corresponding to the subject should be displayed
    • For each subject, the average class (from the JSON) should be displayed at the bottom of the crossbar

Some information :

  • For the purpose of this report, I've used a JSON inline datasource.
    • I succeeded to show the grade for each student by flattening the data into rows of student-subject-grade inside the class and grouping inside the crosstab. But this solution doesn't suits us because it duplicates data for each student (name, surname,..) and each subject.
  • Though, I still couldn't show the class average from the JSON for each subject.
  • We don't want to use a subreport.

I'd be glad if you could advise me on the best way to solve those issues.

Also, I've two additional questions : 

  1. In a crosstab cell which contains a textbox, is it possible, under some conditions (Conditional formatting ?), to show something else instead of the textbox ? For example, sometimes a student doesn't take a subject. In this case, for this student, we'd like to include a diagonal lines through the whole cell.
    1. The Data Explorer doesn't show the drilled information such as the students values and their evaluations. Since those are a great help at design time, isn't there a way to display those ?

    Thanks a lot for your help and I can provide more information if needed or if something is unclear.

    Here's the JSON which is the main Datasource. Also, I'm attaching the .trdx (in the .zip) to this post.

    {
      "schoolName": "Muggle School",
      "schoolImage": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
      "classes": [
        {
          "name": "East123",
    	  "roomNumber": 10,
          "studentAmount": 3,
          "students": [
    		{
    		  "id": 12345,
    		  "name": "Snow",
    		  "surname": "John",
    		  "evaluations": [
    		    {
    			  "subjectCode": "ENGL",
    			  "grade": 6
    			},
    			{
    			  "subjectCode": "FREN",
    			  "grade": 3
    			},
    			{
    			  "subjectCode": "MATH",
    			  "grade": 5.5
    			}
    		  ]
    		},
    		{
    		  "id": 12346,
    		  "name": "Potter",
    		  "surname": "Harry",
    		  "evaluations": [
    		    {
    			  "subjectCode": "ENGL",
    			  "grade": 4
    			},
    			{
    			  "subjectCode": "FREN",
    			  "grade": 4.5
    			},
    			{
    			  "subjectCode": "MATH",
    			  "grade": 4.5
    			}
    		  ]
    		},
    		{
    		  "id": 12347,
    		  "name": "Parker",
    		  "surname": "Peter",
    		  "evaluations": [
    		    {
    			  "subjectCode": "ENGL",
    			  "grade": 5
    			},
    			{
    			  "subjectCode": "FREN",
    			  "grade": 5.5
    			},
    			{
    			  "subjectCode": "MATH",
    			  "grade": 6
    			}
    		  ]
    		}
    	  ],
    	  "subjects": [
    	    {
    		  "code": "ENGL",
    		  "label": "English",
    		  "displayOrder": 2,
    		  "classAverage": 5
    		},
    		{
    		  "code": "FREN",
    		  "label": "French",
    		  "displayOrder": 3,
    		  "classAverage": 4.5
    		},
    		{
    		  "code": "MATH",
    		  "label": "Mathematics",
    		  "displayOrder": 1,
    		  "classAverage": 5.5
    		}
    	  ]
        },
    	{
          "name": "South123",
    	  "roomNumber": 20,
          "studentAmount": 3,
          "students": [
    		{
    		  "id": 12348,
    		  "name": "Sparrow",
    		  "surname": "Jack",
    		  "evaluations": [
    		    {
    			  "subjectCode": "ENGL",
    			  "grade": 6
    			},
    			{
    			  "subjectCode": "FREN",
    			  "grade": 3
    			},
    			{
    			  "subjectCode": "MATH",
    			  "grade": 5.5
    			}
    		  ]
    		},
    		{
    		  "id": 12349,
    		  "name": "Black",
    		  "surname": "Sirius",
    		  "evaluations": [
    		    {
    			  "subjectCode": "ENGL",
    			  "grade": 4
    			},
    			{
    			  "subjectCode": "FREN",
    			  "grade": 4.5
    			},
    			{
    			  "subjectCode": "MATH",
    			  "grade": 4.5
    			}
    		  ]
    		},
    		{
    		  "id": 12350,
    		  "name": "Baggins",
    		  "surname": "Frodo",
    		  "evaluations": [
    		    {
    			  "subjectCode": "ENGL",
    			  "grade": 5
    			},
    			{
    			  "subjectCode": "FREN",
    			  "grade": 5.5
    			},
    			{
    			  "subjectCode": "MATH",
    			  "grade": 6
    			}
    		  ]
    		}
    	  ],
    	  "subjects": [
    	    {
    		  "code": "ENGL",
    		  "label": "English",
    		  "displayOrder": 2,
    		  "classAverage": 5
    		},
    		{
    		  "code": "FREN",
    		  "label": "French",
    		  "displayOrder": 3,
    		  "classAverage": 4.5
    		},
    		{
    		  "code": "MATH",
    		  "label": "Mathematics",
    		  "displayOrder": 1,
    		  "classAverage": 5.5
    		}
    	  ]
        }
      ]
    }
    1 answer
    97 views

    I'm trying to use Telerik.Reporting 14.1.20.618 in a NET 8 AWS Lambda. The lambda project makes reference to another class library where there's also a reference to Telerik.Reporting, but whenever I try to generate a report, I keep getting the following error message:

    Could not load file or assembly 'Telerik.Reporting, Version=14.1.20.618, Culture=neutral, PublicKeyToken=a9d7983dfcc261be'. An operation is not legal in the current state. (0x80131509)



    Resolved assembly's simple name should be the same as of the requested assembly.
       at System.Runtime.Loader.AssemblyLoadContext.ValidateAssemblyNameWithSimpleName(Assembly assembly, String requestedSimpleName)
       at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingEvent(AssemblyName assemblyName)
       at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingResolvingEvent(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)



    I assume it shouldn't be a compatibility issue since that Telerik version supports standard 2.0
    Dimitar
    Telerik team
     answered on 06 Sep 2024
    1 answer
    42 views

    I have a report having 28 column to display with 13000 records with grouping applied on 3 fields which comes in 890 pages it takes around 2 mins to render.How to improve the performance of the report?

    I am binding List<Generic Type> as report data source.

    Dimitar
    Telerik team
     answered on 06 Sep 2024
    1 answer
    35 views
    1 answer
    52 views

    Hello Telerik,

    I am following the Telerik Virtual Classroom course for Telerik Reporting.  At the end of the Hosting an API Endpoint section the teacher runs the app and sees the Report Viewer Container.   When I launch the app (without errors) I do not see this report container on the Reports.razor page.

    Thank you for your assistance.

    @page "/report"
    @using Telerik.ReportViewer.Blazor

    <style>
        .trv-report-viewer {
            width: 100%;
            height: 880px;
        }
    </style>
    Testing Outside of Div
    <div class="dashboard">
        Testing inside of Div
        <ReportViewer ViewerId="rv1"
                      ServiceUrl="api/reports"
                      ReportSource="@(new ReportSourceOptions
                                      {
                                          Report = "rps_dashboard_report.trdp"
                                      })"
                      />

    </div>


    <link href="css/dashboard.css" rel="stylesheet" />

    @code {

    }

    Dess | Tech Support Engineer, Principal
    Telerik team
     answered on 28 Aug 2024
    2 answers
    80 views

    I'm using Q32024 (Trial) in a Blazor Server App, added after initial project creation (existing app, not using the "create Telerik app" wizard)

    I have a VERY simple page with just a native report viewer (added via Add new Blazor Component -> Telerik Native Report Viewer Page) pointed to the SampleReport generated when adding this page.

    When rendering the page, the report takes over 10s to show. (I'm able to provide a video of this). Any other report has the same issue, both with and without parameters. Subsequent loads are a little bit quicker, but still C5s

    Looking in Output, it looks like it's attempting to repeatedly render the report - I have the following block repeated several times (Snipped for brevity, more available);

    icrosoft.AspNetCore.Components.Server.Circuits.RemoteRenderer: Debug: Completing batch 32 without error in 32.2212ms.
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 154 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 155 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 156 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 157 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher: Trace: InvocationId (null): Sending result of type 'System.Void'.
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 158 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 159 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 160 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 161 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 162 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 163 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 164 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 165 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 166 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 167 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 168 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 169 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 170 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 171 of type Telerik.Blazor.Components.ToolBar.ToolBarToolsFactory
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 118 of type Telerik.Blazor.Components.Common.Popup
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 126 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 127 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 128 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 129 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 130 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 131 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 132 of type Telerik.Blazor.Components.ToolBarTemplateItem
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 133 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 134 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 135 of type Telerik.Blazor.Components.ToolBarToggleButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 136 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 137 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 138 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 139 of type Telerik.Blazor.Components.ToolBarToggleButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 140 of type Telerik.Blazor.Components.ToolBarToggleButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 141 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 142 of type Telerik.Blazor.Components.ToolBarButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 143 of type Telerik.Blazor.Components.ToolBarToggleButton
    Microsoft.AspNetCore.Components.RenderTree.Renderer: Debug: Rendering component 144 of type Telerik.Blazor.Components.ToolBarToggleButton

    Anyone have any ideas as to why it's doing this or why it's SO slow - as it stands it's unacceptable for me to use, but I'm happy for someone to point out where I may have gone wrong / something I may have missed....

    <EDIT>

    Looking at the code that's been added by the add item wizard, it's correctly (?) added the TelerikRootComponent to my main layout page, but I also needed to wrap the whole Viewer in ANOTHER root component otherwise I'm seeing an error that no root component is present.

    Also, and not sure if this is significant, the Sample Report actually states that

    "This is a sample report to demonstrate a working HTML5 Report Viewer and REST Reporting Service with XML report definition (trdx). The report definition is created with the Standalone Report Designer" - I understand that the Blazor native viewer is built on top of the HTML5 viewer, but this seemed odd (doubly since it wasn't actually created by the standalone designer but I guess that's the "original" source of the report!

    I've also noticed that despite the fact I've set @bind-ParametersAreaVisble to a false value, it still shows (sample report has a date param), even though I'm specifying the parameter;

    public ReportSourceOptions ReportSource { get; set; } = new ReportSourceOptions { Report = "sampleReport.trdp", Parameters = new Dictionary<string, object> 

        {"Date", DateTime.Today}
    }};

    I've also tried passing as a simple string in the format "12/08/2024" - interestingly, in both cases, the value I specify for the parameter is actually shown in the parameter editor

    </EDIT>

    Richard
    Top achievements
    Rank 1
    Iron
    Iron
     answered on 28 Aug 2024
    1 answer
    59 views
    how to sum a column of a table and show the result in a separate text box?
    Ivet
    Telerik team
     answered on 26 Aug 2024
    1 answer
    64 views
    Please see attached image.  I'm having trouble setting second level grouping across multiple fields/columns.

    I'm successfully grouping on the facility.  However, I need to group (not repeat) the highlighted values. 

    I'm able to do this be controlling the data to passed in to the report, but the result is just empty cells, so it looks like data is missing.

    I need to achieve this through the report designer so the grid cell lines are not repeated for the second level grouping (like it does for the facility)?

    How do I achieve this through the designer?  Step instructions please? 
    Ivet
    Telerik team
     answered on 20 Aug 2024
    1 answer
    91 views

    I have installed the trial report. I tried with standalone report designer for a nested report. I need to filter the table data based on the parent Id of report detail section. Picture is given below.

    The report dataSource is SqlDataSourceMain and Table DataSource is sqlDataSourceDetail

    I do not want user input parameter for filtering. The report will be filterd based on the parent Id on the Report Detail Section.

    I also need similar filter for Graph for each Site_id parent value.

     

    I am looking forward to the solution asap.

    Thanks

    Zillur

     

     

     

     

    Ivet
    Telerik team
     answered on 19 Aug 2024
    1 answer
    111 views
    I am using Telerik reporting using .NET as backend APIs and Angular for front-end report viewer.

    Now I have updated the version on both side, and its working fine generally. 
    But randomly I am getting this error of version mismatch while I try to generate report.

    'The version of the Report Viewer '16.0.22.225' does not match the version of the Reporting REST Service '17.2.23.1114'. Please make sure both are running same version'

    I know that the error statement suggests that the backend and frontend library versions don't match and must be aligned.
    But the config I have updated works the majority time and successfully generates reports. But this error comes randomly.
    So I am confused about how it is getting an older version of Report Viewer (16.0.22.225) even though I have updated the viewer configuration (^20.23.1010).

    I have updated both side's versions below :

    Server Side :

    OLD:
     <PackageReference Include="Telerik.Reporting" Version="16.0.22.225" />
     <PackageReference Include="Telerik.Reporting.Services.AspNetCore" Version="16.0.22.225" />
     <PackageReference Include="Telerik.Reporting.WebServiceDataSource" Version="16.0.22.225" />

    NEW:
     <PackageReference Include="Telerik.Reporting" Version="17.2.23.1114" />
     <PackageReference Include="Telerik.Reporting.Services.AspNetCore" Version="17.2.23.1114" />
     <PackageReference Include="Telerik.Reporting.WebServiceDataSource" Version="17.2.23.1114" />


    Client side :

    OLD:
    "@progress/telerik-angular-report-viewer": "^15.22.225"

    NEW:
    "@progress/telerik-angular-report-viewer": "^20.23.1010"
    Dimitar
    Telerik team
     answered on 19 Aug 2024
    Top users last month
    Anislav
    Top achievements
    Rank 6
    Silver
    Bronze
    Bronze
    Jianxian
    Top achievements
    Rank 1
    Iron
    Marco
    Top achievements
    Rank 3
    Iron
    Iron
    Iron
    Jim
    Top achievements
    Rank 2
    Iron
    Iron
    Nurik
    Top achievements
    Rank 2
    Iron
    Iron
    Want to show your ninja superpower to fellow developers?
    Want to show your ninja superpower to fellow developers?