Gerar um relatorio

12 respostas
L

blz galera …

tenho uma tabela em meu banco de dados(mysql) que contem as seguintes colunas :

cod(auto_increment),data, codigo_cliente(int), qtdeentrada(int), qtdesaida(int), faltam(int);

Eu quero gerar um relatorio(usando ireport) mostrando tudo aquilo que contem nesta tabela, mas o problema é que preciso mostrar tudo de um cliente e ao final deste cliente mostrar a soma das colunas qtdeentregue,qtde saida e faltam…sempre que mudar de codigo de cliente tem que aparecer o nome dele e ao final a somatoria relacionada aquele cliente.

Eu não sei como fazer essa condição no relatorio, alguem poderia me ajudar?

Para pegar os dados no banco de dados…eu faço o seguinte select : "select * from nome_tabela order by codigo_cliente;"

Então nesse resultado mostra todos os dados de cada cliente na ordem que preciso jogar no relatorio, mas o problema é que quando eu terminar de relatar tudo sobre o cliente codigo 1 por exemplo, eu preciso mostrar a soma das colunas e depois mostrar o codigo do cliente 2 e depois a soma no cliente 2 e assim sucessivamente…

Muito obrigado pela atenção desde ja, desculpa a ignorância e agradeço pela ajuda!!!

12 Respostas

L

Vc deverá mudar seu código SQL, criando um select dentro de select:

select t.*,
(select sum (nn.campo) from nome_tabela nn where nn.codigo_cliente = n.codigo_cliente) as Total 
from nome_tabela n order by n.codigo_cliente asc
L

valeu pela ajuda parcerio…mas tem como fazer isso pelo relatorio, la no jasperreport? pois eu preciso somar todas as colunas e ainda passar uma linha separando os outros clientes.

tipo um if para quando mudar o cod do cliente, ela mostar o total das colunas e tb finalizar com uma linha

L

valeu pela ajuda parcerio…mas tem como fazer isso pelo relatorio, la no jasperreport? pois eu preciso somar todas as colunas e ainda passar uma linha separando os outros clientes.

tipo um if para quando mudar o cod do cliente, ela mostar o total das colunas e tb finalizar com uma linha

O jasper tem essa ferramenta de inserir linhas, basta você vasculhar ou pesquisar !!!

Enquanto a soma de suas colunas, não consegue aproveitar o código sql que passei ? pois nele é só você adaptar á sua necessidade, ou seja, adicionar os campos que deseje somar.

Aquele select está na seguinte estrutura: (Campos vindos do select * from)

Código Cliente | Nome Cliente | Qtd Entrada | Qtd Saída | Faltam | Total |
1 | Fulano | 10 | 10 | 0| 10
2 | João | 10 | 10 | 0| 10

Qualquer coisa poste a estrutura que deseje !!!

L

eu preciso assim:

Cliente01 | Total_Qtde_entrada | Total_qtde.Saida | Total_Faltam
Cliente02 | Total_Qtde_entrada | Total_qtde.Saida | Total_Faltam
Cliente03 | Total_Qtde_entrada | Total_qtde.Saida | Total_Faltam
Cliente04 | Total_Qtde_entrada | Total_qtde.Saida | Total_Faltam

o relatorio deve ser dessa forma, somar tudo o q for lançado no relatorio e mostrar desta forma acima pra mim.(seria um relatorio sintetico)

muito obrigado pela atenção ae amigo.

L

Ok, seu Cliente 1 tem os seguintes campos:
qtdeentrada(int), qtdesaida(int), faltam(int), onde: qtdeentrada(int) = 10, qtdesaida(int) = 4, faltam(int) = 6

Como vc define pra mim os campos Total_Qtde_entrada | Total_qtde.Saida | Total_Faltam

para a situação que informei para seu cliente um ?

L

meus clientes:

qtdeentrada(int), qtdesaida(int), faltam(int), onde: qtdeentrada(int) = 10, qtdesaida(int) = 5, faltam(int) = 5
qtdeentrada(int), qtdesaida(int), faltam(int), onde: qtdeentrada(int) = 10, qtdesaida(int) = 10, faltam(int) = 0
qtdeentrada(int), qtdesaida(int), faltam(int), onde: qtdeentrada(int) = 10, qtdesaida(int) = 5, faltam(int) = 5

o total seria a soma : total de entregue: 30 / total de saida: 20 / faltam 10.

L

Hun…
Faltou um pouco de atenção sua na query que postei da primeira vez hein…

A informação que você quer está aqui !!!

select c.*,  
(select sum (cc.qtdeentrada) from nome_tabela cc) as Total_Qtde_entrada,    
(select sum (cc.qtdesaida) from nome_tabela cc) as Total_qtde_Saida,  
(select sum (cc.faltam) from nome_tabela cc) as Total_Faltam  
from nome_tabela c order by c.codigo_cliente asc

Agora é só aplicar as informações corretamente em seu relatório !!!

L

agradeço, mas como eu faço pra pegar a soma dos tres campos la no relatorio(dentro do select)? entregue , saida, faltam.

L

eu pergunto e você me responde !!

Você conseguiu pegar um campo qualquer de um determinado select e atribuí - lo a um relatório ? se sim, como ?

L

sim eu consegui usar o codigo que você me mandou…mas eu preciso das tres colunas somadas…entao preciso fazer um select que me retorne as tres colunas somadas referente ao cliente.

L

Você não respondeu minha pergunta e ainda conseguiu me deixar confuso !!!

Você disse que conseguiu usar o código que mandei, mas que ainda precisa fazer um select que retorne as três colunas somadas. Cara ou você conseguiu ou não conseguiu, pois no select retorna as três colunas somadas, porém, a soma é referente a todos os seus clientes ! era isso ou não o que você queria ?

Por favor, se precisa de ajuda, escreva sua dúvida com calma e com clareza, senão fica impossível te ajudar !

L

desculpa amigo, realmente o codigo que vc me mandou deu certo…é que eu tinha reduzido ele para entender e fazer funcionar e acabei esquecendo de arrumar…

desculpas e muito obrigado pela paciencia e pela atenção…

falow, tudo de bom ae.

Criado 8 de maio de 2013
Ultima resposta 9 de mai. de 2013
Respostas 12
Participantes 2