USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Dados duplicados em Data Report
ATS
OURINHOS
SP - BRASIL
Postada em 13/09/2004 09:47 hs            
Tenho um relatório feito no Data Report com registros de 4 tabelas sendo:
tblCadastro - Cadastro principal de um individuo.
tblPessoas - Contem informações de pessoas relacionadas ao individuo.
tblAntecedentes - Contem informações de antecedentes criminais do individuo.
tblVeiculo - Contem informações do(s) veiculo(s) deste individuo.
Só que no relatório aparece os dados principais que são os dados da tabela tblCadastro e os dados das demais tabelas aparecem, só que se tenho 1 regsitro relacionado ao individuo na tabela tblPessoas, 2 na tabela tblAntecedentes e 1 na tabela tblVeiculo os dados das tabelas tblPessoas e tblVeiculo aparecem duplicados no relatório, acredito que devido a tabela tblAntecendentes ter 2 registros.
O que eu posso fazer já tentei de tudo...
     
ATS
OURINHOS
SP - BRASIL
Postada em 14/09/2004 08:06 hs            
E ai sera que ninguem sabe ????
     
Claudio EngeSys
PARANAGUA
PR - BRASIL
Postada em 14/09/2004 08:54 hs            
Aí depende de como você está passando os parâmetros pro DataReport...
Que banco tá usando, se passa o select ou está baseado em consulta (view) e como é o relatório.
A princípio, pelo pouco que deu pra entender da pergunta, me parece que você precisaria basear o relatório em uma instrução com GroupBy (consulta de totais no access)... 

Claudio Alves.
     
ATS
OURINHOS
SP - BRASIL
ENUNCIADA !
Postada em 15/09/2004 10:23 hs            
Estou usando instrução SQL atraves de um Data Environment. Entrei na propriedades do Data Environment e na aba Geral (General) selecionei a opção SQL Statement e coloquei o seguinte código:
 
SELECT tblCadastro.Codigo, tblCadastro.Nome, tblCadastro.Pai, tblCadastro.Mae, tblCadastro.Rg, tblCadastro.Cpf, tblCadastro.Apelido, tblCadastro.Endereco, tblCadastro.Bairro, tblCadastro.Complemento, tblCadastro.Municipio, tblCadastro.UfMunicipio, tblCadastro.Foto, tblCadastro.Data_nasc, tblCadastro.Local_nasc, tblCadastro.Observacao, tblCadastro.Altura, tblCadastro.Cutis, tblCadastro.Fisico, tblCadastro.Cab_tipo, tblCadastro.Cab_qtde, tblCadastro.Cab_cor, tblCadastro.Olhos, tblCadastro.Dms, tblCadastro.UfNasc, tblCadastro.Modus, tblCadastro.Rg1,  tblAntecedentes.Codigo, tblAntecedentes.anteData, tblAntecedentes.anteArtigo, tblAntecedentes.anteDescricao, tblPessoas.Codigo, tblPessoas.PesNome, tblPessoas.PesRelacao, tblPessoas.PesRg, tblPessoas.PesEndereco, tblVeiculo.Codigo, tblVeiculo.VeiPlaca, tblVeiculo.VeiMarca, tblVeiculo.VeiModelo, tblVeiculo.VeiCor, tblVeiculo.VeiProprietario
FROM ((tblCadastro INNER JOIN tblAntecedentes ON tblCadastro.Codigo = tblAntecedentes.Codigo) INNER JOIN tblPessoas ON tblCadastro.Codigo = tblPessoas.Codigo) INNER JOIN tblVeiculo ON tblCadastro.Codigo = tblVeiculo.Codigo
WHERE (((tblCadastro.Codigo) = ? ));
 
Estou fazendo igual a este exemplo: http://www.macoratti.net/dat_rpt2.htm
   
Jefferson
não registrado
Postada em 15/09/2004 11:33 hs   
Crie uma tabela de consulta no access relacionando todas as tabelas.
 
Detalhe: É necessário interligar os campos chaves. Veja bem: Será necessário avaliar o relacionamento, caso seja, de um para um, de um para vários, etc.
 
Eu, mesmo já relacionei 36 tabelas vinculadas a um sistema Desenvolvido em Clipper/DBF para Access. Funcionou perfeitamente. Pois, gerando uma única tabela de consulta com todas as tabelas, fica mais fácil para finalizar o relatório. OK!
 
     
Mateus
AMADORA
PT - PORTUGAL
Postada em 16/09/2004 11:52 hs            
Aparatentemente o seu select está O.K. (sendo os "JOINs" da sua exclusiva responsabilidade).
 
Se existem registos duplicados é porque, de certeza, falta um "GROUP BY".
 
Ai vai um exemplo que não usa sequer DataEnvironment é tudo feito por código, mas para o efeito, serve perfeitamente.
 
Public Sub EmiteGuia()
       
   Set cmdGUIA_REMESSAcab = New Command
        Set cmdGUIA_REMESSAcab.ActiveConnection = db
        'Recordset hierárquica para a construção do Report (Guia de Remessa)
        cmdGUIA_REMESSAcab.CommandText = "SHAPE {SELECT tMOVIMENTOS.codigo AS coddist," & _
        "tENTIDADES.ent_nome AS dist,tENTIDADES.ent_morada AS distmorada, tENTIDADES.ent_local AS distlocal, " & _
        "tENTIDADES.cpos_codig AS distcpost, tENTIDADES.cpost_desig AS distcpostdesig, tENTIDADES.cpos_codig1 AS discpost1," & _
        "tENTIDADES.ent_tel AS disttel, tENTIDADES.ent_fax AS distfax, tMOVIMENTOS.ent_num AS coddest, tENTIDADES1.ent_nome AS dest," & _
        "tENTIDADES1.ent_morada AS destmorada, tENTIDADES1.ent_local AS destlocal, tENTIDADES1.cpos_codig AS destcpost," & _
        "tENTIDADES1.cpos_codig1 AS destcpost1, tENTIDADES1.cpost_desig AS destcpostdesig, tENTIDADES1.ent_num_contr AS destnumcontr," & _
        "mid(tMOVIMENTOS.mov_docref, 5, 10) AS guia_num, tMOVIMENTOS.mov_tipo, tMOVIMENTOS.id_movimento, tMOVIMENTOS.data AS Data,sum(tMOVIMENTOSdet.valor) as total " & _
        "FROM tENTIDADES, tMOVIMENTOS, tENTIDADES tENTIDADES1, tMOVIMENTOSdet " & _
        "WHERE tENTIDADES.ent_num = tMOVIMENTOS.codigo AND tMOVIMENTOS.ent_num = tENTIDADES1.ent_num AND tMOVIMENTOS.codigo = tMOVIMENTOSdet.codigo " & _
        "AND tMOVIMENTOS.id_movimento = tMOVIMENTOSdet.id_movimento " & _
        "GROUP BY tMOVIMENTOS.codigo, tENTIDADES.ent_nome, tENTIDADES.ent_morada, tENTIDADES.ent_local, tENTIDADES.cpos_codig, tENTIDADES.cpost_desig," & _
        "tENTIDADES.cpos_codig1, tENTIDADES.ent_tel, tENTIDADES.ent_fax, tMOVIMENTOS.ent_num, tENTIDADES1.ent_nome, tENTIDADES1.ent_morada," & _
        "tENTIDADES1.ent_local, tENTIDADES1.cpos_codig, tENTIDADES1.cpos_codig1, tENTIDADES1.cpost_desig, tENTIDADES1.ent_num_contr, mid(tMOVIMENTOS.mov_docref, 5, 10)," & _
        "tMOVIMENTOS.mov_tipo , tMOVIMENTOS.id_movimento, tMOVIMENTOS.Data " & _
        " HAVING (tMOVIMENTOS.codigo =" & cod & ") AND (tMOVIMENTOS.id_movimento =  '" & id & "')}  AS qGUIA_REMESSAcab " & _
        "APPEND ({SELECT tARTIGOS.art_desig AS artigo, tMOVIMENTOSdet.art_quant AS quantidade, tMOVIMENTOSdet.art_valunit AS valor," & _
        "tMOVIMENTOSdet.serie_fim AS final, tMOVIMENTOSdet.serie_id AS serie, tMOVIMENTOSdet.serie_ini AS inicio, tMOVIMENTOSdet.valor AS total," & _
        "tMOVIMENTOS.id_movimento, tMOVIMENTOS.codigo FROM tARTIGOS, tMOVIMENTOSdet, tMOVIMENTOS WHERE tARTIGOS.art_codig = tMOVIMENTOSdet.art_codig " & _
        "AND tMOVIMENTOSdet.codigo = tMOVIMENTOS.codigo AND tMOVIMENTOSdet.id_movimento = tMOVIMENTOS.id_movimento " & _
        "GROUP BY tARTIGOS.art_desig," & _
        "tMOVIMENTOSdet.art_quant , tMOVIMENTOSdet.art_valunit, tMOVIMENTOSdet.serie_fim, tMOVIMENTOSdet.serie_id,tMOVIMENTOSdet.serie_ini," & _
        "tMOVIMENTOSdet.valor, tMOVIMENTOS.id_movimento, tMOVIMENTOS.codigo}  AS qGUIA_REMESSAdet RELATE 'id_movimento' TO 'id_movimento','coddist' TO 'codigo') AS qGUIA_REMESSAdet "
        Set adoGUIA_REMESSAcab = cmdGUIA_REMESSAcab.Execute
        Dim intCtrl As Integer
        With rptGUIA_REMESSA
        Set .DataSource = adoGUIA_REMESSAcab
            With .Sections("Section1").Controls
            For intCtrl = 1 To .Count
            If TypeOf .Item(intCtrl) Is RptTextBox Then
            .Item(intCtrl).DataMember = "qguia_remessadet"
    End If
Next intCtrl
End With
With .Sections("Section7").Controls
For intCtrl = 1 To .Count
If TypeOf .Item(intCtrl) Is RptTextBox Then
.Item(intCtrl).DataMember = ""
End If
If TypeOf .Item(intCtrl) Is RptFunction Then
.Item(intCtrl).DataMember = "qguia_remessadet"
End If
Next intCtrl
End With
.Orientation = rptOrientPortrait
.PrintReport
 
Set adoGUIA_REMESSAup = New Recordset
db.CursorLocation = adUseClient
Set cmdGUIA_REMESSAup = New Command
Set cmdGUIA_REMESSAup.ActiveConnection = db
'actualiza a tabela das Guias de Remessa
cmdGUIA_REMESSAup.CommandText = "INSERT INTO tGUIA_REMESSA " & _
 "(guia_num,codigo,ent_num, data, marca_guia)" & _
"SELECT mid(mov_docref, 5, 10)AS guia_num, codigo, ent_num,data,'E' AS marca_guia " & _
"From tMOVIMENTOS " & _
"where tMOVIMENTOS.codigo = " & cod & " " & _
" and tMOVIMENTOS.id_movimento = '" & id & "'"
Set adoGUIA_REMESSAup = cmdGUIA_REMESSAup.Execute
End With
End Sub
 
De qualquer forma, se quizer ver um exemplo prático, dê uma olhada:
 
 
 
João Mateus
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página