Мы используем отчеты Visual Studio 2015 и SAP Crystal v13.
Шаг 1: Я получаю Запрос из отчета Crystal с помощью функции GetCommandText ().
Следующим кодом является функция GetCommandText ().
Dim boReportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim boReportClientDocument As CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument = boReportDocument.ReportClientDocument
Dim boReportClientDocument As CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument = boReportDocument.ReportClientDocument
Dim SqlQuery As String = ""
boReportClientDocument.RowsetController.GetSQLStatement(ISCRGroupPath, SqlQuery)
Шаг 2: Я пытаюсь объединить условие where в запрос SQL.
Шаг 3: Тогда запрос выполняется и назначается набору данных.
Шаг 4: И установите значение набора данных в CrystalReport.setdatasource.
Если я пытаюсь использовать поле Specific в запросе Select для привязки отчета Crystal, я получаю прикрепленную ошибку.
ошибка изображения
В том же состоянии, если я пытаюсь изменить поле Specific в Выберите * From , отчет Crystal загружается правильно. Но условие «где» не учитывается. Отчет Crystal загружает все данные.
вот как обновить запрос в отчете Crystal. Запрос поддерживается в VB6 и не поддерживается в vb.net
Следующий код VB.net
Dim ReportDoc As New ReportDocument
Dim ConnectionString = "Data Source=test;Initial Catalog=testDB;User ID=sa;Password=123;"
ReportDoc.Load("~\CrystalReportTesting\CrystalReport1")
Dim con As SqlConnection = New SqlConnection(ConnectionString)
Dim cmd As SqlCommand = New SqlCommand(SqlQuery, con)
Dim adapter As New SqlDataAdapter(cmd)
Dim dtset As New DataSet
adapter.Fill(dtset, "Dataset1")
ReportDoc.SetDataSource(dtset.Tables.Item(0))
CrystalReportViewer1.ReportSource = ReportDoc
CrystalReportViewer1.Refresh()
Следующий код - VB6
fReport.Report.SQLQueryString = fReport.Report.SQLQueryString & _
" where ""Invoice"".""Ref"" in (" & 1,2,3 & ") " & sqlOrderby