Fórum Logica errada ou erro de Código ? #457380

03/10/2013

0

Tenho esse código? e quando chega no "If" que não era para ele executar e ele executa
 
 if Copy(DataModuleGeral.tbProcessosConsulta.FieldByName('NUMERO_PROCESSO'+Copy(vCampoUltAlteracao,17,1)).AsString,1,8) = 'S/NUMERO' then
    begin
      n := StrToInt(Copy(vCampoUltAlteracao,17,1))-1;
      while n >= 1 do
      begin
==>    if (n = 1) and (DataModuleGeral.tbProcessosConsultaULTIMA_ALTERACAO.AsDateTime < DataModuleGeral.tbAndamentosProcessuaisDATA.AsDateTime) then;
          DataModuleGeral.tbProcessosConsultaULTIMA_ALTERACAO.AsDateTime := DataModuleGeral.tbAndamentosProcessuaisDATA.AsDateTime;

        if (n > 1) and (Copy(DataModuleGeral.tbProcessosConsulta.FieldByName('NUMERO_PROCESSO'+IntToStr(n)).AsString,1,8) <> 'S/NUMERO') then
        begin
          if DataModuleGeral.tbProcessosConsulta.FieldByName('ULTIMA_ALTERACAO'+IntToStr(n)).AsDateTime < DataModuleGeral.tbAndamentosProcessuaisDATA.AsDateTime then
            DataModuleGeral.tbProcessosConsulta.FieldByName('ULTIMA_ALTERACAO'+IntToStr(n)).AsDateTime := DataModuleGeral.tbAndamentosProcessuaisDATA.AsDateTime;
          Exit;
        end;
        n := n - 1;
      end;
    end;
  end;
  DataModuleGeral.tbProcessosConsulta.Post;


no If da Ceta se por exemplo eu o n for 4 ele passa e executa tudo que for ele executa. onde esta o erro que não vejo ?

Ajudem por favor :(
Eduardo Mendonça

Eduardo Mendonça

Responder

Posts

04/10/2013

Marcos Oliveira

Olhando seu código, parece que está tudo correto. Você já depurou seu projeto e confirmou que o valor da variável "n" está vindo realmente 1?

Att,

Marcos
Responder

Gostei + 0

04/10/2013

Deivison Melo

Conforme orientação, o código foi debbugado?

Caso ainda restarem dúvida, por favor, sinalizar para sanarmos todas!

Abração e bons códigos!
Responder

Gostei + 0

04/10/2013

Marcos Saffran

Olá Maginal,
uma dúvida:
if Copy(DataModuleGeral.tbProcessosConsulta.FieldByName('NUMERO_PROCESSO'+Copy(vCampoUltAlteracao,17,1)).AsString,1,8) = 'S/NUMERO' then


quantos campos 'NUMERO_PROCESSO' tem a sua tabela? São 10?

Eu pergunto pois o 'Copy(vCampoUltAlteracao,17,1)', se for numérico pode ser de 0 a 9, se for string, pode ser de 0 a 9, ou de a a z.

Só para entender melhor o código.
Responder

Gostei + 0

04/10/2013

Marcos Saffran

Outra coisa, em:

==>    if (n = 1) and (DataModuleGeral.tbProcessosConsultaULTIMA_ALTERACAO.AsDateTime < DataModuleGeral.tbAndamentosProcessuaisDATA.AsDateTime) then;


está assim mesmo no seu código? Com o ";" ponto-e-vírgula no final do comando?

se for, retire-o.
Responder

Gostei + 0

04/10/2013

Eduardo Mendonça

ok vou retirar
Responder

Gostei + 0

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

Aceitar