2017-09-20 7 views
0

ここでは、同じ質問についてここでいくつかの回答を含めて見てきましたが、問題を本当に解決した情報はありませんでした。ローカル.rdlレポートへの接続に関する問題。

まず最初に、アクセスデータベースに接続する.rdlレポートを作成しました。これまでのすべての良い。今、私は私が動作するように何かを得たコードを見上げると最も近い(ローカル)サーバーなしで私のソフトウェアとそれを接続するこのです:

Private Sub GenerateLocalReport() 

    ReportViewer1.ProcessingMode = ProcessingMode.Local 
    ReportViewer1.LocalReport.ReportPath = "D:\work\OrdersInvoice\ReportInvoice\ReportInvoice\OrdersReport.rdl" 

    reportViewer.RefreshReport() 
    ReportViewer1.RefreshReport() 
End Sub 

今の問題は、上記のコードは動作しないということです。次のメッセージが表示されます。データソースインスタンスにデータソースが指定されていません。

私が見つけたものを検索することは、データバインディングとして何かを追加する必要があったことです。ここで混乱が始まるところです。

Dim ds = New ReportDataSource("DataSet1",???) 
    reportViewer1.LocalReport.DataSources.Add(ds) 

これは私が得ることができる最も直接的なコードです。しかし、私は彼らがデータソースをバインドすることによって何を意味するか分かりません。私はプログラムでデータソースを作成しようとしましたが、実際の答えではありません。私はちょっとここで失われています。同じことを行う必要があります私が見つけた

もう一つのコードがある:C#またはVB.netのいずれかで

ReportViewer1.LocalReport.DataSources.Add(TempDBDataSet.OrderTableDataTable 

再び同じ問題

回答が細かいです。

答えて

1

Reporting Servicesファイルには、RDL & RDLCの2種類があります。

どちらも非常によく似ています。

RDLファイルは、レポートサーバーで実行されるように設計されており、レポートで提供される接続情報に基づいてサーバーがデータソースを作成し、データを埋め尽くします。

RDLCファイルは、サーバーが不要なレポートビューアコントロールを使用して、クライアントアプリケーションに埋め込まれるように設計されています。また、クライアントアプリケーションでデータソースを手動で接続して記入する必要があります(回答の中でやっているように)。

+0

オフラインアプリケーションの場合、RDLCはより良いオプションですか? –

+1

RDLファイルを使用するには、SQL Server Reporting Servicesのインスタンスを実行し、オフラインアプリケーションから完全に分離する必要があります –

0

私はいくつかの試行錯誤の末にこの問題を解決したと思います。 、だから何私がやったことは、私がレポートに接続されたデータベースへの接続を行い、その後、私のデータセットにデータベースのデータを満たしたということでした

Dim dataset As New DataSet("DataSet1") 
Dim Conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\TempDB.mdb;User Id=admin; 
    Password=;") 
Dim Adb As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("Select * from OrderTable", Conn) 
Adb.Fill(dataset) 
Dim rds As New ReportDataSource() 
rds.Name = "DataSet1" 
rds.Value = dataset.Tables(0) 
ReportViewer1.LocalReport.DataSources.Add(rds) 

そのために使用される:まず第一に、ここでは、私が使用したコードです私はReportDataSourceの参照を終えたテーブルにアクセスします。

その後、それはかなりうまくいった。

関連する問題