I'm testing upgrading SQL/SSRS from SQL 2008 R2 SP2 to
SQL 2012 SP1 (11.0.3349). Most of my reports' data source is a Dynamics NAV 2009R2 SQL DB
where most of the number fields are decimal(38,20). I'm finding that when I have
a zero value in a column on a report that the report loses formatting and throws
xml exceptions when rendered to Excel. So a field formatted for currency would
become 0.00000000000000000 and renders as text in Excel 2010, but if there's a
value in the cell then the formatting is fine. I'm looking on the MS site and
there is documentation that this is an Excel issue and was supposed to be fixed
in a CU for Office 2010 Excel, but I didn't see it in the release notes for the
CU. The error is "Excel found unreadable context.." There are no errors in the
report itself only rendering to Excel. Rendering to other formats is fine.
I think I've found a workaround where I change the value in a report by using an if statement
to make it equal to zero (IIF(value=0,0,value), but I've got several hundred
reports in my library and I wouldn't even know how many cells I'd have to
change.
I'm just looking to see if anyone else has ran into this issue
during their upgrade testing process.
I can repeat the error in a new report if I use as a Dataset
Select Cast(0 as decimal(38,20)) d1
, CAST(0 as decimal(10,2)) d2
Export to Excel gets this error
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="<logFileName>error056200_05.xml</logFileName><summary>Errors">http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error056200_05.xml</logFileName><summary>Errors
were detected in file 'C:\Users\...ME...\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\P42V8D4D\_TestExcel.xlsx'</summary><repairedRecords summary="Following is a list of repairs:"><repairedRecord>Repaired
Records: Cell information from /xl/worksheets/sheet1.xml part</repairedRecord></repairedRecords></recoveryLog>
The d1 column is now formatted as text 0.00000000000000000000 instead of as currency and the d2 column is formatted correctly