Como gravar campo numério sempre em 4 casas decimais....
20/08/2004
0
ex: usuario digita 1...delphi grava no banco 0001
usuario digita 10...delphi grava no banco 0010
usuario digita 100...delphi grava no banco 0100
usuario digita 1000...delphi grava no banco 1000
OBS: Utilizo o FireBird 1.0 como Bd!!!
Hviana
Posts
20/08/2004
Lucas Silva
query.FieldByName(´Campo´).AsString := FormatFloat(´0.0000´, StrToFloat(edit.text);
20/08/2004
Vinicius2k
Creio que vc esteja enganado...
Isso não são casas decimais... são ´zeros à esquerda´... e se este campo no banco for do tipo Inteiro, vc nunca vai conseguir gravar desta forma...
Se for apenas para efeitos de exibição e edição, em componentes data-aware, como códigos por exemplo, utilize as propriedades DisplayFormat e EditFormat do TField...
No exemplo que vc citou a máscara seria #0000...
Se vc realmente quiser gravar assim no banco, vai precisar mudar o tipo de dado para Varchar, e formatar antes de gravar com algo parecido com isto :
Format(´¬4.4d´,[StrToInt(SUA_VAR_STRING)])
ou
Format(´¬4.4d´,[(SUA_VAR_INTEGER)])
Caso vc não queira mudar o tipo de dado no banco, mas precise desta formatação para outra coisa qualquer, como gerar um arquivo texto, ou imprimir, por exemplo, use :
Format(´¬4.4d´,[(SEU_CAMPO_INTEGER)])
T+
20/08/2004
Rockbilly
function campoF(valor: integer): string; var n: integer; x: string; begin n:= Length(IntToStr(valor)); case n of 1: x:= ´000´+IntToStr(valor); 2: x:= ´00´+IntToStr(valor); 3: x:= ´0´+IntToStr(valor); else x:= IntToStr(valor); end; campoF := x; end; procedure TForm1.Button1Click(Sender: TObject); var str: string; begin str:= campoF(StrToInt(Edit1.Text)); ShowMessage(str); end;
Clique aqui para fazer login e interagir na Comunidade :)