Fórum Para o Haroldo Zanela - Parece dificil, mas não é fácil não #148230
21/03/2003
0
Criei uma tabela de resrvado, tentei mudar as funções abaixo para gerar um numero incremental e sequencial, mas não consegui. Passei a madrugada tentando, mas sempre dava erro. Como fazer? pq como está sempre terá um nº com final 00001.
function TForm1.StrZero(Numero, Tamanho: Integer): string;
var Valor: String;
nLen: Integer;
begin
Result := ´´;
Valor := IntToStr(Numero);
nLen := Length(Valor);
if nLen < Tamanho Then
Result := StringOfChar(´0´, Tamanho - nLen) + Valor;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a, b: Integer;
begin
A := 1;B := 1;
ShowMessage(EAN13Interno(a,b));
end;
function TForm1.EAN13Interno(Seq1, Seq2: Integer): String;
begin
Result := ´441´+StrZero(Seq1,5)+StrZero(Seq2,5);
end;
function TForm1.StrZero(Numero, Tamanho: Integer): string;
var Valor: String;
nLen: Integer;
begin
Result := ´´;
Valor := IntToStr(Numero);
nLen := Length(Valor);
if nLen < Tamanho Then
Result := StringOfChar(´0´, Tamanho - nLen) + Valor;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a, b: Integer;
begin
A := 1;B := 1;
ShowMessage(EAN13Interno(a,b));
end;
function TForm1.EAN13Interno(Seq1, Seq2: Integer): String;
begin
Result := ´441´+StrZero(Seq1,5)+StrZero(Seq2,5);
end;
Paulo
Curtir tópico
+ 0
Responder
Posts
21/03/2003
Dor_poa
Olha meu amigo.. eu vou tentar te ajudar, não sei se é isso que vc. quer.. Ok..
Bom.. Se vc. quer simplesmente incrementar um numero e mascaralo ele com zeros, vc. deve fazer assim:
VarUltNumero:= 5; //variavel que pega o ultimo numero (var tipo double) pode ser diretamente do banco...
variavelString:= FormatFloat(´00000´, VarUltNumero +1); //(var tipo String)
Obs.: Se vc. esta adicionando este valor em um banco.. o campo que irá receber o valor maskarado tem que ser STRING. pois se for inteiro ele irá retirar os 000..
Amigo.. Acho que era isto que vc. queria.. Se não foi, Desculpe...
Bom.. Se vc. quer simplesmente incrementar um numero e mascaralo ele com zeros, vc. deve fazer assim:
VarUltNumero:= 5; //variavel que pega o ultimo numero (var tipo double) pode ser diretamente do banco...
variavelString:= FormatFloat(´00000´, VarUltNumero +1); //(var tipo String)
Obs.: Se vc. esta adicionando este valor em um banco.. o campo que irá receber o valor maskarado tem que ser STRING. pois se for inteiro ele irá retirar os 000..
Amigo.. Acho que era isto que vc. queria.. Se não foi, Desculpe...
Responder
Gostei + 0
21/03/2003
Aroldo Zanela
Criei uma tabela de resrvado, tentei mudar as funções abaixo para gerar um numero incremental e sequencial, mas não consegui. Passei a madrugada tentando, mas sempre dava erro. Como fazer? pq como está sempre terá um nº com final 00001.
function TForm1.StrZero(Numero, Tamanho: Integer): string;
var Valor: String;
nLen: Integer;
begin
Result := ´´;
Valor := IntToStr(Numero);
nLen := Length(Valor);
if nLen < Tamanho Then
Result := StringOfChar(´0´, Tamanho - nLen) + Valor;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a, b: Integer;
begin
A := 1;B := 1;
ShowMessage(EAN13Interno(a,b));
end;
function TForm1.EAN13Interno(Seq1, Seq2: Integer): String;
begin
Result := ´441´+StrZero(Seq1,5)+StrZero(Seq2,5);
end;
Caro Paulo,
procedure TForm1.Button1Click(Sender: TObject);
var a, b: Integer;
begin
{
A := 1;B := 1; // Aqui realmente tá travado e utilizei apenas para exemplo.
}
// Nesse modelo, ele atualiza o contador numa tabela qq e passa os parâmetros atualizados.
tbReservado.Edit;
tbReservado.FieldByName(´SEQ1´).AsInteger := tbReservado.FieldByName(´SEQ1´).AsInteger + 1;
tbReservado.FieldByName(´SEQ2´).AsInteger := tbReservado.FieldByName(´SEQ2´).AsInteger + 1;
tbReservado.Post;
ShowMessage(EAN13Interno(FieldByName(´SEQ1´).AsInteger,FieldByName(´SEQ2´).AsInteger));
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)