Проблемы SSRS ReportViewer со встроенным источником данных XML

У меня есть приложение C # (WPF), в котором я хочу отобразить отчет SSRS в элементе управления ReportViewer. Локальный файл отчета имеет встроенный источник данных XML. Отчет отображается правильно при запуске из SQL Server Business Intelligence Development Studio. Но когда я запускаю свое приложение, я получаю следующую ошибку:

A data source instance has not been supplied for the data source '...'.

Итак, вот что я делаю:

Я определил встроенные данные XML, как объяснено в этом руководствеОпределение набора данных отчета из встроенных данных XML, У меня есть источник данных под названиемXmlDataSource_TopCustomers и набор данных под названиемXmlDataSet_TopCustomers, используя этот источник данных. Я сослался на набор данных в таблице и диаграмме. В целом, RDL выглядит так (конечно, просто необходимо):

    <Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
      <Body>
        <ReportItems>
          <Tablix Name="Tablix1">
            <DataSetName>XmlDataSet_TopCustomers</DataSetName>
          </Tablix>
          <Chart Name="Chart1">
            <DataSetName>XmlDataSet_TopCustomers</DataSetName>
          </Chart>
        </ReportItems>
      </Body>
      <DataSources>
        <DataSource Name="XmlDataSource_TopCustomers">
          <ConnectionProperties>
            <DataProvider>XML</DataProvider>
            <ConnectString />
          </ConnectionProperties>
          <rd:SecurityType>None</rd:SecurityType>
          <rd:DataSourceID>47833b52-231f-4634-8af4-3c63272b02a7</rd:DataSourceID>
        </DataSource>
      </DataSources>
      <DataSets>
        <DataSet Name="XmlDataSet_TopCustomers">
          <Query>
            <DataSourceName>XmlDataSource_TopCustomers</DataSourceName>
            <CommandText><Query>
     <ElementPath>Root /CustomerOrder {@CustomerNo, @CustomerName, @OrdersCount (Integer), @Total(Float), @AveragePerOrder(Float)}</ElementPath>
     <XmlData>
      <Root>
    <CustomerOrder CustomerNo="10001" CustomerName="Name 1" OrdersCount="2" Total="5.446740000000000e+003" AveragePerOrder="2.723370000000000e+003" />
    <CustomerOrder CustomerNo="10894" CustomerName="Name 2" OrdersCount="5" Total="3.334750000000000e+003" AveragePerOrder="6.669500000000001e+002" />
    <CustomerOrder CustomerNo="12980" CustomerName="Name 3" OrdersCount="2" Total="2.003290000000000e+003" AveragePerOrder="1.001645000000000e+003" />
      </Root>
     </XmlData>
    </Query></CommandText>
            <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
          </Query>
          <Fields>...
        
      </DataSets>
      <rd:ReportUnitType>Inch</rd:ReportUnitType>
      <rd:ReportID>02172db8-2a1d-4c35-9555-b37ee6193544</rd:ReportID>
    </Report>

На данный момент все отлично работает из IDE.

В моем приложении C # у меня есть ReportViewer и следующий код:

Viewer.LocalReport.ReportPath = @"<actualpath>\TopCustomers.rdl"; // actual path is OK
Viewer.RefreshReport();

И тогда я получаю это

A data source instance has not been supplied for the data source 'XmlDataSet_TopCustomers'.

Я видел других, имеющих такую же проблему, но в большинстве случаев проблема заключается в нескольких источниках данных, что здесь не так, как вы можете видеть из фрагмента RDL выше.

Какие-либо предложения?

Ответы на вопрос(3)

Ваш ответ на вопрос