 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Adsonstm Novato

Registrado: Sexta-Feira, 30 de Abril de 2010 Mensagens: 88
|
Enviada: Qui Mar 03, 2016 12:53 am Assunto: Otimizar a busca |
|
|
Boa Noite Pessoal !!
Uma vez ouvi falar que exite pelo menos duas maneiras de fazer alguma coisa a certa e a errada e entre essas duas exitem uma infinidade de possibilidades entao pesso que alguem me der uma forcinha se possivel com esse codigo ele ta fucionando mas demora muito desde ja agradeço a força
| Código: |
procedure TForm1.BitBtn1Click(Sender: TObject);
var i :Integer;
begin
with qprod do
begin
close;
sql.Clear;
sql.Add(' Select p.ordem, p.codigo, p.nome, p.ordem_fornecedor1, p.ordem_fornecedor2, p.ordem_fornecedor3, p.ordem_fornecedor4, p.ordem_fornecedor5, ');
sql.Add(' a.ordem_prod_serv, a.ordem_tabela_preco, a.preco, e.ordem_filial, e.ordem_prod_serv, sum(e.qtde_estoque_atual)estq');
sql.Add('From prod_serv p inner join Prod_serv_precos a on p.ordem = a.ordem_prod_serv');
sql.Add('inner join estoque_atual e on p.ordem = e.ordem_prod_serv ');
sql.Add(' Where e.ordem_filial =:vfil and a.ordem_tabela_preco =:vtab and ');
sql.Add(' (p.ordem_fornecedor1 =:vcod or p.ordem_fornecedor2 =:vcod2 or ');
sql.Add(' p.ordem_fornecedor3 =:vcod3 or p.ordem_fornecedor4 =:vcod4 or ');
sql.Add(' p.ordem_fornecedor5 =:vcod5) and a.preco >:vpreco');
sql.Add(' group by e.ordem_prod_serv , p.nome, p.ordem, p.codigo, p.ordem_fornecedor1,');
sql.Add(' p.ordem_fornecedor2, p.ordem_fornecedor3,');
sql.Add(' p.ordem_fornecedor4, p.ordem_fornecedor5, a.ordem_prod_serv, a.ordem_tabela_preco,');
sql.Add(' a.preco, e.ordem_filial');
sql.Add('order by p.nome');
Parameters.ParamByName('vcod').Value := QForOrdem.Value;
Parameters.ParamByName('vcod2').Value := QForOrdem.Value;
Parameters.ParamByName('vcod3').Value := QForOrdem.Value;
Parameters.ParamByName('vcod4').Value := QForOrdem.Value;
Parameters.ParamByName('vcod5').Value := QForOrdem.Value;
Parameters.ParamByName('vpreco').Value := QProdpreco.Value;
Parameters.ParamByName('vfil').Value := LbF.Caption;
Parameters.ParamByName('vtab').Value := LbP.Caption;
open;
end;
Label1.Caption := IntToStr(qprod.RecordCount);
i := 0;
ProgressBar1.Max := QProd.RecordCount;
while not QProd.Eof do
begin
i := i + 1;
ProgressBar1.Position := i;
if m1.Text <> '' then
begin
with q1 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M1.Text;
Parameters.ParamByName('vano').Value := A1.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m2.Text <> '' then
begin
with q2 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M2.Text;
Parameters.ParamByName('vano').Value := A2.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m3.Text <> '' then
begin
with q3 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M3.Text;
Parameters.ParamByName('vano').Value := A3.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m4.Text <> '' then
begin
with q4 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M4.Text;
Parameters.ParamByName('vano').Value := A4.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m5.Text <> '' then
begin
with q5 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M5.Text;
Parameters.ParamByName('vano').Value := A5.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m6.Text <> '' then
begin
with q6 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M6.Text;
Parameters.ParamByName('vano').Value := A6.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m7.Text <> '' then
begin
with q7 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M7.Text;
Parameters.ParamByName('vano').Value := A7.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m8.Text <> '' then
begin
with q8 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M8.Text;
Parameters.ParamByName('vano').Value := A8.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m9.Text <> '' then
begin
with q9 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M9.Text;
Parameters.ParamByName('vano').Value := A9.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m10.Text <> '' then
begin
with q10 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M10.Text;
Parameters.ParamByName('vano').Value := A10.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m11.Text <> '' then
begin
with q11 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M11.Text;
Parameters.ParamByName('vano').Value := A11.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
if m12.Text <> '' then
begin
with q12 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := M12.Text;
Parameters.ParamByName('vano').Value := A12.Text;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
CdsVnd.Append;
CDSVndCodFor.Value := QForcodigo.AsString;
CdsVndFor.Value := QForNome.Value;
CDSVndcod.Value := QProdcodigo.value;
CDSVndprod.Value := QProdnome.Value;
CDSVndEstq.Value := CurrToStr(QProdestq.Value);
CDSVndPreco.Value := CurrToStr(QProdpreco.Value);
CDSVndv1.Value := CurrToStr(Q1Vnd.Value);
CDSVNDV2.Value := CurrToStr(Q2Vnd.Value);
CdsVndV3.Value := CurrToStr(Q3VND.Value);
CDSVNDV4.Value := CurrToStr(Q4Vnd.Value);
cdsvndv5.Value := CurrToStr(Q5Vnd.Value);
cdsvndv6.Value := CurrToStr(q6vnd.Value);
cdsvndv7.Value := CurrToStr(q7vnd.Value);
cdsvndv8.Value := CurrToStr(q8vnd.Value);
cdsvndv9.Value := CurrToStr(q9vnd.Value);
cdsvndv10.Value := CurrToStr(q10vnd.Value);
cdsvndv11.Value := CurrToStr(q11vnd.Value);
cdsvndv12.Value := CurrToStr(q12vnd.Value);
Cdsvnd.Post;
QProd.Next;
end;
RvProject1.Execute;
end;
|
|
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Mar 03, 2016 8:25 am Assunto: |
|
|
uma das coisas q ajudam a performance sao indices.
qual bd vc ta usando?
se for mysql, vc pode por o comando EXPLAIN antes do SELECT pra ver onde ta o gargalo, assim:
| Código: | | EXPLAIN SELECT ... INNER JOIN .... WHERE ... |
mas exatamente onde ta demorando? de mais detalhes[/code] _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
Adsonstm Novato

Registrado: Sexta-Feira, 30 de Abril de 2010 Mensagens: 88
|
Enviada: Qui Mar 03, 2016 8:36 am Assunto: |
|
|
Estou usando sql server a demora a na busca das vendas dentro do while
o cod atual estar assim
| Código: |
unit UCompras;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, StdCtrls, Buttons, Grids, DBGrids, DB, DBCtrls, ADODB,
ComCtrls, RpCon, RpConDS, RpDefine, RpRave, DBClient;
type
TForm1 = class(TForm)
Edit1: TEdit;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
ADOConnection1: TADOConnection;
QProd: TADOQuery;
QFor: TADOQuery;
QForordem: TAutoIncField;
QForcodigo: TLargeintField;
QFornome: TStringField;
DBEdit1: TDBEdit;
DsFor: TDataSource;
QProdcodigo: TStringField;
QProdnome: TStringField;
QProdpreco: TBCDField;
QProdestq: TBCDField;
DsProd: TDataSource;
Q1: TADOQuery;
LbP: TLabel;
LbF: TLabel;
Label1: TLabel;
ProgressBar1: TProgressBar;
M1: TEdit;
A1: TEdit;
LabOp: TLabel;
Q1Vnd: TBCDField;
RvProject1: TRvProject;
RvDataSetConnection1: TRvDataSetConnection;
CDSVnd: TClientDataSet;
DSVnd: TDataSource;
CDSVndCodFor: TStringField;
CDSVndFor: TStringField;
CDSVndcod: TStringField;
CDSVndprod: TStringField;
CDSVndEstq: TStringField;
CDSVndPreco: TStringField;
CDSVndv1: TStringField;
CDSVndv2: TStringField;
CDSVndv3: TStringField;
CDSVndv4: TStringField;
CDSVndv5: TStringField;
CDSVndv6: TStringField;
CDSVndv7: TStringField;
CDSVndv8: TStringField;
CDSVndv9: TStringField;
CDSVndv10: TStringField;
CDSVndv11: TStringField;
CDSVndv12: TStringField;
DBGrid2: TDBGrid;
Q2: TADOQuery;
Q3: TADOQuery;
Q4: TADOQuery;
Q5: TADOQuery;
Q6: TADOQuery;
Q7: TADOQuery;
Q8: TADOQuery;
Q9: TADOQuery;
Q10: TADOQuery;
Q11: TADOQuery;
Q12: TADOQuery;
Q2Vnd: TBCDField;
Q3Vnd: TBCDField;
Q4Vnd: TBCDField;
Q5Vnd: TBCDField;
Q6Vnd: TBCDField;
Q7Vnd: TBCDField;
Q8Vnd: TBCDField;
Q9Vnd: TBCDField;
Q10Vnd: TBCDField;
Q11Vnd: TBCDField;
Q12Vnd: TBCDField;
DBGrid3: TDBGrid;
DSData: TDataSource;
BitBtn2: TBitBtn;
CDSData: TClientDataSet;
CDSDatalinha: TIntegerField;
CDSDataVM: TStringField;
CDSDataVA: TStringField;
procedure Edit1Exit(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses DateUtils;
{$R *.dfm}
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Edit1.Text <> '' then
begin
with QFor do
begin
close;
Parameters[0].Value := Edit1.Text;
open;
end;
end;
if Edit1.Text = '' then
begin
QFor.Close;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var i :Integer;
begin
with qprod do
begin
close;
sql.Clear;
sql.Add(' Select p.ordem, p.codigo, p.nome, p.ordem_fornecedor1, p.ordem_fornecedor2, p.ordem_fornecedor3, p.ordem_fornecedor4, p.ordem_fornecedor5, ');
sql.Add(' a.ordem_prod_serv, a.ordem_tabela_preco, a.preco, e.ordem_filial, e.ordem_prod_serv, sum(e.qtde_estoque_atual)estq');
sql.Add('From prod_serv p inner join Prod_serv_precos a on p.ordem = a.ordem_prod_serv');
sql.Add('inner join estoque_atual e on p.ordem = e.ordem_prod_serv ');
sql.Add(' Where e.ordem_filial =:vfil and a.ordem_tabela_preco =:vtab and ');
sql.Add(' (p.ordem_fornecedor1 =:vcod or p.ordem_fornecedor2 =:vcod2 or ');
sql.Add(' p.ordem_fornecedor3 =:vcod3 or p.ordem_fornecedor4 =:vcod4 or ');
sql.Add(' p.ordem_fornecedor5 =:vcod5) and a.preco >:vpreco');
sql.Add(' group by e.ordem_prod_serv , p.nome, p.ordem, p.codigo, p.ordem_fornecedor1,');
sql.Add(' p.ordem_fornecedor2, p.ordem_fornecedor3,');
sql.Add(' p.ordem_fornecedor4, p.ordem_fornecedor5, a.ordem_prod_serv, a.ordem_tabela_preco,');
sql.Add(' a.preco, e.ordem_filial');
sql.Add('order by p.nome');
Parameters.ParamByName('vcod').Value := QForOrdem.Value;
Parameters.ParamByName('vcod2').Value := QForOrdem.Value;
Parameters.ParamByName('vcod3').Value := QForOrdem.Value;
Parameters.ParamByName('vcod4').Value := QForOrdem.Value;
Parameters.ParamByName('vcod5').Value := QForOrdem.Value;
Parameters.ParamByName('vpreco').Value := QProdpreco.Value;
Parameters.ParamByName('vfil').Value := LbF.Caption;
Parameters.ParamByName('vtab').Value := LbP.Caption;
open;
end;
Label1.Caption := IntToStr(qprod.RecordCount);
i := 0;
ProgressBar1.Max := QProd.RecordCount;
while not QProd.Eof do
begin
i := i + 1;
ProgressBar1.Position := i;
CDSData.First;
begin
with q1 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q2 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q3 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDatavm.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q4 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q5 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q6 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q7 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q8 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q9 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q10 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q11 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
CDSData.Next;
with q12 do
begin
close;
sql.Clear;
sql.Add('Select codigo, p.nome, ');
sql.Add(' Sum(S.Quantidade)as Vnd ');
sql.Add('From Movimento M Inner Join Movimento_Prod_Serv S on M.Ordem = S.Ordem_Movimento inner Join Prod_Serv P on P.Ordem = S.Ordem_Prod_Serv');
sql.Add(' Where p.codigo =:VCod and M.ordem_filial =:vfil and m.tipo_operacao =:vop and ');
sql.Add('Month(m.data) =:vmes and year(m.data) =:Vano and m.desefetivado_financeiro =:dEf and m.efetivado_financeiro =:Vef and s.linha_excluida =:vlin ');
sql.Add('Group By p.Nome, p.codigo, m.data');
SQL.Add('Order By p.Nome');
Parameters.ParamByName('VCod').Value := QProdcodigo.Value;
Parameters.ParamByName('vmes').Value := CDSDataVM.Value;
Parameters.ParamByName('vano').Value := CDSDataVA.Value;
Parameters.ParamByName('vlin').Value := false;
Parameters.ParamByName('VEf').Value := true;
Parameters.ParamByName('def').Value := false;
Parameters.ParamByName('vop').Value := LabOp.Caption;
Parameters.ParamByName('vfil').Value := LbF.Caption;
open;
end;
end;
CdsVnd.Append;
CDSVndCodFor.Value := QForcodigo.AsString;
CdsVndFor.Value := QForNome.Value;
CDSVndcod.Value := QProdcodigo.value;
CDSVndprod.Value := QProdnome.Value;
CDSVndEstq.Value := CurrToStr(QProdestq.Value);
CDSVndPreco.Value := CurrToStr(QProdpreco.Value);
CDSVndv1.Value := CurrToStr(Q1Vnd.Value);
CDSVNDV2.Value := CurrToStr(Q2Vnd.Value);
CdsVndV3.Value := CurrToStr(Q3VND.Value);
CDSVNDV4.Value := CurrToStr(Q4Vnd.Value);
cdsvndv5.Value := CurrToStr(Q5Vnd.Value);
cdsvndv6.Value := CurrToStr(q6vnd.Value);
cdsvndv7.Value := CurrToStr(q7vnd.Value);
cdsvndv8.Value := CurrToStr(q8vnd.Value);
cdsvndv9.Value := CurrToStr(q9vnd.Value);
cdsvndv10.Value := CurrToStr(q10vnd.Value);
cdsvndv11.Value := CurrToStr(q11vnd.Value);
cdsvndv12.Value := CurrToStr(q12vnd.Value);
Cdsvnd.Post;
QProd.Next;
end;
RvProject1.Execute;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var a :Integer;
begin
a := a+1;
begin
CdsData.Append;
CdsDatalinha.Value := a;
CdsdataVM.Value := m1.Text;
CDSDataVA.Value := A1.Text;
CdsData.post;
cdsdata.Next;
end;
M1.SetFocus;
end;
end.
|
|
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|