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

15 posts, 0 answers
  1. Jonathan
    Jonathan avatar
    47 posts
    Member since:
    Sep 2010

    Posted 25 Mar 2013 Link to this post

    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
  2. Jonathan
    Jonathan avatar
    47 posts
    Member since:
    Sep 2010

    Posted 25 Mar 2013 Link to this post

    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
  3. DevCraft banner
  4. Trevor
    Trevor avatar
    13 posts
    Member since:
    Jun 2011

    Posted 26 Mar 2013 Link to this post

    Same problem, except I was using Silverlight.  Jonathan's solution worked just fine for me as well.
  5. Bob
    Bob avatar
    27 posts
    Member since:
    May 2007

    Posted 26 Mar 2013 Link to this post

    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?
  6. Jonathan
    Jonathan avatar
    47 posts
    Member since:
    Sep 2010

    Posted 26 Mar 2013 Link to this post

    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
  7. Stef
    Admin
    Stef avatar
    3036 posts

    Posted 28 Mar 2013 Link to this post

    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.

  8. Dennis
    Dennis avatar
    15 posts
    Member since:
    Feb 2009

    Posted 28 Mar 2013 Link to this post

    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
  9. Stef
    Admin
    Stef avatar
    3036 posts

    Posted 01 Apr 2013 Link to this post

    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.

  10. Dennis
    Dennis avatar
    15 posts
    Member since:
    Feb 2009

    Posted 04 Apr 2013 Link to this post

    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
  11. Stef
    Admin
    Stef avatar
    3036 posts

    Posted 05 Apr 2013 Link to this post

    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.

  12. Jim
    Jim avatar
    2 posts
    Member since:
    Oct 2011

    Posted 05 Apr 2013 Link to this post

    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?
  13. Dennis
    Dennis avatar
    15 posts
    Member since:
    Feb 2009

    Posted 08 Apr 2013 Link to this post

    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

  14. Vassil Petev
    Admin
    Vassil Petev avatar
    1765 posts

    Posted 09 Apr 2013 Link to this post

    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.

  15. Dennis
    Dennis avatar
    15 posts
    Member since:
    Feb 2009

    Posted 09 Apr 2013 Link to this post

    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
  16. Dennis
    Dennis avatar
    15 posts
    Member since:
    Feb 2009

    Posted 09 Apr 2013 Link to this post

    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
Back to Top
DevCraft banner