Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lugao

nao consigo relacionar campos de 3 tabelas adequadamente num relatorio

Recommended Posts

negocio eh o seguinte:---------------------------EXEMPLO----------------------------------- TENHO 3 TABELAS1ª TABELA - Imóvel RuralCampos:1 - idimovel2 - descrição3 - localizaçao2ª TABELA - Benfeitoria Produtiva (benfprodutiva)Campos:1 - idimovel2 - idbenfeitoriaprodutiva3 - Tipo de Solo4 - Area5 - Valor3ª TABELA - Benfeitoria Não Produtiva (benfnaoprodutiva)Campos:1 - idimovel2 - idbenfeitorianaoprodutiva3 - descricao4 - quantidade5 - valor-------- EXEMPLOS DE ALGUNS DADOS INSERIDOS NA TABELA1ª TABELA: Campo Valor 1 1 2 Fazenda Lagoa Branca 3 Córrego Moraes2ª TABELA: (1º Registro) Campo Valor 1 1 2 1 3 Cultivo de Soja 4 50,00 5 R$ 1.800,002ª TABELA: (2º Registro) Campo Valor 1 1 2 2 3 Cultivo de Algodao 4 150,00 5 R$ 5.800,003ª TABELA: (1º Registro) Campo Valor 1 1 2 1 3 Lagoa 4 1 5 R$ 2.000,003ª TABELA: (2º Registro) Campo Valor 1 1 2 2 3 Casa 4 3 5 R$ 60.000,003ª TABELA: (3º Registro) Campo Valor 1 1 2 3 3 Trator Esteira 4 1 5 R$ 200.000,00---------- COMANDO SELECT QUE ESTOU USANDOselect * from imovelruralleft join benfprodutiva on imovelrural.idimovel = benfprodutiva.idimovelleft join benfnaoprodutiva on imovelrural.idimovel = benfnaoprodutiva.idimovel---------- O RELATORIO QUE ESTOU CONSEGUINDO ATE O MOMENTOImovel: 01 Descrição: Fazenda Lagoa Branca Localização: Córrego Moraes//groupheader com expression voltado para idimovel-----------------------------------------------------------------------------------Benfeitorias Produtivas:01 - Cultivo de Soja Area: 50,00 Valor: R$ 1.800,0001 - Cultivo de Algodão Area: 150,00 Valor: R$ 5.800,00//groupheader com expression voltado para idbenfeitoriaprodutiva-----------------------------------------------------------------------------------======================== O PROBLEMA QUE ESTOU TENDOquando tento inserir os valores da terceira tabela, ao invéz deles entrarem aposos valores da segunda tabela, estao entrando entre eles, sendo assimImovel: 01 Descrição: Fazenda Lagoa Branca Localização: Córrego MoraesBenfeitorias Produtivas:-----------------------------------------------------------------------------------01 - Cultivo de Soja Area: 50,00 Valor: R$ 1.800,00 01 - Lagoa Qtd - 1 Valor: R$ 2.000,0001 - Cultivo de Algodão Area: 150,00 Valor: R$ 5.800,00 02 - Casa Qtd - 3 Valor: R$ 60.000,00-----------------------------------------------------------------------------------E depois sobra o ultimo registro ele imprime o registro da tabela dois ecoloca o ultimo nele sendo a ultima folha assim:Imovel: 01 Descrição: Fazenda Lagoa Branca Localização: Córrego MoraesBenfeitorias Produtivas:-----------------------------------------------------------------------------------01 - Cultivo de Soja Area: 50,00 Valor: R$ 1.800,00 03 - Trator Esteira Qtd - 1 Valor: R$ 200.000,00======================= O OBJETIVO DESTE RELATORIO-----------------------------------------------------------------------------------Imovel: 01 Descrição: Fazenda Lagoa Branca Localização: Córrego Moraes-----------------------------------------------------------------------------------Benfeitorias Produtivas:-----------------------------------------------------------------------------------01 - Cultivo de Soja Area: 50,00 Valor: R$ 1.800,0001 - Cultivo de Algodão Area: 150,00 Valor: R$ 5.800,00-----------------------------------------------------------------------------------Benfeitorias Não Produtivas----------------------------------------------------------------------------------- 01 - Lagoa Qtd - 1 Valor: R$ 2.000,00 02 - Casa Qtd - 3 Valor: R$ 60.000,00 03 - Trator Esteira Qtd - 1 Valor: R$ 200.000,00--------------------- SERA QUE ALGUEM PODE ME AJUDAR, JA TENTEI E LI MUITA COISA MAS NAO SAIO DO LUGAR

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer o comando usando UNION, algo do tipo:

 

select imovelrural.idimovel, imovelrural.descrição, imovelrural.localizaçao, 'N' as Agrupamentofrom imovelrural, benfnaoprodutivawhere imovelrural.idimovel = benfnaoprodutiva.idimovelUNIONselect imovelrural.idimovel, imovelrural.descrição, imovelrural.localizaçao, 'S' as Agrupamentofrom imovelrural, benfprodutivawhere imovelrural.idimovel = benfprodutiva.idimovelorder by 4
No caso no relatório apenas coloque um GroupHeader apontando para o campo Agrupamento, sendo que assim vai separar os registros, imprimindo cada um em um bloco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, fazer o select com union eu fiz aqui=================================================================select 'N' as agrupa,imovelrural.idimovelrural,idcadastro,titulo,especie,classificacao,nomeimovel, corregodistrito,municipio,comarca,comprovado,gravame,cessao,seguro, areatotal,impenhorabilidade,valorterranua,datavalor,participacao, situacaopropriedade,matricula,folha,livro,data,cartorio,especieesc, comarcaregistro,condicaocondominio,nirf,conservacao,modulorural, fronteira,roteiroacesso,estado,distrito,distancia,terranua, estadocomarca,estadocomarcaregistro, idbenfcultivo,benfcultivo.idimovelrural,solo,'s','s',benfcultivo.valorun, obs,irrigado,'s','s','2006-01-01','s','s',idsolo,benfcultivo.valortotal, benfcultivo.area,numplantasfrom imovelrural,benfcultivowhere imovelrural.idimovelrural = benfcultivo.idimovelruraland imovelrural.idimovelrural=6unionselect 'S' as agrupa,imovelrural.idimovelrural,idcadastro,titulo,especie,classificacao,nomeimovel, corregodistrito,municipio,comarca,comprovado,gravame,cessao,seguro, imovelrural.areatotal,impenhorabilidade,valorterranua,imovelrural.datavalor,participacao, situacaopropriedade,matricula,folha,livro,data,cartorio,especieesc, comarcaregistro,condicaocondominio,nirf,conservacao,modulorural, fronteira,roteiroacesso,estado,distrito,distancia,terranua, estadocomarca,estadocomarcaregistro, idbenfconst,benfconst.idimovelrural,especificacao,quantidade,medidas, benfconst.valor,piso,benfconst.areatotal,estadoconservacao,cobertura, benfconst.datavalor,capacidadearmazenamento,produtoarmazenado,1,1,1,1from imovelrural,benfconstwhere imovelrural.idimovelrural = benfconst.idimovelruraland imovelrural.idimovelrural=6order by 1=====================================================no query funcionou, ordenou primeiro os N e depois os S, mas quando jogo no delphi ele nao agrupa, aparece apenas os N, coloquei um groupheader e um detail, com o campo expressiondo groupheader voltado para o campo AGRUPA!!!!pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

exclui o relatorio que estava fazendo, comecei do zero e obtive resultado positivo, o problema que vejo agora usando o union eh que o meio de visualização eh diferente da tabela benfeitoria produtiva e nao produtiva, pois a tabela benfeitoria nao produtiva tem mais campos e tem descrição de campos que preciso colocar antes dos db, como eu faço pra colocar duas detail e fazer com que o groupheader agrupe do mesmo jeito que esta fazendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, tentei de tudo e com o quickreport nao da nao, o negocio eh ir por codigoe fazer o que eu quero, colocando um evento no beforeprint do detail, vigiando quando o campo de agrupamento muda, o problema eh que nao consegui acessar aspropriedades da detail band, tipo a height, preciso alterar informações dele enao consigo saber por onde em tempo de execução!!!!vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

ops, ja vi aqui, vacilo demais, era soh ir direto, detailband1.height.............vlw marcio, mato a pau

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.