Ajuda com criação de relatório![RESOLVIDO]

13 respostas
renato_ramos

Oi gente!

eu tenho duas tabelas que possuem relacionamento 1-n

supondo uma tabela A que possui ‘n’ elementos da tabela B

tem algum jeito de gerar um resultado assim??

------|Coluna A|---------------|Coluna B|
------|A1|-----------------------|B1,B2,Bn|
------|A2|-----------------------|B1,b2|

porque só consigo fazer assim

------|Coluna A|---------------|Coluna B|
------|A1|-----------------------|B1|
------|A1|-----------------------|B2|
------|A1|-----------------------|Bn|

espero ter me expressado corretamente,

mt obrigado pela atenção!

[]'s

Renato Ramos

13 Respostas

jeroqueiroz

Você esta usando o iReport?

Se estiver, esta usando Grupos no iReport?.

Mostra a forma que você esta utilizando, para ver no que podemos ajudar.

renato_ramos

sim estou usando o iReport

eu não sei o que é grupos no iReport

tem como fazer com isso?

eu estou fazendo o basico do basico… só fazendo os join e mostrando… mas sai desse jeito que mostrei… fica feio de +

obrigado pela atenção Queiroz

[]'s

RenataFA

Quando passei por essa msma situação, fiz uma function em meu BD pra me retornar da forma como vc precisa. Ai já vinha tudo certinho no meu SQL e não precisei mudar nada no relatório.

Dá uma pesquisada se não resolve pra vc.

renato_ramos

Oi Renata ^^’

tipow… vc tem algum link de onde eu possa pesquisar?

obrigado pela atenção :smiley:

jeroqueiroz

Você tem a opção de tratar a sua query como citado por "RenataFA", ou tem a opção de tratar no seu relatorio.

Tratando no relatorio e onde você pode criar grupos e selecionar os grupos para que fiquem da forma que você mostrou.

Exemplo encontrado neste post: http://www.guj.com.br/posts/list/14014.java

Dentro do Ireport, vc tem a opção de criar Grupos
VIEW --> REPORT GROUPS --> NEW
De um nome para ele, e no campo Group Expression, especifique o nome do seu Field, ou seja o nome da Coluna de sua Tabela

Qualquer dúvida você posta ai ou pesquisa por "Agrupamento no IReport".

A forma de utilização fica a seu criterio agora.

VLW!

renato_ramos

opa valeu!

vo dá uma pesquisada agora

mt obrigado aos dois =D

valeeu!

RenataFA

renato_ramos:
Oi Renata ^^’

tipow… vc tem algum link de onde eu possa pesquisar?

obrigado pela atenção :smiley:

Olha, isso vai depender do banco de dados que vc está usando, e do que quer fazer. Vou colar aqui um exemplo simples, pro MySQL. Na tabela prazos eu tenho os dias para possíveis pagamentos do meu pedido. Essa função simplesmente agrupa todos os dias, então por ex, se eu quiser listar os pagamentos dos pedidos de compra, sem a função sairia assim:

Pedido Dias 000001 15 000001 30 000001 45 000002 10 000002 20

Com a função, fica assim:

Pedido Dias 000001 15 30 45 000002 10 20

Abaixo o ex, boa sorte!

CREATE FUNCTION func_prazo_dias(par_pedido bigint(16)) RETURNS varchar(500) DETERMINISTIC BEGIN DECLARE var_fim int; DECLARE var_dias int; DECLARE ret_condicoes varchar(500); DECLARE cur CURSOR FOR select distinct dias from prazo where pedido = par_pedido order by dias; DECLARE CONTINUE HANDLER FOR NOT FOUND SET var_fim=1; SET ret_condicoes = ''; SET var_fim = 0; OPEN cur; REPEAT FETCH cur INTO var_dias; IF NOT var_fim THEN SET ret_condicoes = CONCAT(ret_condicoes, var_dias, ' '); END IF; UNTIL var_fim=1 END REPEAT; CLOSE cur; RETURN ret_condicoes; END;

renato_ramos

Oi!

eu estou usando o PostGres, e não funcionou não…da erro de sintaxe =/

obrigado Renata =D

ms vou tentando outra coisa aqui qq coisa posto aqui denovo ^^

renato_ramos

isso funcionou ! =D

muito obrigado aos 2!

mas fiquei interessada na function… não manjo nd disso ^^’

[]'s

RenataFA

rs… é… vc vai ter que pesquisar sobre a sintaxe pro PostGres… é sempre meio parecido com isso ai.

Pesquisa que vc encontra uns exemplos.

Boa sorte! :wink:

renato_ramos

Surgiu outra questão agora,

nen todos elementos de A possuem relacionamento na tabela B

ai não sai no relatório…

oq fazer agora??

obrigado =D

RenataFA

Use left join no relacionamento entre as tabelas A e B

renato_ramos

Oi!

obrigado =D funcionou!

não pensava que era por causa do Join

brigado mesmo!

Criado 23 de novembro de 2009
Ultima resposta 25 de nov. de 2009
Respostas 13
Participantes 3