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

(Resolvido) While


Eder

Pergunta

Ola...

tou com um probleminha num while

se eu não usar esta linha aqui..o while funciona certinho:

if (Table1STATUS.AsString = 'SIM') then
Mas COMO eu preciso colocar um filtro no while este abaixo:
if (Table1STATUS.AsString = 'SIM') then
dizendo que é só pra processar a Table1Status = 'SIM' mas ai ele não processa e da erro... segue codigo abaixo do while.
Table1.Refresh;
Table1.First;    // vai para o início da tabela
While not Table1.eof do
begin
  if (Table1STATUS.AsString = 'SIM') then
  begin
    CLIENTES:=EditCnpjPag.text;
    Arq_jpg:=EditNomeGuerra.text+'.jpg';
    Aguarde.caption:=EditRazaoSocial.text+' - '+EditCnpjPag.Text;
    //
    TXT := 'Select sigla_ctrc, situacao_ctrc, data_emissao, '+
    'kg_calculo, valor_n_fiscal, frete_peso, frete_valor, '+
    'vlr_icms, despacho, valor_frete, contador '+
    'FROM CTRC Where (SITUACAO_CTRC <> "C") Order by Data_Emissao';
    //COMO PAGADOR
    aguarde.visible:=true;
    aguarde.Update;
    Form3.Query1.Close;
    Cursor := crDefault;
    Form3.Query1.SQL.Text := Txt;
    Cursor := crSQLWait;
    Form3.Query1.Open;
    Application.ProcessMessages;
    //
    TXTMeses := 'SELECT sum(KG_CALCULO) as TOTPESO, '+
    'sum(VALOR_N_FISCAL) as TOTVM, '+
    'sum(FRETE_PESO) as TOTFPESO, '+
    'sum(FRETE_VALOR) as TOTFVALOR, '+
    'sum(DESPACHO) as TOTDESPACHO, '+
    'sum(VLR_ICMS) as TOTICMS, '+
    'sum(VALOR_FRETE) as TOTFRETE, '+
    'sum(CONTADOR) as TOTQTDCTRC '+
    'FROM CTRC '+
    'where extract(month from DATA_EMISSAO)=:pMes '+
    'and extract(year from DATA_EMISSAO)=:pAno '+
    'and (SITUACAO_CTRC <> "C") '+
    'and PAG_cnpj=:pCliente ';
    Form3.QRYMESES.SQL.Text := TxtMeses;
    Application.ProcessMessages;
    //
    FORM3.CLIENTE.Caption:='Cliente: '+EditRazaoSocial.text + ' - Cnpj/Cpf: '+EditCnpjPag.Text+' - CLIENTE PAGADOR';
    Form3.quickrep1.Prepare;
    QrpToImg_Aut(FORM3.QuickRep1,'C:\DADOS\',1);    //Exporta o Quick para JPG
    Application.ProcessMessages;
    Table1.Next;
  end;
  free;
  Timer1.Enabled:=false;//desativa contador
  Showmessage('OK... PROCESSADOS TODOS OS CLIENTES');
end;
end;

Grato

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Opa

O seu Free esta dentro do seu While o que significa que quando voce der o While ele já vai limpar

determinada coisa da memoria, e assim dar erro

tente assim

Table1.Refresh;
Table1.First;    // vai para o início da tabela
While not Table1.eof do
begin
  if (UpperCase(Table1STATUS.AsString) = 'SIM') then
  begin
    CLIENTES:=EditCnpjPag.text;
    Arq_jpg:=EditNomeGuerra.text+'.jpg';
    Aguarde.caption:=EditRazaoSocial.text+' - '+EditCnpjPag.Text;
    //
    TXT := 'Select sigla_ctrc, situacao_ctrc, data_emissao, '+
    'kg_calculo, valor_n_fiscal, frete_peso, frete_valor, '+
    'vlr_icms, despacho, valor_frete, contador '+
    'FROM CTRC Where (SITUACAO_CTRC <> "C") Order by Data_Emissao';
    //COMO PAGADOR
    aguarde.visible:=true;
    aguarde.Update;
    Form3.Query1.Close;
    Cursor := crDefault;
    Form3.Query1.SQL.Text := Txt;
    Cursor := crSQLWait;
    Form3.Query1.Open;
    Application.ProcessMessages;
    //
    TXTMeses := 'SELECT sum(KG_CALCULO) as TOTPESO, '+
    'sum(VALOR_N_FISCAL) as TOTVM, '+
    'sum(FRETE_PESO) as TOTFPESO, '+
    'sum(FRETE_VALOR) as TOTFVALOR, '+
    'sum(DESPACHO) as TOTDESPACHO, '+
    'sum(VLR_ICMS) as TOTICMS, '+
    'sum(VALOR_FRETE) as TOTFRETE, '+
    'sum(CONTADOR) as TOTQTDCTRC '+
    'FROM CTRC '+
    'where extract(month from DATA_EMISSAO)=:pMes '+
    'and extract(year from DATA_EMISSAO)=:pAno '+
    'and (SITUACAO_CTRC <> "C") '+
    'and PAG_cnpj=:pCliente ';
    Form3.QRYMESES.SQL.Text := TxtMeses;
    Application.ProcessMessages;
    //
    FORM3.CLIENTE.Caption:='Cliente: '+EditRazaoSocial.text + ' - Cnpj/Cpf: '+EditCnpjPag.Text+' - CLIENTE PAGADOR';
    Form3.quickrep1.Prepare;
    QrpToImg_Aut(FORM3.QuickRep1,'C:\DADOS\',1);    //Exporta o Quick para JPG
    Application.ProcessMessages;
  end; //END IF TABLE
  Table1.Next;
end; //END WHILE
free; //FREE FORA DO WHILE... MAS PRA Q ESSE FREE? oO
Timer1.Enabled:=false;//desativa contador
Showmessage('OK... PROCESSADOS TODOS OS CLIENTES');
end;

abracos

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...