Wednesday, March 21, 2012

Error on Export to Excel with Bookmarks and Navigation Jumps

Hello All,
We're running RS 2005. I have a problem in a report using two main sections. There's a top level report, made up from 4 tables within a rectangle. The second section of the report contains the detail of the calculations making the top level figures.
The second section of the report contains bookmarks and jump links to drill to different levels of the reporting structure. This works fine.
The top level of the report also has jump to bookmark links to drop into the relevant section of section two, and display the detail.
The problem I'm having is that although the jump links work fine within report manager, the report will not export to excel from report manager. It errors with the error at the bottom of this post.
Removing the bookmark links from the top level of the report solves the export issue (but obviously without the functionality I require). The strangest thing is that the export works fine from the development environment in VS .NET 2005, although the bookmarks do not work and claim an "invalid link" (or something similar).
Any ideas, anybody?
Thanks in advance.

Jon

Error message below:

w3wp!reportrendering!1!06/22/2006-16:51:19:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: An error occurred during rendering of the report., ;
Info: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: An error occurred during rendering of the report. > Microsoft.ReportingServices.ReportRendering.ReportRenderingException: An error occurred during rendering of the report. > System.ArgumentException: Item has already been added. Key in dictionary: ' 2' Key being added: ' 2'
at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
at System.Collections.Hashtable.Add(Object key, Object value)
at Microsoft.ReportingServices.Rendering.BIFFUtility.WorkBook.AddBookmarkLink(String name, String uniqueName, Boolean keepName)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.RenderTextBox(TextBox textBox, PageReportItemInfo reportItemInfo, PageCell pageCell, PageTableGrid pageTableGrid, ReportItem dataRegionParent, Hashtable& duplicateItemsTable, Hashtable riReferenceTable, Int32 row, Int32 col, Boolean addHeaderRows)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.RenderGridCell(PageLayout pageLayout, Int32 row, Int32 col, Hashtable& duplicateItemsTable, Boolean addHeaderRows, ReportItem parentItem, Hashtable riReferenceTable)
at Microsoft.ReportingServices.Rendering.BIFFUtility.WorkSheet.WriteRowBlocksAndCells(ExcelRenderer excelRenderer, Stream stream, UInt32 indexBeginOffsetPosition, Int32 minCol, Int32 maxCol)
at Microsoft.ReportingServices.Rendering.BIFFUtility.BaseWorkSheet.WriteWorkSheet(ExcelRenderer excelRenderer, Stream stream, Int32 offset)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.RenderPageLayout(PageLayout pageLayout, Int32& currentPageNumber, Stack& stack)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.RenderPageCollection(PageCollection pageCollection, Int32& currentPageNumber, Stack& stack, PageLayout& lastPageLayout)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.GenerateWorkSheets()
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.GenerateMainSheet()
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.RenderExcelWorkBook(CreateAndRegisterStream createAndRegisterStream)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.ProcessReport(CreateAndRegisterStream createAndRegisterStream)
at Microsoft.ReportingServices.Rendering.ExcelRenderer.ExcelRenderer.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, EvaluateHeaderFooterExpressions evaluateHeaderFooterExpressions, CreateAndRegisterStream createAndRegisterStream)

A little more on this issue.
I've two extra tables to the top level of the report to represent other views on the same data. I've found that the top level figure - which is a single table, with only a detail row, and only a single row of data feeding into it - works fine, whilst another new table (with again, a single table, only a detail row, but a different dataset with the same fields) does not work.
Confused
|||Again... some more on this issue!
A colleague of mine has a similar problem. Making a couple of assumptions, the common issue seems to be when you have bookmark/jump IDs that are generated from the dataset. If you have two different jump points that jump to the SAME bookmark, there appears to be an issue.
As mentioned previously, I can export through the development environment but the bookmark links show up as being invalid.
I'm sure this is a feature supported by Excel. Is this possibly a bug with the excel renderer?
Cheers,

Jon
|||

It definately seems like a bug, although I haven't been able to duplicate it yet. I don't have an idea for a workaround at this time.

The fact that you can run it successfully from Visual Studio is puzzling. Do you have different versions of Reporting Services installed on your server vs. where you are developing?

- Geoff

|||Hi Geoff,
Thanks for looking at this post too.
I do run both RS 2000 and 2005, but they're hosted on seperate servers, and I develop using the appropriate version of VS .NET (2k3 for RS 2k, and 2k5 for RS 2k5). In this case it's VS 2k5 with RS 2k5.
It will export from VS, but the bookmark links on the Excel version do not work and come up with a "Reference Not Valid" error when clicked. It simply won't export from the report manager and errors (as above). Would you like me to mail you spreadsheet with the export from the development environment? With the error message posted above, you can see what happens from both VS and report manager.
Regards,

Jon
|||

Hi Jon,

This looks like a bug to me. The best way to continue here is to submit it via Microsoft Connect, at https://connect.microsoft.com/SQLServer. This will get the issue into our bug pipeline so that it can be properly addressed and tracked for a fix.

Thanks, Geoff

|||OK Geoff, thanks for your help.
I've now logged this bug, so we'll see if something comes back from it. Unfortunately, connect isn't particularly compatible with Firefox so I ended up submitting it 4 times!
Shall I submit this bug too
Thanks again,

Jon
sql

No comments:

Post a Comment