GARANTIR DESCONTO

Fórum gerar numero com 13 digitos #283852

05/06/2005

0

Amigos preciso gerar um numero com 13 digitos da seguinte forma:
os 3 Primeiros deve ser constante tipo 890
o campo de minha tabela codigo tem um tamanho de 10 digitos e devo utilizar ele, porem ele é complentado com zero ficando assim 0000007852
preciso desenvolver um função que gere um numero sem repetir no banco utilizando a constante mais o codigo do produto é para a etiqueta de codigo de barras, so não quero que apareça os zeros.
os zeros devem ser substituidos por numero.
se alguem puder ajudar agradeço
Claudio Pinho


Dpinho

Dpinho

Responder

Posts

05/06/2005

Marco Salles

Não serve :?: :?: :?:

function RetornarNumeroTrezeDigitos:real;
var
 Texto:String;
 i:Integer;
begin
 Texto:=´890´;
 i:=1;
 randomize;
 while i<= 6 do
   begin
     texto:=texto+inttostr(Random(9));
     i:=i+1;
   end;
  Texto:=Texto+´7852´;
  result:=strtoFloat(Texto);
end;


e para chamar :

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(Floattostr(RetornarNumeroTrezeDigitos));
end;



Responder

Gostei + 0

06/06/2005

Dpinho

function TForm_Produtos.RetornarNumeroTrezeDigitos:real;
var
Texto:String;
i:Integer;
c:Integer;
begin
Texto:=´789´;
i:=1;
randomize;
while i<= (10- length(db_codigo.text)) do
begin
texto:=texto+inttostr(Random(9));
i:=i+1;
end;
Texto:=Texto+ db_codigo.Text;
result:=strtoFloat(Texto);
end;

Fiz algumas alterações para que o numero retorne sempre 13 digitos, ficou muito bom, mas esta dando erro no digito verificador.
e como posso imprimir a etiqueta..
algem pode ajudar por favor


Responder

Gostei + 0

06/06/2005

Marco Salles

Fiz algumas alterações para que o numero retorne sempre 13 digitos


Quando eu lhe passei esta rotina , pensei que o final fosse sempre contante igua a ´7852´.. E vejo agora que não é.. Mas deu para voce ter uma idéia , isto ja é um bom começo

ficou muito bom, mas esta dando erro no digito verificador.

Que digito verificadoe é este amigo

e como posso imprimir a etiqueta.. algem pode ajudar por favor


Voce conhece este Site ???

http://www.veloso.kit.net/download.html


Responder

Gostei + 0

06/06/2005

Dpinho

tem um função de verificar se o codigo de barras esta correto ele faz os calculos e retornar que o numero não é valido

veja a função:
function TForm1.DV(Codigo: String) : Integer;
var
i, SomaPar : Integer;
begin
// inicializa as variáveis de apoio
SomaPar := 0;
Result := 0;

for i := 1 to 6 do
begin
Result := Result + StrToInt(Codigo[2*i-1]); // soma dos digitos das posições ímpares a partir do 3º
SomaPar := SomaPar + StrToInt(Codigo[2*i]); // soma dos digitos das posições pares
end;

// faço a soma ponderada (cada dígito da posição par é multiplicado por 3)
Result := Result + 3 * SomaPar;

// o DV é o menor inteiro que somado ao resultado, dê um múltiplo de 10
// exemplo : se resultado = 76, então o DV=4, pois resultado + DV = 80
Result := Ceil(Result/10)*10 - Result;
end;


Quanto ao site conheço, mas quando tento pegar os componentes diz que a pagina não pode ser exibida


Responder

Gostei + 0

06/06/2005

Gandalf.nho

Eu sugiro tb o FBarcode [url]http://mitglied.lycos.de/AJSchmidt/[/url]


Responder

Gostei + 0

06/06/2005

Marco Salles

eu nun entendo :cry: :cry: :cry:

se o numero gerado aleatoriamente tem que passar pelo crivo de uma função , que determina se o numero gerado é válido ou não...Então voce deveria ter dito isto no enunciado

so não quero que apareça os zeros. os zeros devem ser substituidos por numero.


deveria ser assim:::

so não quero que apareça os zeros. 
os zeros devem ser substituidos por numero e cuja combinação desse numeros atendam a rotina verificadora de codigos de barra abaixo 


É isto que voe quer amigo :?: :?: :?: ...

Qual são os digitos que podem ser considerados constantes no seu codigo de barra :?: :?:

Alem do ´789´ Tem mais algum que é determinado fixo :?:
Tem alguns digitos que são determinados pelo usuário :?: :?:
quais seriam a quantidade desse digitos :?: :?: :?:
etc...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar