2011-08-11 15 views
0

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

<?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です。 その他のヒントやヘルプは歓迎しています。それを機能させるだけです:)

答えて

1

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

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

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

+0

TNX応答に... 問題は、新しいレポートはので、私は、レポート内でSQLを使用するアプリケーションに追加することができるということです。新しいレポートが追加されるたびに、すべてのデータセットにコードを追加するのは大きな仕事です。 データソースに接続文字列を追加できることがわかりました。 しかし、私が間違っていることを助けることができます。 <データソース名= "XXX"> 98fa74a9-d829-4196-be9d-49697ded5201 <データプロバイダ> SQL ... IntegratedSecurity> true DB私は接続しようとしていますMS SQL – Tom

+0

私は間違っているかもしれませんが、あなたがしたいことはRDLCファイルで可能だとは思いません。接続文字列の要素は、それがReportViewer.LocalReportレベルでの接続を設定する必要があります*/''/*ローカル接続に設定されている理由であるRDLCファイルで使用されていません。 –

+0

私はあなたが正しいのではないかと心配しています...だから、databeseからのデータを読んで、間にC#コードなしで直接報告する方法はありませんか? – Tom

関連する問題