Tenho uma dúvida chata com o Crystal. Eu e ele não nos damos muito bem, pra falar a verdade...
Tenho uma aplicação que realiza dois tipos de pesquisa: local e remota via webservice. Tenho um relatório que está funcional quando a pesquisa é feita localmente: passo os parâmetros dinamicamente em tempo de execução e tá chique!
O problema ocorre quando vou gerá-lo remotamente pelo webservice. Decidi executar a procedure e armazenar o retorno dela em um data table. Passo esse data table para o data source do relatório e vinculo o relatório ao Crystal Viewer.
Contudo, ocorre que o relatório ou dá um erro (informando que um campo é inválido) ou são solicitados os parâmetros de entrada da procedure.
Alguém sabe de alguma forma de eu definir que o data source é uma stored procedure já "retornada" (com o select final), evitando a solicitação dos parâmetros?
Segue um código que usei para testes:
Dim lrptRelatorio As New ReportDocument
Dim cnn As New SqlClient.SqlConnection("Data Source=SERVER;Initial Catalog=BASE;User Id=USER;Password=SENHA;")
Dim dtb As New DataTable
Dim exec As New SqlClient.SqlCommand("PRC_REL_PRODUTIVIDADE", cnn)
Dim DTA As New SqlClient.SqlDataAdapter
exec.CommandType = CommandType.StoredProcedure
exec.Parameters.AddWithValue("@I_DTSOLICITACAOINICIAL", IIf(mdatSolicitacaoInicial = "00:00:00" Or mdatSolicitacaoInicial = "0001-01-01 00:00:00", DBNull.Value, CDate(mdatSolicitacaoInicial)))
exec.Parameters.AddWithValue("@I_DTSOLICITACAOFINAL", IIf(mdatSolicitacaoFinal = "00:00:00" Or mdatSolicitacaoFinal = "0001-01-01 00:00:00", DBNull.Value, CDate(mdatSolicitacaoFinal)))
exec.Parameters.AddWithValue("@I_DTCONCLUSAOINICIAL", IIf(mdatConclusaoInicial = "00:00:00" Or mdatConclusaoInicial = "0001-01-01 00:00:00", DBNull.Value, CDate(mdatConclusaoInicial)))
exec.Parameters.AddWithValue("@I_DTCONCLUSAOFINAL", IIf(mdatConclusaoFinal = "00:00:00" Or mdatConclusaoFinal = "0001-01-01 00:00:00", DBNull.Value, CDate(mdatConclusaoFinal)))
exec.Parameters.AddWithValue("@I_IDTIPODILIGENCIA", mlngIDTipoDiligencia)
exec.Parameters.AddWithValue("@I_IDSTATUSDILIGENCIA", mlngIDStatusDiligencia)
exec.Parameters.AddWithValue("@I_CELULA", IIf(Trim(mstrCelula) = "", DBNull.Value, mstrCelula))
exec.Parameters.AddWithValue("@I_COMARCA", IIf(Trim(mstrComarca) = "", DBNull.Value, mstrComarca))
exec.Parameters.AddWithValue("@I_OPCAODILIGENCIA", mintOpcaoDiligencia)
cnn.Open()
DTA.SelectCommand = exec
DTA.Fill(dtb)
lrptRelatorio.Load(lstrCaminho + "Relatorios\relProdutividade.rpt")
lrptRelatorio.SetDataSource(dtb)
crvVisualizador.ReportSource = lrptRelatorio
crvVisualizador.Refresh()
Pergunta
Xistyle
Pessoal, boa tarde!
Tenho uma dúvida chata com o Crystal. Eu e ele não nos damos muito bem, pra falar a verdade...
Tenho uma aplicação que realiza dois tipos de pesquisa: local e remota via webservice. Tenho um relatório que está funcional quando a pesquisa é feita localmente: passo os parâmetros dinamicamente em tempo de execução e tá chique!
O problema ocorre quando vou gerá-lo remotamente pelo webservice. Decidi executar a procedure e armazenar o retorno dela em um data table. Passo esse data table para o data source do relatório e vinculo o relatório ao Crystal Viewer.
Contudo, ocorre que o relatório ou dá um erro (informando que um campo é inválido) ou são solicitados os parâmetros de entrada da procedure.
Alguém sabe de alguma forma de eu definir que o data source é uma stored procedure já "retornada" (com o select final), evitando a solicitação dos parâmetros?
Segue um código que usei para testes:
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.