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

(Resolvido) campo numeric sqlserver 2005


flavioavilela

Pergunta

galera, gostaria apenas de uma explicação...

eu tenho no meu bd, que é em sqlserver 2005, um campo do tipo float... quando eu mando salvar no delphi, por exemplo, um valor 300,00 ele não aceita... ai tive estudando em uns foruns ai, e vi que para salvar isso que quero, teria que usar esse campo numeric.... seria isso mesmo??? e, como faço para poder formatar o campo que eu digitar, por exemplo, o valor 300 e ao receber ou perder o foco, ele formatar para 300,00 com cifrão ou sem cifrão????

desde já, agradeço a atenção de todos...

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

flavioavilela, você pode dentro do banco SQLserver formatar o campo que vai receber o valor ficaria assim:

Valor decimal(10,2) default(0),
e no Delphi quando você abrir a tabela ou query selecione o Campo dentro da tabela ou query e var na propriedade: Corrency coloca como True. ver se isso ajuda. outra forma seria essa direto no Delphi
floatTostrF(CampoString,ffcurrency,10,2);

Link para o comentário
Compartilhar em outros sites

  • 0

certo... a parte do campo numeric entendi...

agora, só uma coisa... eu quero assim, por exemplo, o cara digita um valor em uma caixa texto, por exemplo:

Quantidade Valor Unitário Total

5 3 15

e sair

Quantidade Valor Unitário Total

5,0 3,00 15,00

ou seja, não estou buscando nada no bd.... o foco para na caixa texto, a pessoa digita um número e da enter, já sai configurado com a , e com os zeros.... eu tentei fazer esse esquema ai do FloatoStrF mas parece que não quis funcionar....

o que poderia ser feito???

Link para o comentário
Compartilhar em outros sites

  • 0
agora, só uma coisa... eu quero assim, por exemplo, o cara digita um valor em uma caixa texto, por exemplo:

Quantidade Valor Unitário Total

5 3 15

e sair

Quantidade Valor Unitário Total

5,0 3,00 15,00

flavioavilela, se você está usando DBEdit's para a edição (ou mesmo edição no DBGrid) basta que você formate a propriedade DisplayFormat do field (campo em seu dataset).

Para saber como usar a formatação corretamente (as opções), você pode selecionar esta propriedade na janela Object Inspector e teclar F1.

Para adiantar, quando você quer manter a quantidade de casas fixas você deve por "0" na posição desejada. Ex.:

5 => 0.0 => 5,0

3 => 0.00 => 3,00

1240 => #,##0.00 => 1.240,00 (o uso dos #, possibilita a formatação de milhar, do contrário o resultado seria 1240,00)

Observando que na máscara você usa a pontuação no formato americano (ponto como separador decimal). Se for acrescentar a moeda, basta preceder a máscara com ela: R$ #,##0.00

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

bom dia micheus, obrigado pela sua força em me ajudar, mas não funcionou...

eu estou utilizando um edit normal mesmo saca, da paleta standard e em seu evento OnExit estou fazendo assim:

procedure TFrmVendas_Balcao.EdtValor_VendaExit(Sender: TObject);

var

valor: double;

begin

valor:= StrToFloat(EdtValor_Venda.Text);

FormatFloat('#,##0.00', valor);

end;

e não está funcionando... já esperimentei colocar o FloatFloat('#,##0.00', StrtoFloat(Edtvalor_venda.text); mas não adiantou também...

Link para o comentário
Compartilhar em outros sites

  • 0
bom dia micheus, obrigado pela sua força em me ajudar, mas não funcionou...

eu estou utilizando um edit normal mesmo saca, da paleta standard e em seu evento OnExit estou fazendo assim:

procedure TFrmVendas_Balcao.EdtValor_VendaExit(Sender: TObject);
var
  valor: double;
begin
  valor:= StrToFloat(EdtValor_Venda.Text);
  FormatFloat('#,##0.00', valor);
end;
e não está funcionando... já esperimentei colocar o FloatFloat('#,##0.00', StrtoFloat(Edtvalor_venda.text); mas não adiantou também...
flavioavilela, você está no caminho certo, apenas está esquecendo o principal: atribuir o resultado da função FormatFloat de volta ao edit! Corrigindo...
procedure TFrmVendas_Balcao.EdtValor_VendaExit(Sender: TObject);
var
  valor: double;
begin
  valor:= StrToFloat(EdtValor_Venda.Text);
  EdtValor_Venda.Text := FormatFloat('#,##0.00', valor);
end;
Se você for usar este tipo de formatação em vários edits, então prefira torná-lo "genérico" para poder apenas atribuir este evento ao evento OnExit dos demais edits:
procedure TFrmVendas_Balcao.EdtValor_VendaExit(Sender: TObject);
var
  valor: double;
begin
  valor:= StrToFloat(TEdit(Sender).Text);
  TEdit(Sender).Text := FormatFloat('#,##0.00', valor);
end;
mas já lhe advirto que você deverá tratar erros, como text nulo ou com letras... ... e texto contendo o "." como separador de milhar. Deixo como sugestão:
procedure TFrmVendas_Balcao.EdtValor_VendaExit(Sender: TObject);
var
  Value :Double;
begin
  TEdit(Sender).Text := Trim(TEdit(Sender).Text);  // retira qualquer espaço desnecessário
// caso você aceite valor nulo, tire o comentário da linha a seguir:
//  if TEdit(Sender).Text <> '' then
// ou, caso o valor nulo deva ser entendido como zero, retire o comentário da linha a seguir
//  if TEdit(Sender).Text = '' then
//    TEdit(Sender).Text := '0';
  try
    Value := StrToFloat(StringReplace(TEdit(Sender).Text, '.', '', [rfReplaceAll]));
    TEdit(Sender).Text := FormatFloat('#,##0.00', Value);  // reformatamos o edit
  except
    on E:Exception do
    begin
      E.Message := Format('"%s" não é um valor válido!', [TEdit(Sender).Text]);
      TEdit(Sender).SetFocus;
      raise;
    end;
  end;
end;

Veja estes tópicos relacionados ao assunto deste tópico:

- Formatar Edits

- Formatar Variável Real

- Dividindo no Delphi

- Como faço para testar se um campo string é decimal?

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