This is a migrated thread and some comments may be shown as answers.

'Telerik.Reporting.Data.Grouping is not defined' in Q1 2013

14 Answers 757 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Jonathan
Top achievements
Rank 1
Jonathan asked on 25 Mar 2013, 05:27 PM
Good day,

I'm having a problem with Telerik Reporting Q1 2013 v 7.0.13.220 that I just upgraded to.

I'm getting an error that says 'Telerik.Reporting.Data.Grouping is not defined' for all of my reports. I'm using the Telerik.Web.UI Ajax control set 2013.1.220.40.

I have not changed the reports at all. All I did was upgrade.

Is this a known issue? Should I go back to Q3 2012?

Thanks in advance,
Jonathan

14 Answers, 1 is accepted

Sort by
0
Jonathan
Top achievements
Rank 1
answered on 25 Mar 2013, 05:54 PM
Ok. I fixed the problem by editing the designer script.

Apparently, you guys moved the Grouping class from Telerik.Reporting.Data to Telerik.Reporting. I just made the adjustment and everything compiled fine.

Thanks anyway,
Jonathan
0
Trevor
Top achievements
Rank 1
answered on 26 Mar 2013, 01:19 PM
Same problem, except I was using Silverlight.  Jonathan's solution worked just fine for me as well.
0
Bob
Top achievements
Rank 1
answered on 26 Mar 2013, 06:41 PM
If I may ask, what adjustment was made.  Did you have to remove all references to Telerik.Reporting.Data to Telerik.Reporting?

Did you make a global find and replace change for this?   Or I guess the question is how do you edit the Designer script?
0
Jonathan
Top achievements
Rank 1
answered on 27 Mar 2013, 01:26 AM
Hey Bob,

That's correct. Change all references from Telerik.Reporting.Data.Grouping to Telerik.Reporting.Grouping. You can either do a global find / replace or simply bring up the error list after you attempt to compile and double click each error to jump to the line where you can make the correction manually.

Cheers
0
Stef
Telerik team
answered on 28 Mar 2013, 01:59 PM
Hi everyone,

In Telerik Reporting Q1 2013 release we have removed obsolete types and properties which are mentioned in the corresponding Release History article. Please check my colleague's post in following forum thread for details about how to proceed: Errors after upgrading to Q1 2013

I hope this will help you to upgrade more easily.

Regards,
Stef
the Telerik team

Telerik Reporting Q1 2013 available for download with impressive new visualizations. Download today from your account.

0
Dennis
Top achievements
Rank 2
answered on 28 Mar 2013, 07:33 PM
To Telerik --

These errors that everyone is encountering after running the Telerik Reporting Upgrade
Wizard are in the "designer" files that are automatically generated by your product.

This is a serious quality control issue.

Up to this point, Telerik has done an excellent job of creating upgrade wizards that handle
the replacements needed on a solution using old controls/functionality with current controls/functionality.

However, with the new Control Panel, Telerik now prefers to uninstall older versions in Visual Studio
and replace them with the current versions.  If Telerik is going down that path and it is clear that they
are, then your wizards have to make 100% accurate conversions of existing code (specifically, code that
is created by your products....i.e. Reporting designer files).

We need a fix to the Reporting Upgrade Wizard as soon as possible.

Sincerely,
Dennis
0
Stef
Telerik team
answered on 01 Apr 2013, 04:18 PM
Hello Dennis,

The idea of the Control panel is to make easier the download and installation process for multiple products at the same time. If you need any specific version, you can log into your account and navigate to the purchased or trial products, download option, where you will find the msi files. The suggested by us approach to serialize your report definition with the new standards is to downgrade to a previous version where errors are still warnings, and make a small change in the designer. Thus the initiated by you change can be observed and controlled. Removing properties is a big change requiring time for adaptation, which is why we keep them obsolete for a year and prompt messages for the upcoming change.

About the Upgrade Wizard, its purpose is to help you upgrade project references and configuration files. The wizard does not and does not have to override any custom code, so it does not mess with your development. We consider revising the Upgrade functionality, but it is controversy whether updating custom code is a plus or a minus, as what it currently updates is the common for everyone using the product - references and configurations, and the rest is design specific.

Let us know if you have any further questions or concerns.

Greetings,
Stef
the Telerik team

Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.

0
Dennis
Top achievements
Rank 2
answered on 04 Apr 2013, 04:45 PM
Stef --

Please refer to Support Ticket # 678771.

We are not asking for Telerik to fix "custom code". 

We are asking Telerik's Upgrade Wizard to fix their "generated" code.

I have written a VS Macro to help with the problem in the interim; however, I could not attach it in the
forum since the forums do not except .zip files (thus the support ticket).

Thanks,
Dennis
0
Stef
Telerik team
answered on 05 Apr 2013, 02:24 PM
Hi Dennis,

Thank you for your feedback. We really appreciate the community involvement in the process of improving our product and do our best to make out customers happy.

That's why we have created the Upgrade Wizard at first place - to help our users easily switch the versions of Telerik Reporting without bothering with the boring tasks of changing assembly references and assembly versions in the a number of Visual Studio projects, configurations and resource files, etc. While these are pretty routine tasks that can be easily automated modifying the user's code is not that simple. 

The Visual Studio Report Designer is built on top of the .NET Framework's component model (the same technology that powers the Windows Forms designers - Form, UserControl, etc.) that allows us to create such a WYSIWYG designer which on the other hand let users create reports with a couple of mouse clicks instead of writing the code by themselves. Please note that this designer is yet another tool aimed to help the users to create reports in an easy manner and it utilizes the Telerik Report object model/API. 

The Telerik Report object model represents the report definition and this is the only way to create reports in Telerik Reporting. You can write the code that crates the report on your own or you can use the report designer to create the code for you but the result is always the same - a Telerik.Reporting.Report object. What is more the Telerik Report API consists of a couple of plain .NET objects that you can use in any way as soon as it follows the rules of the .NET Framework and the programming language you are working with.

That said modifying the user code is pretty complicated task and generally speaking this is not our primary goal. While the designer generated code may look straightforward as of now we cannot offer a generic solution that work in all scenarios including custom code (ex. event handler, etc.) and can handle all .NET programming languages. What is more - our primary goal is to provide a reporting engine that can generate reports from different data source, providing OLAP capabilities, and producing different output format

The changes in the Report API are always for reason and are driven by the sole purpose of improving the product - fixing legacy problems (in the naming, in the API design, in the functionality) or enabling a new functionality. While we completely understand the consequences of such changes we are doing our best to minimize its damage. That's why the rule that we follows is that we leave the legacy API (methods, properties, classes, etc.) operation for some time (usually a two or more major versions that measured in time is about 1 year) and after that we can retire it. During this period the obsolete APIs are marked appropriately; listed in the release history. Additionally we provide instructions how to update your code to start using the new APIs.

To avoid this and other problems we have developed the XML report definition that comes with version support and the stand-alone report designer works with report definitions on any version flawlessly.

We count your vote in for granting the Upgrade Wizard with greater control. Keep in mind that without considering all ethical factors for messing with code not fully initiated by us(means expressions, functions and other hacks that may have been used), this is the available functionality. We really appreciate the community involvement in the process of improving our product and do our best to make everyone happy.

All the best,
Stef
the Telerik team

Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.

0
Jim
Top achievements
Rank 1
answered on 05 Apr 2013, 03:39 PM
I just went through this as well and it was a nightmare.  You are skirting around Dennis' point, and that is the compile errors in YOUR DESIGNER code, not code written by us.  Why should we have to manually go in and change namespaces that your upgrade wizard should have fixed?
0
Dennis
Top achievements
Rank 2
answered on 08 Apr 2013, 05:20 PM
Stef --

I appreciate your full response but I believe your logic is flawed.

1. Whether the code was generated by the Telerik Reporting Designer or was written manually by a developer,
     the fact is Telerik changed the namespaces.  Using the upgrade wizard causes the resulting project to fail
    compilation.
2. While exporting the reports into an xml format may resolve the issue, the "original"/"traditional" methodology for
     creating a Telerik Reporting Project was to create a Class Library Project then add Telerik Reports to the project.
     This methodology was not invented by me but recommended by Telerik.  If Telerik wants its' developers to use
      only xml report format exclusively they need to do 2 things:
      a) Prove that using the new format does not adversely affect performance
      b) Provide a utility that allows a developer to pass a Class Library Project of Reports that "automatically" generate
          the xml format.  You can't honestly expect a developer with a known, working process to "manually" export what
          could be dozens of reports, can you?
3. From the developers' (customers') perspective, the Upgrade Wizard is provided to "increase" developer productivity.
    Currently, the upgrade wizard "decreases" developer productivity.  The upgrade wizard fails in the following 3 ways:
      a) NO WARNING - it does not warn the developer that running the wizard will cause the result to fail compilation (no help)
      b) NO UNDO -- it does not provide the developer any way to auto-undo the upgrade (lower productivity)
      c) NO AUTOFIX OF NAMESPACES - again, Telerik changed the namespaces, the wizard should auto-fix these issues
          (increase productivity).

Finally, I provided you (Telerik) in Ticket #678771 the source code for a Visual Studio Macro for correcting the problem.
And yet, instead of (at least) providing the contents of that ticket and source code to this forum, you continue to argue with us.

I have been a subscriber to Telerik's Product Suite since 2008.  Part of the reason for my subscription was Telerik's support and
their stance to "deliver more than expected".

I have noticed that since Telerik's explosive growth over the past 2 years I am more disappointed in some of the responses from
Telerik.  This particular issue being a prime example.

Sincerely,
Dennis

0
Vassil Petev
Telerik team
answered on 09 Apr 2013, 12:05 PM
Hello Dennis,

Thank you very much for the VS marco. If you think it can help someone else, feel free to post it in our forums. We cannot do this for you, because it is yours - we cannot distribute it.

As a first step to decrease the friction caused by the Upgrade Wizard issue, we will update the messages to clearly state what the wizard does (ie. back up your project and update the Telerik Reporting references). As a next step we will see whether to improve its behavior.

As to the XML report format, it is just one of two formats that we support. You can use one, or the other, or both in different projects, depending on your needs and requirements. Again based on these requirements, we can propose you to use one or the other, but we don't push just the XML format or just the class library, because these are different formats, and as such cover different cases. The standalone Report Designer can load reports from both report formats (reports from a class library need to be imported into XML and then loaded in the designer), whereas the Visual Studio designer works only with class library reports.


Best Regards,
Vassil Petev
the Telerik team

Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.

0
Dennis
Top achievements
Rank 2
answered on 09 Apr 2013, 05:30 PM
Vassil --

Thank you for addressing the friction related to the upgrade wizard.

Unfortunately, I could not attach  a .zip to a forum post.  Only Telerik can do that which is why I sent the code in via a ticket.

However, for everyone else, I will post the information in the following code block perhaps you can copy and paste if you are interested in using it.

Keep in mind the following items:
1) For this post, I commented out the line that actually makes the correction, so initially the code only reports to the Output Pane those files it finds that may have the error.
2) It only works for Telerik Reporting generated designer files.  It does this by performing 2 checks - it checks the name of the file (must contain "designer") and it expects the file to contain a specific subroutine name (InitializeComponent) and "Telerik.Reporting".
3) I have only tested it with .vb files.  My projects are done in VB.  There should be no difference for .cs files.  I am just letting you know.

Option Strict Off
Option Explicit On
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
 
Imports System.Collections.Generic
Imports System.IO
 
Public Module TelerikReporting1Q2013Fix
    '
    ' This subroutine performs the string replacements for a single file.
    ' It does not back up the file so be careful!!!!
    ' Before you can use it you need to uncomment the File.WriteAllText code line
    '
    Private Sub FixTelerikReportingDesignerFile(ByVal fileName As String)
        Dim fs As String = File.ReadAllText(fileName)
        '
        ' fix the file by replacing the following strings...
        '
        fs = fs.Replace("Telerik.Reporting.Data.Grouping", "Telerik.Reporting.Grouping")
        fs = fs.Replace("Telerik.Reporting.Data.Sorting", "Telerik.Reporting.Sorting")
        fs = fs.Replace("Telerik.Reporting.Data.Filter", "Telerik.Reporting.Filter")
        fs = fs.Replace("Telerik.Reporting.Data.SortDirection", "Telerik.Reporting.SortDirection")
 
        '
        ' IF YOU WANT TO USE THIS MACRO YOU SHOULD UNCOMMENT THE FOLLOWING CODE LINE   File.WriteAllText
        '
        ' THIS MACRO DOES NOT MAKE A BACKUP OF YOUR DESIGNER FILE AND HAS ONLY BEEN TESTED WITH .VB DESIGNER
        ' FILES
        '
        '        File.WriteAllText(fileName, fs)
    End Sub
    '
    ' This function checks a file that has the string "designer" in its filename.
    ' It loads the file and looks for the following 2 strings:
    '   telerik.reporting
    '   initializecomponent
    '
    ' If it finds these 2 strings then we are confident that this is a Telerik Reporting Designer file
    ' so return true.....else return false
    '
    Private Function IsDesignerFileATelerikReportingFile(ByVal fileName As String) As Boolean
        Dim fs As String = File.ReadAllText(fileName)
 
        If fs.ToLower.Contains("telerik.reporting") AndAlso fs.ToLower.Contains("initializecomponent") Then
            Return True
        Else
            Return False
        End If
    End Function
    '
    ' FixReportFiles
    '    This is the main call for fixing a Solution. The code is leveraged from
    ' Microsoft samples for recursively looping through a Solution and looking at
    ' all the project items
    '
    Public Sub FixReportFiles()
        DTE.StatusBar.Text = "Starting Fix for Telerik.Reporting 1Q2013..."
        Dim project As Project
        Dim projectObjects As Object()
        Dim window As Window
        Dim target As Object
 
        window = DTE.Windows.Item(Constants.vsWindowKindCommandWindow)
        projectObjects = DTE.ActiveSolutionProjects
        If projectObjects.Length = 0 Then
            Exit Sub
        End If
        project = DTE.ActiveSolutionProjects(0)
        If (DTE.ActiveWindow Is window) Then
            target = window.Object
        Else
            target = GetOutputWindowPane("List Project")
            target.Clear()
        End If
        ListProjAux(project.ProjectItems(), 0, target)
        DTE.StatusBar.Text = "Ending Fix for Telerik.Reporting 1Q2013..."
    End Sub
    '
    ' ListProjAux
    '   Leveraged as-is from Microsoft's Sample Macros
    '
    Private Sub ListProjAux(ByVal projectItems As EnvDTE.ProjectItems, ByVal level As Integer, ByVal outputWinPane As Object)
        Dim projectItem As EnvDTE.ProjectItem
 
        For Each projectItem In projectItems
            '' Ignore item if it is not rooted in this collection (check for VC project model).
            If projectItem.Collection Is projectItems Then
                Dim projectItems2 As EnvDTE.ProjectItems
                Dim notSubCollection As Boolean
 
                OutputItem(projectItem, level, outputWinPane)
                '' Recurse if this item has subitems ...
                projectItems2 = projectItem.ProjectItems
                notSubCollection = projectItems2 Is Nothing
                If Not notSubCollection Then
                    ListProjAux(projectItems2, level + 1, outputWinPane)
                End If
            End If
        Next
    End Sub
    '
    ' OutputItem
    '   Leveraged as-is from Microsoft's Sample Macros
    '
    Private Sub OutputItem(ByVal projectItem As EnvDTE.ProjectItem, ByVal level As Integer, ByVal outputWinPane As Object)
        Dim i As Integer = 0
 
        While (i < level)
            outputWinPane.OutputString("    ")
            i = i + 1
        End While
        Dim fileName As String = projectItem.FileNames(1)
        outputWinPane.OutputString(fileName)
        outputWinPane.OutputString(Microsoft.VisualBasic.Constants.vbCrLf)
        If fileName.ToLower.Contains("designer") Then
            If IsDesignerFileATelerikReportingFile(fileName) Then
                outputWinPane.OutputString("......this is a Telerik Reporting Designer File")
                outputWinPane.OutputString(Microsoft.VisualBasic.Constants.vbCrLf)
                '
                ' The next line of code calls the subroutine to fix the Designer file
                '
                FixTelerikReportingDesignerFile(fileName)
                outputWinPane.OutputString("......the Telerik Reporting Designer File is now fixed!!!")
                outputWinPane.OutputString(Microsoft.VisualBasic.Constants.vbCrLf)
            End If
        End If
    End Sub
    '
    ' GetOutputPane
    '   Leveraged as-is from Microsoft's Sample Macros
    '
    Private Function GetOutputWindowPane(ByVal Name As String, Optional ByVal show As Boolean = True) As OutputWindowPane
        Dim window As Window
        Dim outputWindow As OutputWindow
        Dim outputWindowPane As OutputWindowPane
 
        window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
        If show Then window.Visible = True
        outputWindow = window.Object
        Try
            outputWindowPane = outputWindow.OutputWindowPanes.Item(Name)
        Catch e As System.Exception
            outputWindowPane = outputWindow.OutputWindowPanes.Add(Name)
        End Try
        outputWindowPane.Activate()
        Return outputWindowPane
    End Function
 
End Module

I hope this helps some other developers.

Sincerely,
Dennis
0
Dennis
Top achievements
Rank 2
answered on 09 Apr 2013, 05:34 PM
To all --

I should have added that the above code is the source code for a Visual Studio macro.

Inside the Visual Studio Development Environment, select Tools / Macros / Macros IDE to bring
up the editor for a new VS Macro.  You should then be able to cut and paste the above code into the
Macros IDE, debug, test, etc.

- Dennis
Tags
General Discussions
Asked by
Jonathan
Top achievements
Rank 1
Answers by
Jonathan
Top achievements
Rank 1
Trevor
Top achievements
Rank 1
Bob
Top achievements
Rank 1
Stef
Telerik team
Dennis
Top achievements
Rank 2
Jim
Top achievements
Rank 1
Vassil Petev
Telerik team
Share this question
or