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

(Resolvido) Problema de CAMPO FLOAT após CANCELAR um APPEND


Gabriel Cabral

Pergunta

Bom dia, amigos...

estou com um problema bem chato aqui... o tópico é longo por causa de uma parte do código, mas espero que possam ler e tentar me ajudar..

vou descrever na ordem em q as coisas acontecem...

Em um cadastro, eu dou um Append na tabela dm.ESTAPRO

procedure TfrmCadPro.btnNovoClick(Sender: TObject);
begin
    dm.ESTAPRO.Append;
    dm.ESTAPRO.Open;
end;
Aí resolvo cancelar a inclusão, dando um Cancel na tabela dm.ESTAPRO
procedure TfrmCadPro.btnCancelarClick(Sender: TObject);
begin
    dm.ESTAPRO.Cancel;
end;
E depois disso, vou buscar um registro para altera-lo, dessa forma...
procedure TfrmCodigo.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
auxcod: string;

begin

  if (Key = VK_RETURN) Then
  begin

    if frmCodigo.Caption = 'WINSUPERM - ALTERAÇÃO' then
    begin

      for i:=1 to txtCodigo.MaxLength - length(txtCodigo.Text) do
      begin
        txtCodigo.Text := '0' + txtCodigo.Text;
      end;

      with dm.QueryBuscaPro do
      begin
        Close;
        SQL.Clear;

        SQL.Add('SELECT * FROM ESTAPRO.dbf');
        SQL.Add('WHERE PROCOD = :pCOD');

        ParambyName('pCOD').AsString := txtCodigo.Text;
        Open;

        if (IsEmpty) then
        begin
          Application.MessageBox('CÓDIGO INEXISTENTE!!!   ','WINSUPERM', MB_ICONERROR);
          txtCodigo.SelectAll;
        end
        else
        begin
          auxcod := dm.QueryBuscaPro.FieldByName('PROCOD').AsString;

        if dm.ESTAPRO.Locate('PROCOD', auxcod, []) then
        begin

          if dm.ESTAPRO.FieldByName('PROCOD').IsNull = False then
          begin
            frmCadPro.txtCadPro_CodPro.Text := dm.ESTAPRO.FieldByName('PROCOD').Value;
          end;

         if dm.ESTAPRO.FieldByName('PRODES').IsNull = False then
          begin
            frmCadPro.txtCadPro_Desc.Text := dm.ESTAPRO.FieldByName('PRODES').Value;
          end;

          if dm.ESTAPRO.FieldByName('PROQTD').IsNull = False then
          begin
            frmCadPro.txtCadPro_Estoque.Text := dm.ESTAPRO.FieldByName('PROQTD').Value;
            frmCadPro.txtCadPro_Estoque.Text := FormatFloat('#,###,##0.000',StrToFloat(frmCadPro.txtCadPro_Estoque.Text));
          end;

         if dm.ESTAPRO.FieldByName('PROICM').IsNull = False then
          begin
            frmCadPro.cboCadPro_Icms.Text := dm.ESTAPRO.FieldByName('PROICM').Value;
            frmCadPro.cboCadPro_Icms.Text := FormatFloat('#,###,##0.00',StrToFloat(frmCadPro.cboCadPro_Icms.Text));
          end;

      end;
   
    end;

   end;

   frmCodigo.Close;

   frmCadPro.txtCadPro_Mode.Caption   := 'MODO ALTERAÇÃO';
   frmCadPro.txtCadPro_CodPro.SetFocus;

   dm.ESTAPRO.Edit;

  end;

 end;

end;

Acontece que se eu busco um registro que não possui nada no campo PROICM, ele acusa um erro dizendo ''' is not a valid floating point value.'

e marca na busca a linha sublinhada:

if dm.ESTAPRO.FieldByName('PROICM').IsNull = False then

begin

frmCadPro.cboCadPro_Icms.Text := dm.ESTAPRO.FieldByName('PROICM').Value;

frmCadPro.cboCadPro_Icms.Text := FormatFloat('#,###,##0.00',StrToFloat(frmCadPro.cboCadPro_Icms.Text));

end;

O que eu posso fazer pra consertar isso???

Muito obrigado

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

3 respostass a esta questão

Posts Recomendados

  • 0
frmCadPro.cboCadPro_Icms.Text := FormatFloat('#,###,##0.00',StrToFloat(frmCadPro.cboCadPro_Icms.Text));

o erro está aí mesmo ... (frmCadPro.cboCadPro_Icms.Text) está com valor '' (nulo) ... tente colocar assim:

frmCadPro.cboCadPro_Icms.Text := FormatFloat('#,###,##0.00',StrToFloatDef(frmCadPro.cboCadPro_Icms.Text,0));

abraços !!!

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...