Fórum Como criar um Relatório que Calcule a Qtde de Produtos Vendidos por Cliente #484647

05/07/2014

0

Pessoal preciso criar um relatório que onde através de um filtro de data eu possa saber a quantidade de cada produto que o cliente levou
exemplo:
o cliente Paulo comprou o produto "A" duas vezes esse mês as quantidade foram 2 e 3, no caso precisava que o meu relatório fizesse essa soma referente as vendas desse mes totalizando Produto "A"= 5,
o meu banco tem as seguintes tabelas referente a essa situação:
Venda:............ID_VENDA, ID_CLIENTE, DATA, HORA, VALOR
Item_Venda:...ID_ITEM_VENDA, ID_PRODUTO, ID_VENDA, PRECO_UNITARIO, QTDADE, VALOR_TOTAL
Movimentos....ID_MOVIMENTO, ID_ENTRADA_SAIDA, TABELA, DATA, TIPO_MOVIMENTO, DESCRICAO_MOV, QTDE_MOV
Saidas............ID_SAIDA, ID_PRODUTO, DATA, QTDE_SAIDA, MOTIVO


Queria saber se alguem tem alguma ideia como posso fazer isso, estou utilizando DELPHI 2010 E Banco de Dados FIREBIRD;
Fabio

Fabio

Responder

Posts

05/07/2014

Ricardo

Qual componente vc esta usando para fazer o relatório?
Responder

Gostei + 0

05/07/2014

Fabio

Estou usando o AdoQuery, e o QuickReport como ferramente de relatorio
Responder

Gostei + 0

05/07/2014

Ricardo

Você pode criar a função para somar os campos e atribuir o valor a uma variável ou usar o componente TQRExpr do próprio quickreport.

Você insere ele no form e vai na propriedade expression e coloca SUM(nome do campo que ser somar).
Responder

Gostei + 0

05/07/2014

Fabio

Sim eu até pensei em algo assim , porem se foi feita digamos que cinco vendas para um cliente eu preciso somar os produtos repetidos, ou seja eu preciso somar todas as vendas feitas para esse cliente por um determinado periodo entende?
preciso de um relatorio de gasto de produto por cliente...
Responder

Gostei + 0

05/07/2014

Ricardo

Se eu não estou entendendo errado... por exemplo:

período de X a Y

cliente comprou produto A em 3 datas

Produto A qtd. 2 data 00/00/0000
Produto A qtd. 4 data 00/00/0000
Produto A qtd. 1 data 00/00/0000

Certamente no relatório vc vai ter um campo para exibir o nome do produto e outro para as quantidades, então só colocar a função sum(qtd) no expression do componente.
Responder

Gostei + 0

05/07/2014

Fabio

Amigo quase isso vou explicar bem detalhado o que estou quero fazer:
ter um form la que se posso digitar o cliente e dois timepiker`s e um botão para gerar o relatorio
etao na verdade vou precisar trabalhar com um ralatorio master-detail, e precisar buscar de alguma forma o historico de vendas para esse cliente, para entao somar a quantidade
de Produto "A" que ele levou do periodo x a y, dai pensei se existe alguma forma via sql pra fazer isso entende?
Responder

Gostei + 0

06/07/2014

Ricardo

Lógico que tem!

Seria mais ou menos assim:

with query do
begin
close;
sql.clear;
sql.add('select vendas.*, itens.* from vendas, itens where vendas.id_venda = itens.id_venda');
sql.add('and data >= :pdatainicial and data <= :pdatafinal');
params.ParamByName('pdatainicial').Value := datainicial;
params.ParamByName('pdatafinal').Value := datafinal;
Open;
end;
Responder

Gostei + 0

06/07/2014

Fabio

Sim é quase isso porem observe minhas tabelas
Venda:............ID_VENDA, ID_CLIENTE, DATA, HORA, VALOR
Item_Venda:...ID_ITEM_VENDA, ID_PRODUTO, ID_VENDA, PRECO_UNITARIO, QTDADE, VALOR_TOTAL

na tabela venda tem o Código do CLIENTE porem nao tem o campo qtdade, já na tabela Item_Venda, tem o campo QTDADE mas nao tem o campo ID_CLIENTE, dae queria saber se tem alguma forma de fazer esse relatório sem mexer nas tabelas, porque eu dividi uma pra ficar o registro da venda e outra pra ficar os itens da venda que recebe muitos pra muitos entende?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar