Para o Haroldo Zanela - Parece dificil, mas não é fácil não

Delphi

21/03/2003

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;


Paulo

Paulo

Curtidas 0

Respostas

Dor_poa

Dor_poa

21/03/2003

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...


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

21/03/2003

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; 



GOSTEI 0
POSTAR