在VS 2008中开发Dynamic AX 2009 SSRS报表,当报表数据集DataSet的数据源类型Data Source Type为Business Logic时,数据集字段是根据DataMethod生成的,如果使用报表生成器ReportBuilder打开报表在报表生成器中进行编辑设计,这时报表设计器会为报表自动生成一个名为AutoGen___BusinessLogic的数据源。
打开AutoGen___BusinessLogic的数据源属性,会发现此数据源的连接选项为“使用嵌在我的报表中的连接”,连接类型为空,点击连接类型列表,列表中会列出报表当前数据源支持的数据源连接类型,选择其中一项保存后,若当前的数据源连接类型选项不能使报表正常运行,AutoGen___BusinessLogic的数据源连接类型是无法在ReportBuilder中通过清空而恢复原来的空值的,因为在列表中没有Dynamic AX的Business Logic方式的连接。
这时可通过以下方式来恢复连接类型:
1、下载报表或另存为报表到本地路径
2、使用记事本或VS等文本编辑工具打开下载保存的rdl报表
3、这时会打开以xml格式定义的rdl报表的定义,找到类似以下代码片段,将<DataProvider>的值修改为AXDATAMETHOD后保存
<DataSource Name="AutoGen___BusinessLogic">
<ConnectionProperties>
<DataProvider>AXDATAMETHOD</DataProvider>
<ConnectString />
<IntegratedSecurity>true</IntegratedSecurity>
</ConnectionProperties>
<rd:SecurityType>Integrated</rd:SecurityType>
<rd:DataSourceID>1983e1a3-5c4e-49ea-99e3-f4f8b5a68ae4</rd:DataSourceID>
</DataSource>
4、在报表服务目录中将原报表删除,上传本地报表,这时通过ReportBuilder打开报表数据源属性,会看到连接选项已经恢复。