Fórum alguem pode me dizer se esta correto esta minhra Curva ABC #265149
13/01/2005
0
Pessoal na base A coloquei o valor de 65¬
Na base B 25¬ na C 10¬ + a acredito que ainda não esta certo.
Curva A não teria que ser os + vendidos, se alguem puder avaliar
e apontar algum erro de lógica.
Obrigado a tds .
Var
Produto :String ;
begin
MCurvaA.Clear ;
CurvaB.Clear ;
CurvaC.Clear ;
CurvaD.Clear ;
//Nesta Parte eu Somei os Totais de vendas
With ObjVendas.Tb_Vendas,Sql do
begin
Clear ;
Add(´Select Sum(Quantidade) TotalVendas from Vendas´) ;
Active:=True ;
end;
// Peguei o Total nesta Variavel
TotalVendas:=ObjVendas.Tb_Vendas.FieldByname(´TotalVendas´).Value ;
// Agrupei os prdutos ;
With ObjVendas.Tb_Vendas,Sql do
begin
Clear ;
Add(´SELECT Produto,SUM( Quantidade) Quantidade FROM VENDAS Vendas´);
Add(´GROUP BY Produto´);
Add(´ORDER BY 2 Asc´);
Active:=True ;
end;
totalacum := 0;
baseA := strtofloat(CbCurvaA.Text);
baseB := strtofloat(CbCurvaB.Text) + baseA;
baseC := strtofloat(CbCurvaC.Text) + baseB;
ObjVendas.Tb_Vendas.First ;
//Agos Aqui é as partes de Calculos
While not ObjVendas.Tb_Vendas.Eof do
begin
Quant :=ObjVendas.Tb_Vendas.FieldByname(´Quantidade´).Value ;
Produto :=ObjVendas.Tb_Vendas.FieldByname(´Produto´).AsString ;
totalacum := totalacum + Quant;
percent := Round((TotalAcum * 100) / totalvendas);
if percent <= baseA then
MCurvaA.Lines.Add(Produto+´-´+IntTostr(Quant))
else if percent <= baseB then
CurvaB.Items.Add(Produto+´-´+IntTostr(Quant))
else if percent <= baseC then
CurvaC.Items.Add(Produto+´-´+IntTostr(Quant))
else if (Percent <>BaseA)and(Percent <>BaseB) and (Percent <>BaseC)then
CurvaD.Items.Add(Produto+´-´+IntTostr(Quant));
ObjVendas.Tb_Vendas.Next ;
end;
CurvaB.ItemIndex :=0 ;
CurvaC.ItemIndex :=0 ;
CurvaD.ItemIndex :=0 ;
Na base B 25¬ na C 10¬ + a acredito que ainda não esta certo.
Curva A não teria que ser os + vendidos, se alguem puder avaliar
e apontar algum erro de lógica.
Obrigado a tds .
Var
Produto :String ;
begin
MCurvaA.Clear ;
CurvaB.Clear ;
CurvaC.Clear ;
CurvaD.Clear ;
//Nesta Parte eu Somei os Totais de vendas
With ObjVendas.Tb_Vendas,Sql do
begin
Clear ;
Add(´Select Sum(Quantidade) TotalVendas from Vendas´) ;
Active:=True ;
end;
// Peguei o Total nesta Variavel
TotalVendas:=ObjVendas.Tb_Vendas.FieldByname(´TotalVendas´).Value ;
// Agrupei os prdutos ;
With ObjVendas.Tb_Vendas,Sql do
begin
Clear ;
Add(´SELECT Produto,SUM( Quantidade) Quantidade FROM VENDAS Vendas´);
Add(´GROUP BY Produto´);
Add(´ORDER BY 2 Asc´);
Active:=True ;
end;
totalacum := 0;
baseA := strtofloat(CbCurvaA.Text);
baseB := strtofloat(CbCurvaB.Text) + baseA;
baseC := strtofloat(CbCurvaC.Text) + baseB;
ObjVendas.Tb_Vendas.First ;
//Agos Aqui é as partes de Calculos
While not ObjVendas.Tb_Vendas.Eof do
begin
Quant :=ObjVendas.Tb_Vendas.FieldByname(´Quantidade´).Value ;
Produto :=ObjVendas.Tb_Vendas.FieldByname(´Produto´).AsString ;
totalacum := totalacum + Quant;
percent := Round((TotalAcum * 100) / totalvendas);
if percent <= baseA then
MCurvaA.Lines.Add(Produto+´-´+IntTostr(Quant))
else if percent <= baseB then
CurvaB.Items.Add(Produto+´-´+IntTostr(Quant))
else if percent <= baseC then
CurvaC.Items.Add(Produto+´-´+IntTostr(Quant))
else if (Percent <>BaseA)and(Percent <>BaseB) and (Percent <>BaseC)then
CurvaD.Items.Add(Produto+´-´+IntTostr(Quant));
ObjVendas.Tb_Vendas.Next ;
end;
CurvaB.ItemIndex :=0 ;
CurvaC.ItemIndex :=0 ;
CurvaD.ItemIndex :=0 ;
Essistemas
Curtir tópico
+ 0
Responder
Posts
13/01/2005
Essistemas
??Subindo
Responder
Gostei + 0
13/01/2005
Massuda
Pelo que me lembro, você teria que ordenar a query com o total por produto ordem decrescente para poder construir a curva ABC. Assim, os produtos com total mais expressivo ficam na categoria A.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)