Wednesday, February 8, 2012

issues: when upgrading ssrs2005 to 2008, get this error--The processing of Parent for the tablix cannot be performed. Cannot compare data of types System.String and System.Int16. Please check the data type returned by the Parent. 

Here is the solution:

It seems the report was originally designed in RS 2005. The main part contains a list with a nested table inside. The table has 8 table groups and 1 detail group.

Now based on the dataset, it seems this is just a regular nested grouping of data - however in the report *every* table group has an explicitly defined parent group expression. The parent group expression always seems to match the containing group's group expression.

In RS 2005, this (probably unintentional and) errorness recursive grouping was ignored. However in RS 2008 that's not the case and the report fails with the following internal error message:

The processing of Parent for the tablix ‘tblTimesheet’ cannot be performed. Cannot compare data of types System.Decimal and System.String. Please check the data type returned by the Parent.

Note that it tries to compare a String and a Decimal - this happens because the grpEmployee group expression is a string, but the grpRate group expression is a Decimal, and on the grpEmployee group the rate was specified as parent group expression.

The solution for the reports is to remove all those recursive parent group expressions, because you really just want regular nested table groups, but not a recursive hierarchy.
Again, if you just want nested groups, please do NOT specify a recursive parent group expression. Those should only be used if you really have recursive hierarchies in your data (e.g. parent-child hierarchy in a SSAS dataset).

I attached both modified reports (compare them in Windiff with your original reports and you will see that I just removed all the parent group expressions).

"cangrow " of a textbox's default value is false  in 2005, need to set true in 2008r2

No comments:

Post a Comment