1

Crystal Reports Professional XIおよびMSSQL Server 2008 ExpressでVB.NET 2008 Professionalを使用しています。

SQLDataReaderDataSetを使用してデータベースを構築し、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 コマンドをレポートに渡す他の方法はありますか? 回答ありがとうございます。

4

0 に答える 0