Ssrs 2008 无法在AX 2009的SSR中显示维度扩展数据类型
如果使用AX2009中的内置查询(EmplTableListPage)并尝试使用它构建SSRS报表,并且使用字段维度[1](或任何维度字段),则Visual Studio 2008中的报表预览将正确呈现。将报告部署到SSRS服务器后,它将无法加载,并出现类似以下错误:Ssrs 2008 无法在AX 2009的SSR中显示维度扩展数据类型,ssrs-2008,reporting-services,dynamics-ax-2009,x++,microsoft-dynamics,Ssrs 2008,Reporting Services,Dynamics Ax 2009,X++,Microsoft Dynamics,如果使用AX2009中的内置查询(EmplTableListPage)并尝试使用它构建SSRS报表,并且使用字段维度[1](或任何维度字段),则Visual Studio 2008中的报表预览将正确呈现。将报告部署到SSRS服务器后,它将无法加载,并出现类似以下错误: An error has occurred during report processing. (rsProcessingAborted) Query execution failed for dataset 'Dataset1
An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'Dataset1'. (rsErrorExecutingCommand)
The AX query string 'SELECT EmplTable.1.Dimension[1],EmplTable.1.EmplId,DirPartyTable.1.Name FROM EmplTableListPage' is invalid. The valid format is 'SELECT [fields] FROM [AX query name]', where [fields] can be either '*' or a comma separated field list.
如果从报表中删除维度[1]字段并重新部署,错误将消失,报表将正确呈现
我曾尝试在AOT中向查询添加一个字段,并专门添加维度[1],但也没有成功(相同的错误消息)
如何在SSRS报告中显示维度字段中的数据?为什么它在Visual Studio中工作,而在AX或报表管理器网站中不工作?根据Microsoft在其白皮书中的说法,2012年得到了增强,以支持AX 2009中不支持的维度,这意味着您无法在SSRS报表上显示维度字段中的数据:
我使用了这种方法(连接所有可能的维度表组合),请注意,该示例仅适用于前两个维度: 与SSR相比:
选择账本表。1.帐户名,维度。1.维度代码:名称(SysDimension),维度。2.维度代码:来自账本Transsrs的名称(SysDimension)
顺便说一句,我的原始查询名不是ledgertransrs,我的原始查询名是ledgertransrs_companySufix,在本例中,我删除了_companySufix。所以不要修改原始的LedgerTransSRS查询(因为它存在于系统层中,并且正在系统层中使用)。也有同样的问题,但能够解决它。 在SSRS中添加数据集时,必须添加维度中的所有字段(您的查询在字段中列出了维度),而不仅仅是要访问的维度的字段 因此,ssrs中的数据集查询应为:
SELECT * FROM EmplTable
导致错误的查询部分是:EmplTable.1.维度[1]
在SSRS中获取数据集中查询中的所有字段,它应该可以解决问题。找到以下内容:,说明AX 2009 SSRS不支持维度。这是事实吗?有人找到了解决方法吗?如果使用的维度存储在不同的表中,则此方法可行,但如果维度是表上存储的数组字段(如EMPLTable.dimension[1]),则此方法无效。此方法来自AX中内置的标准查询。EMplTableListPage包含查询中EMPLTable的所有字段。如果我使用报表生成器创建SSRS报表,它将运行上面的查询。如果尝试使用VisualStudio合并业务逻辑并导入到AX,则会失败。VisualStudio中的报表预览也处理查询。它仅在从AX运行时失败。