GARANTIR DESCONTO

Fórum Processo Interminavel #345244

28/08/2007

0

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;


L3gion4rio

L3gion4rio

Responder

Posts

28/08/2007

Emerson Nascimento

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;



Responder

Gostei + 0

29/08/2007

L3gion4rio

Emerson... deu certinho aqui cara, valeu mesmo amigão...

precisando e eu podendo ajudar tamo ai brother.


valeu.


Responder

Gostei + 0

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

Aceitar