WebService DataSet vs Crystal Report
09/01/2008
0
Pessoal,
Estou com o seguinte cenário aqui em desenvolvimento.
Tenho um web service que faz a conexão com o banco de dados remoto, executa uma query e me retorna um DataSet. Como podem ver abaixo.
Do outro lado, aonde encontra-se o smartclient. Consumo o webservice, chamo o método em questão e passo o parametro de busca. O webservice me retorna os dados corretamente. E eu coloco isso tudo em um DataSet.
Beleza até ai funciona tudo perfeitamente, consigo pegar o DataSet Motoristas e manipular normalmente no smartclient. O problema acontece quando tento criar um relatório do crystal report com esses dados. Ja mandei criar um DataSource mais quando escolho o WebService ele abre uma janela para referenciar o webservice mais naum monta e defini o dataset como é feito quando criamos de um banco de dados. Então como criar o relatório se não tenho daonde pegar os dados, os campos já que ele naum aceita pegar direto de um webservice.
Estou com o seguinte cenário aqui em desenvolvimento.
Tenho um web service que faz a conexão com o banco de dados remoto, executa uma query e me retorna um DataSet. Como podem ver abaixo.
<WebMethod(Description:="Lista dados de um motorista")> _ Public Function ListaMotoristas(ByVal Placa As String) As DataSet ´ Database Connection Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\database\CRP.mdb") ´ Montando o SQL String Dim sql As String = _ "SELECT " & _ "FORMAT (tb_motoristas.DataCadastro, ´dd/mm/yyyy´) AS dtCadastro," & _ "tb_motoristas.Placa AS txPlaca," & _ "tb_motoristas.Nome AS txNome," & _ "FORMAT (tb_motoristas.Nascimentomotorista, ´dd/mm/yyyy´) AS dtNascimento," & _ "tb_motoristas.Identidade AS txIdentidade," & _ "tb_motoristas.Cpf AS txCpf," & _ "tb_motoristas.Pai AS txPai," & _ "tb_motoristas.Mãe AS txMae," & _ "tb_motoristas.LinhaNumero AS nuLinha," & _ "tb_motoristas.LinhaOrigem AS txOrigem," & _ "tb_motoristas.LinhaDestino AS txDestino," & _ "tb_motoristas.UltimaSemanaPaga AS nuSemana," & _ "FORMAT (tb_motoristas.DataUltimoPagamento, ´dd/mm/yyyy´) AS dtPagamento," & _ "´Permissionário´ AS txAtividade" & _ " FROM " & _ "motoristas AS tb_motoristas" & _ " WHERE " & _ "tb_motoristas.Placa=@txPlaca" & _ " ORDER BY " & _ "tb_motoristas.DataCadastro ASC" & _ " UNION ALL " & _ " SELECT " & _ "FORMAT (tb_auxiliares.DataCadastro, ´dd/mm/yyyy´) AS dtCadastro," & _ "´´ AS txPlaca," & _ "tb_auxiliares.Nome AS txNome," & _ "FORMAT (tb_auxiliares.Nascimento, ´dd/mm/yyyy´) AS dtNascimento," & _ "tb_auxiliares.Identidade AS txIdentidade," & _ "tb_auxiliares.Cpf AS txCpf," & _ "tb_auxiliares.Pai AS txPai," & _ "tb_auxiliares.Mãe AS txMae," & _ "´´ AS nuLinha," & _ "´´ AS txOrigem," & _ "´´ AS txDestino," & _ "´´ AS nuSemana," & _ "´´ AS dtPagamento," & _ "´Auxiliar´ AS txAtividade" & _ " FROM " & _ "motoristas AS tb_motoristas" & _ " INNER JOIN Auxiliares AS tb_auxiliares ON tb_auxiliares.NumeroMotorista=tb_motoristas.NumeroMotorista " & _ " WHERE " & _ "tb_motoristas.Placa=@txPlaca" ´ Passando os Parametros ao SQL Dim comm As New OleDbCommand(sql, conn) comm.Parameters.AddWithValue("@txPlaca", Placa) ´ Criando o DataAdapter e DataSet Dim da As New OleDbDataAdapter(comm) Dim ds As New DataSet ´ Abrindo a Conexão conn.Open() ´ Carregando o DataSet da.Fill(ds, "motoristas") ´ Fechando a Conexão conn.Close() ´ Retornando o Resultado Return ds End Function
Do outro lado, aonde encontra-se o smartclient. Consumo o webservice, chamo o método em questão e passo o parametro de busca. O webservice me retorna os dados corretamente. E eu coloco isso tudo em um DataSet.
´ Declarando as Variáveis do Projeto Dim Motoristas As System.Data.DataSet Dim wsCRP As New SmartMotoristas.wsMotoristas.wsMotoristas ´ Verificando e Validando tbPlaca.text If (tbPlaca.Text <> "" And tbPlaca.Text.Length = 8) Then ´ Tratamento de Exception Try ´ Buscando a Placa do Veículo Motoristas = wsMotoristas.ListaMotoristas(tbPlaca.Text) Catch ex As System.Net.WebException ´ Enviando Mensagem ao Usuário MessageBox.Show("Servidor Indisponível, Tente Novamente mais Tarde", "Mensagem de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error) ´ Saindo da SubRotina Exit Sub Catch ex As Exception ´ Enviando Mensagem de Erro Desconhecido ao Usuário MessageBox.Show("Ocorreu um Erro Desconhecido" & vbCrLf & "Entre em Contato com o Desenvolvimento", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error) ´ Saindo da SubRotina Exit Sub End Try End If
Beleza até ai funciona tudo perfeitamente, consigo pegar o DataSet Motoristas e manipular normalmente no smartclient. O problema acontece quando tento criar um relatório do crystal report com esses dados. Ja mandei criar um DataSource mais quando escolho o WebService ele abre uma janela para referenciar o webservice mais naum monta e defini o dataset como é feito quando criamos de um banco de dados. Então como criar o relatório se não tenho daonde pegar os dados, os campos já que ele naum aceita pegar direto de um webservice.
Vitor Rodrigues
Curtir tópico
+ 0
Responder
Posts
14/04/2008
Groove
Putz eu sabia essa mas com ´cobrador´, hehehehe
foi mal to de brincadeira, mas diz aí conseguiu resolver???
se conseguiu onde estava o erro pois acho q estou tendo a mesma coisa aqui!!!
valew!!!!
foi mal to de brincadeira, mas diz aí conseguiu resolver???
se conseguiu onde estava o erro pois acho q estou tendo a mesma coisa aqui!!!
valew!!!!
Responder
Clique aqui para fazer login e interagir na Comunidade :)