Salvar o codigo com ZERO na frente
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!!!
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!!!
Lsksskyblu
Curtidas 0
Respostas
Beckert
24/05/2008
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;
GOSTEI 0
Brunodsr
24/05/2008
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
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
GOSTEI 0
Lsksskyblu
24/05/2008
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?
O que pode ser isso?
GOSTEI 0
Joaoshi
24/05/2008
Colega, se o field for um tipo numero , integer, float, se não for string não vai gravar.
GOSTEI 0
Lsksskyblu
24/05/2008
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!!!!
Desde já lhe agradeço!!!!
GOSTEI 0
Joaoshi
24/05/2008
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.
Espero ter ajudado.
GOSTEI 0
Paulo
24/05/2008
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.
GOSTEI 0
Martins
24/05/2008
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.
GOSTEI 0
Lsksskyblu
24/05/2008
Caro martins e como faço essa formatação?
GOSTEI 0
Martins
24/05/2008
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].
GOSTEI 0
Brunodsr
24/05/2008
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.
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.
GOSTEI 0
Paulo
24/05/2008
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.
GOSTEI 0
Martins
24/05/2008
[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.
GOSTEI 0
Pestana_
24/05/2008
utilize o [b:3814e81f21]Display Format[/b:3814e81f21] como já foi mensionado.
Dependendo da situação utilize o [b:3814e81f21]Format[/b:3814e81f21]
flw.
Dependendo da situação utilize o [b:3814e81f21]Format[/b:3814e81f21]
Format(´¬2.2d´, [valor];
flw.
GOSTEI 0