Relatorio e Assim

Delphi

18/10/2013


1 Paulo Avldorada 25 2,550
1 Jose Flores 10 3,335
35 5,885
2 Cristina Praça 15 10,558
2 Francisco Coroado 12 5,365
27 15,922
3 Jose Flores 10 3,335
3 Cristina Praça 15 10,558
3 Jose Flores 10 3,335
35 13,892

Assim que tem que ficar o relatorio.
Paulo Pacheco

Paulo Pacheco

Curtidas 0

Respostas

Rafael Brendolan

Rafael Brendolan

18/10/2013

A bateria da minha bola de cristal acabou e esqueci o carregador em casa. Não tem como ajudar hoje.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Estou com o Rafael,

é que o Paulo iniciou o tópico em https://www.devmedia.com.br/forum/somar-quantidade-e-peso-por-rota-com-rave-delphi-7/458758 e continuou nesse, mas mesmo assim precisamos de mais informações.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

Rafael e Marcos desculpa, é coisa de iniciante.

Estou com um Problema, preciso somar Quantidade e Peso Por Rota numa query já filtrada por data, a Rota vai de 1 a 6, sao 2 tabelas DBF (Capa e Item)

poderia mostrar a imagem que tirei do relatorio com ALT-PrintScreen, mas nao sei como faz no site. poir isso tentei fazer o relatorio na mao mas nao deu certo

Obrigado.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Olá Paulo,

explicar quais procedimentos a serem executados no rave reports é muito complicado para ser feito no fórum, mas recomendo as aulas do curso https://www.devmedia.com.br/curso/curso-de-rave-reports-completo/160, acredito que as aulas de 13 a 20 irão ajudar muito o seu caso, sendo que as aulas 19 e 20 são sobre componentes de cálculo do rave.

Meus conhecimentos para fazer os cálculos direto da base de dados são de sql, se for suficiente me avise.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

Não tenho acesso as aulas e videos.

ve se vc pode me ajudar com consulta SQL mesmo, veja tenho 2 tabelas lincadas por (codcapa) preciso filtrar por DATA e Rota (a rota vai de 1 a 6) somando o valor de quantidade e peso e jogar esse total por rota Ex. Rota 1-125 qtd e peso 12,553. Nao sei se fui bem claro. obrigado.
copo posso postar aqui no foro a imagem do Rave, para vc verem.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Olá Paulo,

você pode mostrar os campos das duas tabelas, para que possa criar a select?
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

capa.dbf itens.dbf
codcapa n codigo n
data d codcapa n
caminhao c rota n
motorista c data d
rota n produto c
estivas c peso n
cliente c qtd n
endereco c totqtd n
bairro c totpeso n

o Campo chave e (codcapa) nos 2 banco.
preciso que filtre por data metrazendo o total de qtd e peso por rota que varia de 1 a 6. Isso é complicado para minha cabeça.

Obrigado Universitarios.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

capa.dbf itens.dbf
codcapa n codigo n
data d codcapa n
caminhao c rota n
motorista c data d
rota n produto c
estivas c peso n
cliente c qtd n
endereco c totqtd n
bairro c totpeso n

o Campo chave e (codcapa) nos 2 banco.
preciso que filtre por data metrazendo o total de qtd e peso por rota que varia de 1 a 6. Isso é complicado para minha cabeça.

Obrigado Universitarios.

Paulo, podemos alterar essas tabelas?
Há campos que podem gerar redundância e possíveis erros, o campo data tem que estar nas duas tabelas? o campo rota tem que estar nas duas tabelas? e os campos totqtd e totpeso são necessários?
eu recomendo que o campo data e rota fique apenas na tabela capa e os campos totqtd e totpeso sejam calculados pela aplicação.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

eu criei estes campos no banco itens.dbf justamente porque nao conseguia fazer estas somas, OK concordo com vc.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Paulo, teste o comando abaixo:
select capa.data, capa.rota, capa.cliente, capa.bairro, sum(itens.qtd) as quantidade, sum(itens.peso) as peso 
from itens, capa WHERE capa.codcapa = itens.codcapa
group by capa.rota
order by capa.data


retire os campos da tabela itens, conforme indicado acima.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

As tabelas ficaram assim:

capa.dbf
codcapa n
data d
caminhao c
motorista c
rota n
estivas c
cliente c
endereco c
bairro c

itens.dbf
codigo n
codcapa n
produto c
peso n
qtd n
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

acabei de testar com as mudanças que vc me pediu, e com selec que vc sugeriu, mas deu um erro:

(When Group By exists, every simple field in projectors must be in Group By.:)

esta é a mensagem de erro.

Obrigado.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

a ficou assim :

dmBaseDados1.AdoQryROT.Close;
dmBaseDados1.AdoQryROT.SQL.Clear;
dmBaseDados1.AdoQryROT.SQL.Add('SELECT capa.data, capa.rota, capa.cliente, capa.bairro, sum(itens.qtd) as quantidade, sum(itens.peso) as peso');
dmbaseDados1.AdoQryROT.SQL.Add('from itens, capa WHERE capa.codcapa = itens.codcapa');
dmbaseDados1.AdoQryROT.SQL.Add('group by capa.rota');
dmbaseDados1.AdoQryROT.SQL.Add('order by capa.data');
dmBaseDados1.AdoQryROT.Open;
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

deu certo ate certo ponto assim:
('SELECT capa.codcapa, capa.data, capa.caminhao, capa.motorista, capa.estivas, capa.rota, capa.cliente, capa.endereco, capa.bairro, sum(itens.qtd) as quantidade,sum(itens.peso) as peso');
('from itens, capa WHERE capa.codcapa = itens.codcapa and data LIKE '+#39+Trim(CNHAVEN)+'%'+#39);
('group by capa.codcapa, capa.rota, capa.data, capa.caminhao, capa.motorista, capa.estivas, capa.endereco, capa.cliente, capa.bairro ');
('order by capa.data');

Como faço para ver os totais pra se tão batendo (QTD q PESO) na Query.

Obrigado
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Para ver os totais é na mão mesmo, tem de ir no banco de dados e somar os campos para poder conferir.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

Me expressei mau, preciso ver os totais na query como faço, pois não estao saindo os valores somados de QTD e PESO. preciso ver estes valores somados no DBGrid.

Obrigado.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Paulo,
o select que testei deve ter dado erro para você por causa da versão do mysql que uso, a minha está na versão 5.6.13.

Para você ver no dbgrid, recomendo colocar um select genérico no comando sql, assim você irá ver os campos criados pelo select no seu client data set.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

Com este select na Query Consigo ver a tabela filtrada por data, mas nao consigo ver o totais de Quantidade e Peso, pois na grid sai os valores sem o Peso e QTD, como consigo por estas duas variaveis que foram criadas com o select (Quantidade e Peso) dentro do grid ou no relatorio do rave. Obrigado.

dmBaseDados1.AdoQryROT.Close;
dmBaseDados1.AdoQryROT.SQL.Clear;
dmBaseDados1.AdoQryROT.SQL.Add('SELECT capa.data, capa.rota, capa.cliente, capa.bairro, sum(itens.qtd) as quantidade, sum(itens.peso) as peso');
dmbaseDados1.AdoQryROT.SQL.Add('from itens, capa WHERE capa.codcapa = itens.codcapa');
dmbaseDados1.AdoQryROT.SQL.Add('group by capa.rota');
dmbaseDados1.AdoQryROT.SQL.Add('order by capa.data');
dmBaseDados1.AdoQryROT.Open;
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

Sai o peso e Qtd sem estar somados, ok Obrigado
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Estranho aqui funcionou, teste a sql no mysqlfront (ou outro) primeiro.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

Lembrando que tou usando 2 bancos DBF com ADOQuery em 2 dbGrids.

Obrigado.
GOSTEI 0
Paulo Pacheco

Paulo Pacheco

18/10/2013

meu e-mail (pbpach@oi.com.br) gostaria de mandar a rotina toda para vcs darem uma olhada.

Obrigado.
GOSTEI 0
Marcos Saffran

Marcos Saffran

18/10/2013

Paulo, ontem enviei um e-mail para você e ainda não obtive retorno.
GOSTEI 0
Alessandro Yamasaki

Alessandro Yamasaki

18/10/2013

Sai o peso e Qtd sem estar somados, ok Obrigado


Tire os comandos SUM ( xxx) para xxx e remova o group by do final do SQL
GOSTEI 0
POSTAR