0

レポートをローカルで処理するレポート ビューアーを作成する必要があります。クエリを含む RDL ファイルを取得しました。レポートがデータベースから直接データを取得できるように、接続文字列をレポートの XML コードに挿入する方法はありますか? レポートは MS reportViewer に表示されます。

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition">
  <DataSources>
    <DataSource Name="BIA">
      <DataSourceReference>BIA</DataSourceReference>
      <rd:DataSourceID>98fa74a9-d829-4196-be9d-49697ded5201</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="RelItems">
      <Fields>
        <Field Name="RelItemID">
          <DataField>RelItemID</DataField>
          <rd:TypeName>System.Int32</rd:TypeName>
        </Field>
        <Field Name="SSISPackageName">
          <DataField>SSISPackageName</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>BIA</DataSourceName>
        <CommandText>select b.ID as RelItemID, SSISPName --+ '  ('+s.Name + ' -&gt; ' + d.Name + ')' 
as SSISPackageName
    from dbo.RelTypes_ProvTypes a
    inner join dbo.RelItems b on a.RelTypeID = b.RelTypeID
    inner join dbo.ObjItems s on b.ObjItemIDSource = s.ID and a.ObjTypeIDSource = s.ObjTypeID
    inner join dbo.ObjItems d on b.ObjItemIDDest = d.ID and a.ObjTypeIDDest = d.ObjTypeID
where SSISPName is not null
order by 2</CommandText>
        <rd:UseGenericDesigner>true</rd:UseGenericDesigner>
      </Query>
    </DataSet>

... and so on

これは私が持っているRDLです。他のヒントやヘルプは大歓迎です。それを機能させる必要があるだけです:)

4

1 に答える 1

1

RDL ファイルには、ReportViewer コントロールで使用される RDLC ファイルに格納されていないクエリ情報が含まれています。ReportViewer で SSRS の外部で RDL ファイルを使用する場合は、ローカル モードでレポートを実行するときに、コードから datasource プロパティを設定できます。そうすれば、データソースを作成するときに、接続文字列を好きなように設定できます。

ReportViewer1.Reset()
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.ReportPath = <yourfilepath>
ReportViewer1.LocalReport.DataSources.Add(<yourdatasource>)
ReportViewer1.LocalReport.Refresh()

(明らかに、このスニペットは VB です)

于 2011-08-11T11:07:15.087 に答える