2012-04-12 19 views
1

次の問題があります。私は自分のクライアントのrdlcレポートを生成するアプリケーションを作った。私はこれらのレポートで使用するDataTablesを満たすためにTableAdaptersを使用しました。問題は、クライアントが新しいデータベースを持っていて、古いアプリケーションと新しいアプリケーションの両方からレポートを生成するためにそのアプリケーションを使用できるようにすることです。テーブルアダプターが使用する接続を変更して、クライアントが選択したデータベース(両方のデータベースが同じスキーマを持っている)からデータを取り出すことができると思ったが、それはできないと言われた。したがって、rdlcレポートが使用するDataTableを変更することは可能ですか? はどのように私はrdlcレポートのDataTableをプログラムで変更する方法

答えて

3

実行時に次のコードを使用して任意のdatatableをrdlcに割り当てることができます。

 DataTable dtTest =obj.SelectDepartment(1);//Here I am selecting the data from DB 

     this.reportViewer1.RefreshReport(); 
     reportViewer1.Visible = true; 
     ReportDataSource rds = new ReportDataSource(); 
     reportViewer1.Reset(); 
     reportViewer1.ProcessingMode = ProcessingMode.Local; 
     LocalReport rep = reportViewer1.LocalReport; 
     rep.Refresh(); 

     rep.ReportEmbeddedResource = "Report.rdlc";//Provide full path 
     rds.Name = "DataSet1_tblAdapter";//Provide refrerence to data set which is used to design the rdlc. (DatasetName_TableAdapterName) 
     rds.Value = dtTest; 

     rep.DataSources.Add(rds); 
     this.reportViewer1.RefreshReport(); 
+0

おかげで、私はその間にこの問題を解決することができました。これはあなたのソリューションとほぼ同じです。 – NDraskovic

+1

必須の参照:using Microsoft.Reporting.WinForms; – tuncalik

1

確かにこの問題を解決することができ、それはVB.netであるコード試合動的

rptView.LocalReport.ReportPath = Server.MapPath("MyReportName") 
    rptView.LocalReport.DataSources.Add(New ReportDataSource("DataSource", "ObjectSource")) 

申し訳ありませんが、レポートのデータソースを変更するには問題ないはずです、私はあなたの質問をC#にマークされている知っています、それは

編集十分に類似しているべきである:あなたには、いくつかのパラメータを望んでいた場合

dim listOfParams = new List(of ReportParameter); 
    listOfParams.Add(new ReportParameter("Param1", myValue.toString())) 
    listOfParams.Add(new ReportParameter("Param2", myOtherValue.toString())) 


    Me.rptView.LocalReport.GetParameters(listOfParams) 

C#とVB.netが混在しているようにまっすぐにコード化されました

+0

VBの場合、Web上に翻訳者がいるかどうかは関係ありません。ただ一つのこと、私はあなたがServerクラスを使用して参照してくださいが、これはデスクトップアプリケーションであるので、何が同等ですか? – NDraskovic

+0

は、私はこれを試していないが、私は単なる文字列RDLCファイルを指して、「〜/ MyReports/Report1.rdlc」 –

+0

[OK]を感謝のようなものを想像し、私はそれを試してみると – NDraskovic

関連する問題