Salvar o codigo com ZERO na frente

24/05/2008

1

Bom Dia Galera!!!
Como faço0 para salvar o codigo de um registro com 0 na frente.

Ex: em vez se salvar 1-2-3-4-5-6-7-8-9-10 Salvar então 01-02-03-04-05-06-07-08-09-

Alguém pode me dar uma dica?

Desde já eu agradeço!!!


Responder

Posts

24/05/2008

Beckert

Bom Dia Galera!!! Como faço0 para salvar o codigo de um registro com 0 na frente. Ex: em vez se salvar 1-2-3-4-5-6-7-8-9-10 Salvar então 01-02-03-04-05-06-07-08-09- Alguém pode me dar uma dica? Desde já eu agradeço!!!

=================================
if edit1.text[1] <> ´0´ then Edit1.text := ´0´ + Edit1.text;


Responder

27/05/2008

Brunodsr

Vc pode criar uma função parecida com essa que segue abaixo:

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.text := f_replicate(Edit1.text,5);
end;

function TForm1.f_Replicate(Str: String; tamanho: Integer): String;
begin
result := Trim(Str); //Retirando os espaços em branco
repeat
Result := ´0´+result;
until
Length(result) >= tamanho;
end;

A função vai colocar quantos zeros vc quiser, dependendo do tamanho do seu campo (eu fixei em 5 = 99999)

Espero ter ajudado


Responder

27/05/2008

Lsksskyblu

Cara Deu certo mas na hora de eu salvar ele só armazena no DBEdit mas quando vou localizar esse registro ele amostra o código sem os zeros.
O que pode ser isso?


Responder

27/05/2008

Joaoshi

Colega, se o field for um tipo numero , integer, float, se não for string não vai gravar.


Responder

27/05/2008

Lsksskyblu

Caro Amigo joaõShi esse meu field é dó tipo integer pois salvo o código do registro ,como eu faço para mudar para string se for possivel ,
Desde já lhe agradeço!!!!


Responder

27/05/2008

Joaoshi

Colega, se é só para ficar alinhado você poderia utilizar a propriedade do TField DisplayFormat, acredito que seria a solução com menor esforço.

Espero ter ajudado.


Responder

27/05/2008

Paulo

Concordo com o joaoshi e tem mais. Vai mudar de Integer para String, e se vc tiver algum cálculo com esse campo, vai tudo pro beleléu, e ademais, em banco de dados se tem que ser integer, então tem ser, senão vai ficar dando Cast à toa, o que torna seu banco inconsistente. Se for para aparecer no banco, deixa como está. Essas funções, no aplicativo, funciona do jeito como vc quer. Quanto a aprecer no banco, so vc vai ver e o admin de banco caso haja.


Responder

27/05/2008

Martins

Colega, se é só para ficar alinhado você poderia utilizar a propriedade do TField DisplayFormat, acredito que seria a solução com menor esforço. Espero ter ajudado.


Concordo com vc, eu deixaria o banco com está e faria a formatação apenas para exibição dos dados.


Responder

27/05/2008

Lsksskyblu

Caro martins e como faço essa formatação?


Responder

27/05/2008

Martins

Caro martins e como faço essa formatação?


Usando o DisplayFormat como já mencionado pelo colega [b:d180db2278]Jaoshi[/b:d180db2278]

[b:d180db2278]TField -> DisplayFormat[/b:d180db2278].


Responder

28/05/2008

Brunodsr

Mudar o tipo da coluna para texto nao influencia tanto na velocidade de busca, contanto que exista um indice para o campo. Isso dai vai depender da quantidade de registros que vc tem na tabela.

Se o seu problema for apenas exibição, não perca tempo com isso. Não vale à pena. Qndo o seu banco chegar a mais de mil registros, essa tua mascara vai furar. Ou vc vai querer exibir 00001?? Acho que não!!

Se o seu problema é exibir o campo em relatórios ou de forma organizada em tela, sugiro que vc apenas alinhe os campos numéricos à direita. Assim vc pode evitar bagunças. Ex.:

Codigo
1
2
10
21
99
.....
........

Espero ter ajudado.


Responder

28/05/2008

Paulo

Caro martins e como faço essa formatação?


Se os seus campos estiverem no FieldsEditor, então de um duplo clique no seu componente, selecione o Field e na propriedade no Object Inspector, escolha o Display Format e coloque lá a sua máscara.


Responder

28/05/2008

Martins

[quote:8ea0608f3b]Caro martins e como faço essa formatação?


Se os seus campos estiverem no FieldsEditor, então de um duplo clique no seu componente, selecione o Field e na propriedade no Object Inspector, escolha o Display Format e coloque lá a sua máscara.[/quote:8ea0608f3b]

É isso mesmo [b:8ea0608f3b]Paulo[/b:8ea0608f3b]. Eu acredito q ele deveria fazer assim.

Se o seu problema for apenas exibição, não perca tempo com isso. Não vale à pena. Qndo o seu banco chegar a mais de mil registros, essa tua mascara vai furar. Ou vc vai querer exibir 00001?? Acho que não!!


Pelo visto ele quer q os números 1..9 fiquem 01..09, já do 10 em diante, normal. Pelo menos foi isso q deu para entender pelos exemplos dados por ele.


Responder

28/05/2008

Pestana_

utilize o [b:3814e81f21]Display Format[/b:3814e81f21] como já foi mensionado.

Dependendo da situação utilize o [b:3814e81f21]Format[/b:3814e81f21]

Format(´¬2.2d´, [valor];



flw.


Responder