Processo Interminavel
pessoal...seguinte to com um programa aqui, e to gerando um relatorio de aniversariantes do mes, mas tem um momento que ele ficar processando sem parar...
to usando delphi 7 com firebird 2.0 e ibo
gostaria de contar com a ajuda de voces pra ver se tem algo errado com meu codigo, pq nao estou entendendo mais nada....rs
o codigo é esse:
TDep.Close;
TDep.SQLWhere.Clear;
TDep.SQLOrder.Clear;
TDep.SQLWhere.Text :=´select * from contratos inner join contratos1 on´ +
´contratos1.numerounimed = contratos.numerounimed inner join financeiro on´ +
´financeiro.numerounimed = contratos.numerounimed´ +
´Where Extract (Month from DataNascimento)=:mes and Agenciador=:NAgenciador´;
TDep.SQLOrder.Text := ´Order by Nome´;
TDep.Params[0].AsInteger := Mes;
TDep.Params[1].AsString := Dm.TVendedorCpf.AsString;
TDep.Open;
TDep.First;
If not TDep.IsEmpty then
begin
rdprint1.novapagina;
rdprint1.impf(linha,01,Dm.TVendedorNome.AsString,[negrito]);
inc(linha);
inc(linha);
While not TDep.Eof do
begin
rdprint1.impf(linha,01,´Cliente:´,[negrito]);
rdprint1.impf(linha,09,TDepNome.AsString+´-´+TDepDataNascimento.AsString,[comp12]);
inc(linha);
If (Dm.TContratos.Locate(´Codigo´,TDepControle_Codigo.AsString,[]))
then
If (Dm.TClientes.Locate(´CPFCGC´,Dm.TContratosCpf.AsString,[])) then
begin
rdprint1.impf(linha-1,54,´Telefone:´,[negrito]);
rdprint1.imp (linha-1,63,Dm.TClientesTelefone.AsString);
rdprint1.impf(linha,01,´Endereco:´,[negrito]);
rdprint1.imp (linha,10,Dm.TClientesEndereco.AsString);
inc(linha);
rdprint1.impf(linha,01,´Numero:´,[negrito]);
rdprint1.imp (linha,08,Dm.TClientesNumero.AsString);
rdprint1.impf(linha,20,´Cep:´,[negrito]);
rdprint1.imp (linha,25,Dm.TClientesCep.AsString);
rdprint1.impf(linha,45,´Bairro:´,[negrito]);
rdprint1.imp (linha,52,Dm.TClientesDBairro.AsString);
inc(linha);
rdprint1.impf(linha,01,´Cidade:´,[negrito]);
rdprint1.imp (linha,09,Dm.TClientesDCidade.AsString + ´ ´+´-´+´ ´+Dm.TClientesDUf.AsString);
// end;
rdprint1.impf(linha,43,´Data Inclusao:´,[negrito]);
Dm.TContratos.Locate(´Titular´,TDepNome.AsString,[]);
rdprint1.imp (linha,58,dm.TContratosDataInicio.AsString);
inc(linha);
rdprint1.impf(linha,01,´Relacao de Usuarios´,[negrito]);
inc(linha);
TConsulta.Close;
TConsulta.Params[0].AsInteger := TDepControle_Codigo.AsInteger;
TConsulta.Prepared;
TConsulta.Open;
While Not TConsulta.Eof do
begin
If TConsultaParentesco.AsString <> ´00´ then
begin
rdprint1.impf(linha,01,TConsultaParentesco.AsString,[negrito]);
rdprint1.imp (linha,04,TConsultaNome.AsString);
inc(linha);
end;
If TConsulta.Eof then
begin
inc(linha);
rdprint1.imp (linha,01,´--------------------------------------------------------------------------------´);
end;
TConsulta.Next;
if TConsultaNome.AsString = ´LUCIMAR RODRIGUES CHAVES´ then
ShowMessage(TConsultaNOME.AsString);
Info.Panels[0].Text := TConsultaNome.AsString;
Info.Refresh;
end;
rdprint1.imp (linha,01,´--------------------------------------------------------------------------------´);
TDep.Next;
Total := Total+1;
inc(linha);
if Linha > 61 then
begin
rdprint1.novapagina;
rdprint1.imp(04,10,EOpcao.Text);
linha := 6;
end;
end;
end;
end;
to usando delphi 7 com firebird 2.0 e ibo
gostaria de contar com a ajuda de voces pra ver se tem algo errado com meu codigo, pq nao estou entendendo mais nada....rs
o codigo é esse:
TDep.Close;
TDep.SQLWhere.Clear;
TDep.SQLOrder.Clear;
TDep.SQLWhere.Text :=´select * from contratos inner join contratos1 on´ +
´contratos1.numerounimed = contratos.numerounimed inner join financeiro on´ +
´financeiro.numerounimed = contratos.numerounimed´ +
´Where Extract (Month from DataNascimento)=:mes and Agenciador=:NAgenciador´;
TDep.SQLOrder.Text := ´Order by Nome´;
TDep.Params[0].AsInteger := Mes;
TDep.Params[1].AsString := Dm.TVendedorCpf.AsString;
TDep.Open;
TDep.First;
If not TDep.IsEmpty then
begin
rdprint1.novapagina;
rdprint1.impf(linha,01,Dm.TVendedorNome.AsString,[negrito]);
inc(linha);
inc(linha);
While not TDep.Eof do
begin
rdprint1.impf(linha,01,´Cliente:´,[negrito]);
rdprint1.impf(linha,09,TDepNome.AsString+´-´+TDepDataNascimento.AsString,[comp12]);
inc(linha);
If (Dm.TContratos.Locate(´Codigo´,TDepControle_Codigo.AsString,[]))
then
If (Dm.TClientes.Locate(´CPFCGC´,Dm.TContratosCpf.AsString,[])) then
begin
rdprint1.impf(linha-1,54,´Telefone:´,[negrito]);
rdprint1.imp (linha-1,63,Dm.TClientesTelefone.AsString);
rdprint1.impf(linha,01,´Endereco:´,[negrito]);
rdprint1.imp (linha,10,Dm.TClientesEndereco.AsString);
inc(linha);
rdprint1.impf(linha,01,´Numero:´,[negrito]);
rdprint1.imp (linha,08,Dm.TClientesNumero.AsString);
rdprint1.impf(linha,20,´Cep:´,[negrito]);
rdprint1.imp (linha,25,Dm.TClientesCep.AsString);
rdprint1.impf(linha,45,´Bairro:´,[negrito]);
rdprint1.imp (linha,52,Dm.TClientesDBairro.AsString);
inc(linha);
rdprint1.impf(linha,01,´Cidade:´,[negrito]);
rdprint1.imp (linha,09,Dm.TClientesDCidade.AsString + ´ ´+´-´+´ ´+Dm.TClientesDUf.AsString);
// end;
rdprint1.impf(linha,43,´Data Inclusao:´,[negrito]);
Dm.TContratos.Locate(´Titular´,TDepNome.AsString,[]);
rdprint1.imp (linha,58,dm.TContratosDataInicio.AsString);
inc(linha);
rdprint1.impf(linha,01,´Relacao de Usuarios´,[negrito]);
inc(linha);
TConsulta.Close;
TConsulta.Params[0].AsInteger := TDepControle_Codigo.AsInteger;
TConsulta.Prepared;
TConsulta.Open;
While Not TConsulta.Eof do
begin
If TConsultaParentesco.AsString <> ´00´ then
begin
rdprint1.impf(linha,01,TConsultaParentesco.AsString,[negrito]);
rdprint1.imp (linha,04,TConsultaNome.AsString);
inc(linha);
end;
If TConsulta.Eof then
begin
inc(linha);
rdprint1.imp (linha,01,´--------------------------------------------------------------------------------´);
end;
TConsulta.Next;
if TConsultaNome.AsString = ´LUCIMAR RODRIGUES CHAVES´ then
ShowMessage(TConsultaNOME.AsString);
Info.Panels[0].Text := TConsultaNome.AsString;
Info.Refresh;
end;
rdprint1.imp (linha,01,´--------------------------------------------------------------------------------´);
TDep.Next;
Total := Total+1;
inc(linha);
if Linha > 61 then
begin
rdprint1.novapagina;
rdprint1.imp(04,10,EOpcao.Text);
linha := 6;
end;
end;
end;
end;
L3gion4rio
Curtidas 0
Respostas
Emerson Nascimento
28/08/2007
tente com este código. note que o comando TDep.Next agora está fora do [i:ef999d3db4]If (Dm.TContratos.Locate(´Codigo´, TDepControle_Codigo.AsString, []))...[/i:ef999d3db4].
TDep.Close; TDep.SQLWhere.Clear; TDep.SQLOrder.Clear; TDep.SQLWhere.Text := ´select * from contratos inner join contratos1 on´ + ´contratos1.numerounimed = contratos.numerounimed inner join financeiro on´ + ´financeiro.numerounimed = contratos.numerounimed´ + ´Where Extract (Month from DataNascimento)=:mes and Agenciador=:NAgenciador´; TDep.SQLOrder.Text := ´Order by Nome´; TDep.Params[0].AsInteger := Mes; TDep.Params[1].AsString := Dm.TVendedorCpf.AsString; TDep.Open; TDep.First; If not TDep.IsEmpty then begin rdprint1.novapagina; rdprint1.impf(linha,01,Dm.TVendedorNome.AsString,[negrito]); inc(linha, 2); While not TDep.Eof do begin rdprint1.impf(linha,01,´Cliente:´,[negrito]); rdprint1.impf(linha,09,TDepNome.AsString + ´-´ + TDepDataNascimento.AsString,[comp12]); inc(linha); If (Dm.TContratos.Locate(´Codigo´, TDepControle_Codigo.AsString, [])) and (Dm.TClientes.Locate(´CPFCGC´, Dm.TContratosCpf.AsString, [])) then begin rdprint1.impf(linha-1,54,´Telefone:´,[negrito]); rdprint1.imp (linha-1,63,Dm.TClientesTelefone.AsString); rdprint1.impf(linha,01,´Endereco:´,[negrito]); rdprint1.imp (linha,10,Dm.TClientesEndereco.AsString); inc(linha); rdprint1.impf(linha,01,´Numero:´,[negrito]); rdprint1.imp (linha,08,Dm.TClientesNumero.AsString); rdprint1.impf(linha,20,´Cep:´,[negrito]); rdprint1.imp (linha,25,Dm.TClientesCep.AsString); rdprint1.impf(linha,45,´Bairro:´,[negrito]); rdprint1.imp (linha,52,Dm.TClientesDBairro.AsString); inc(linha); rdprint1.impf(linha,01,´Cidade:´,[negrito]); rdprint1.imp (linha,09,Dm.TClientesDCidade.AsString + ´ ´ + ´-´ + ´ ´ + Dm.TClientesDUf.AsString); rdprint1.impf(linha,43,´Data Inclusao:´,[negrito]); Dm.TContratos.Locate(´Titular´,TDepNome.AsString,[]); rdprint1.imp (linha,58,dm.TContratosDataInicio.AsString); inc(linha); rdprint1.impf(linha,01,´Relacao de Usuarios´,[negrito]); inc(linha); TConsulta.Close; TConsulta.Params[0].AsInteger := TDepControle_Codigo.AsInteger; TConsulta.Open; While Not TConsulta.Eof do begin If TConsultaParentesco.AsString <> ´00´ then begin rdprint1.impf(linha,01,TConsultaParentesco.AsString,[negrito]); rdprint1.imp (linha,04,TConsultaNome.AsString); inc(linha); end; if TConsultaNome.AsString = ´LUCIMAR RODRIGUES CHAVES´ then ShowMessage(TConsultaNOME.AsString); Info.Panels[0].Text := TConsultaNome.AsString; Info.Refresh; TConsulta.Next; If TConsulta.Eof then begin inc(linha); rdprint1.imp (linha,01,StringOfChar(´-´, 80)); end; end; inc(linha); end; Total := Total+1; TDep.Next; if (Linha > 61) and not TDep.Eof then begin rdprint1.novapagina; rdprint1.imp(04,10,EOpcao.Text); linha := 6; end; end; end;
GOSTEI 0
L3gion4rio
28/08/2007
Emerson... deu certinho aqui cara, valeu mesmo amigão...
precisando e eu podendo ajudar tamo ai brother.
valeu.
precisando e eu podendo ajudar tamo ai brother.
valeu.
GOSTEI 0