Eder Postado Dezembro 11, 2007 Denunciar Share Postado Dezembro 11, 2007 Ola...tou com um probleminha num whilese 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Dezembro 11, 2007 Denunciar Share Postado Dezembro 11, 2007 Coloka o Table1.next; depois do end; =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Dezembro 11, 2007 Denunciar Share Postado Dezembro 11, 2007 OpaO seu Free esta dentro do seu While o que significa que quando voce der o While ele já vai limpardeterminada coisa da memoria, e assim dar errotente assimTable1.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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Dezembro 11, 2007 Autor Denunciar Share Postado Dezembro 11, 2007 Opa....valeu..pessoal deu certomuito Grato........t+ :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Eder
Ola...
tou com um probleminha num while
se eu não usar esta linha aqui..o while funciona certinho:
Mas COMO eu preciso colocar um filtro no while este abaixo: dizendo que é só pra processar a Table1Status = 'SIM' mas ai ele não processa e da erro... segue codigo abaixo do while.Grato
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.