Crystal Reports Professional XIおよびMSSQL Server 2008 ExpressでVB.NET 2008 Professionalを使用しています。
SQLDataReaderやDataSetを使用してデータベースを構築し、Report Viewer で使用しようとしましたが、正しく動作しません。次の問題が発生します。
1- SQL コマンドに入力したフィルターは考慮されません。レジスタは常にすべて表示されます。SQLCommand で、次のフィルターを作成します。
AND SEG_Usuario.CD_Empresa = 'MTO'
AND SEG_Sub_Processo.Nivel_1 <> 0
AND SEG_Usuario_Filial.CD_Filial = '010'
AND SEG_Usuario.CD_Ususario = '9635'
2- 示されているレジスターは、繰り返され、順序付けられておらず、混合されています。
データベース内の SQLCommand で使用する SQL を実行すると、データベース レジスタが正しく表示され、繰り返されず、フィルターによって要求された内容に従って並べ替えられ、表示されます。DataTable と DataReader にあるデータを表示すると、それらも正しく、繰り返さず、並べ替えられ、フィルターで設定された内容に従って表示されます。したがって、SQLCommand には SQL 命令が正しく記述されていると思います。
基本的に次の操作を行います。
Dim conexao As SqlConnection = New SqlConnection("data source=meuservidor;initial catalog=meubanco;user id='meuuser';password='minhasenha'")
Dim comando As SqlCommand = New SqlCommand
Dim objdata As New DataTable
Dim objdr As SqlDataReader
comando.CommandText = "SELECT .... FROM .... WHERE ..... AND... AND ...ORDER BY ....."
comando.Connection = conexao
conexao.Open()
objdr = comando.ExecuteReader
objdata.Load(objdr)
Dim myReport As New ReportDocument()
'I have already tried to load the report this way
'myReport.Load("\path\myReport.rpt")
'Actually I load the report this way - I don't know if it makes any difference
myreport.FileName = "\path\myReport.rpt"
myreport.SetDatabaseLogon("meuser", ",minhasenha", "meuservidor", "meubanco")
myReport.SetDataSource(objdata)
CrystalReportViewer1.ReportSource = myReport
エラーがわかりません。SQL コマンドをレポートに渡す他の方法はありますか? 回答ありがとうございます。