Ir para conteúdo
Fórum Script Brasil
  • 0

ola


pcst

Pergunta

alguém consegue me ajudar, como faço para pular o campo de um cadastro que esta em branco e pegar somente o que já esta com registro...

exemplo do codigo.

procedure TfrmAcordos.btnAtualizadiasClick(Sender: TObject);

var

Dias:Integer;

DtInic,DtAtual:TDate;

begin

DataFim.Date:=Now;

btnAtualizadias.Enabled:=False;

While (not tblTitulos.Eof) do //enquanto não chega no final da tabela.

begin

DtInic:=tblTitulos.FieldByName('DataVencimento').Value;

DtAtual:= DataFim.Date;

// aqui preciso verificar se a DataVencimento esta vazia ou preenchida

// se tiver vazia ele vai para o proximo registro ... caso contrario executa o codigo abaixo.

Dias := DaysBetWeen(DtAtual,DtInic);

tblTitulos.Edit;

tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;

DadaAcordo.caption:=datetostr(date);

txtdataAcordo.Text:=datetostr(date);

End;

btnAtualizadias.Enabled:=True;

end;

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Coloque a seguinte condição:

if Tabela_Desejada.FieldByName('CAMPO').Value = null then
  Faça alguma coisa
else
  Faça outra coisa

Não se esqueça de colocar o comando "Tabela.Next" antes do "end" do "while", ou seu loop vai ficar preso. Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

obrigado cara...mas ainda não deu certo

parece que o loop while não esta funcionando...

se colocar no registro ele coloca...mas não roda na tabela

deu o mesmo erro

procedure TfrmAcordos.btnAtualizadiasClick(Sender: TObject);

var

Dias:Integer;

DtInic,DtAtual:TDate;

i:integer;

begin

DataFim.Date:=Now;

btnAtualizadias.Enabled:=False;

While not tblTitulos.Eof do

begin

if not tblTitulos.FieldByName('DataVencimento').Value = null then

// if not tblTitulos.FieldByName('DataVencimento').IsNull then begin

DtInic:=tblTitulos.FieldByName('DataVencimento').Value;

DtAtual:= DataFim.Date;

Dias := DaysBetWeen(DtInic,DtAtual);

tblTitulos.Edit;

tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;

DadaAcordo.caption:=datetostr(date);

txtdataAcordo.Text:=datetostr(date);

tblTitulos.Next;

end;

btnAtualizadias.Enabled:=True;

end;

Editado por pcst
Link para o comentário
Compartilhar em outros sites

  • 0

o erro é que...

quando verifico o campo e ele esta vazio não faz o calculo de data e da erro..

quero verificar o campo se estiver vazio ele pula para o proximo registro... e ai ele calcula os dias em atrazo e grava no campo dias em atrazo

acho q é isso?

Utilizei este codigo..mas parece que o while não esta funcionando...não esta correndo na tabela... fica parado somente no primeiro registro que encontra

fiz assim.

procedure TfrmAcordos.btnAtualizadiasClick(Sender: TObject);

var

Dias:Integer;

DtInic,DtAtual:TDate;

i:integer;

begin

DataFim.Date:=Now;

btnAtualizadias.Enabled:=False;

While not tblTitulos.Eof do

begin

if not tblTitulos.FieldByName('DataVencimento').IsNull then

begin

DtInic:=tblTitulos.FieldByName('DataVencimento').Value;

DtAtual:= DataFim.Date;

Dias := DaysBetWeen(DtInic,DtAtual);

tblTitulos.Edit;

tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;

DadaAcordo.caption:=datetostr(date);

txtdataAcordo.Text:=datetostr(date);

tblTitulos.Next;

End;

tblTitulos.Next;

end;

btnAtualizadias.Enabled:=True;

end;

Editado por pcst
Link para o comentário
Compartilhar em outros sites

  • 0

Hum...Acho que o problema é que sua condição não está sendo atendida... Confira o processo passo-a-passo com as tecla F8 e F7 e veja o que está de fato acontecendo. Outra coisa... Você está avançando dois registros de uma vez só quando sua condição é atendida. Retire o "tblTitulos.Next" de dentro do "if".

Fiz um exemplo aqui e funcionou, veja:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOTable1.First;
  while not ADOTable1.Eof do begin
    if not ADOTable1.FieldByName('TESTE').IsNull then begin
      ShowMessage('Campo preenchido');
    end;
    ADOTable1.Next;
  end;
end;

Editado por Duduh_Capixaba
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...