我使用Visual Studio报表生成器创建了一个报表,并为两个表创建了两个数据集,并在导出到Excel时借助分页符和页面名称将它们导出到两个工作表中。
在Visual Studio上,报表运行完美。但是当它上传到SSRS报告服务器时,我收到一条错误消息:
报告定义无效。细节:元素' Tablix'在 命名空间 ' http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' 具有无效的子元素' PageName'在命名空间 ' http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition&#39 ;. 预期可能元素列表:' TablixCorner,TablixBody, TablixColumnHierarchy,TablixRowHierarchy,LayoutDirection, GroupsBeforeRowHeaders,RepeatColumnHeaders,RepeatRowHeaders, FixedColumnHeaders,FixedRowHeaders,Style,SortExpressions, ActionInfo,Top,Left,Height,Width,ZIndex,Visibility,ToolTip, DocumentMapLabel,Bookmark,RepeatWith,CustomProperties,PageBreak, KeepTogether,NoRowsMessage,DataSetName,Filters,DataElementName, OmitBorderOnPageBreak,DataElementOutput'在命名空间 ' http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' 以及命名空间中的任何元素' ## other'。 (rsInvalidReportDefinition)
我使用的是Visual Studio 2015.我的SSRS版本是2008年。
我通常必须使用黑客来转换我生成的2015年报告,以便通过编辑记事本中的.rdl文件使其与我的2008版SSRS兼容。
在SSRS 2008的报告中是否存在允许分页的黑客攻击?
答案 0 :(得分:1)
您的错误消息会告诉您需要知道的一切:
无效的子元素' PageName '
预期可能元素的列表:< TablixCorner,TablixBody,TablixColumnHierarchy,TablixRowHierarchy,LayoutDirection,GroupsBeforeRowHeaders,RepeatColumnHeaders,RepeatRowHeaders,FixedColumnHeaders,FixedRowHeaders,Style,SortExpressions,ActionInfo,Top,Left,高度,宽度,ZIndex,可见性,工具提示,DocumentMapLabel,书签,RepeatWith,CustomProperties, PageBreak ,KeepTogether,NoRowsMessage,DataSetName,Filters,DataElementName,OmitBorderOnPageBreak,DataElementOutput'
SSRS 2008支持分页符,它只是不支持页面名称。要么删除名称并继续使用 hack 方法来确保兼容性,要么只需设置Visual Studio to target SSRS 2008就可以了。