Ir para conteúdo
Fórum Script Brasil
  • 0

número aleatório


marvi

Pergunta

Olá pessoal,

Estou realizando um formulário para controle de estoque... ele vai inserir um produto, mas terá que ter o código da nota... um código aleatório e que não pode se repetir para poder cadastrar o produto...

Pesquisando encontrei esse código que funciona bem... alguém sabe me informar se ele poderá gerar números repetidos? Pois seria bom se não se repetisse.

<%
' Em primeiro lugar vamos criar uma função chamada GerarChave()
' esta função ira criar e definir um array  alfanumérico de
' 0 a 9
Function GerarChave(valores)
Dim chr_Array(9)
                               chr_array(0)  = "0"

 chr_array(1) = "1"

 chr_array(2) = "2"

 chr_array(3) = "3"

 chr_array(4) = "4"

 chr_array(5) = "5"

 chr_array(6) = "6"

 chr_array(7) = "7"

 chr_array(8) = "8"

 chr_array(9) = "9"


' Agora vamos fazer um Randomize em todo Array

Randomize

' Ok, feito a bagunça no Array vamos preparar
' para gerar a senha
' Enquanto a chave tiver a quantidade de caracteres
' menor que 10 o loop continua gerando ela.

do while len(chave) < 10

num = chr_array(Int(9 * Rnd ))

chave = chave + num
loop

' Chave gerada com sucesso então definimos a
' função GerarChave
GerarChave = chave
End Function
' Finalizando a função
' Mostrando a senha no browser.
' Obs: O número dez significa o tamanho da senha em
' carateres que será criado
response.write  "Senha gerada: " & GerarChave(10) & vbcrlf
%>

Obrigado!

Marcelo

Link para o comentário
Compartilhar em outros sites

23 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Marcelo.

Bom... quando tenho que fazer sistemas que precisam desse tipo de numeração, ex.: bloquetos bancários, uso simplesmente o último número de id (campo autonumerico no bd) + 1... simples assim... e comigo sempre funciona...

Se os bloquetos tiverem números repetidos dão erro, portanto, funciona mesmo...

PORÉM, pra ser 100% eficaz você tem que proibir que deletem dados do bd... porque não há nada (em access) que force o sistema a criar o "próximo" autonúmero... portanto deves proibir o delete...

quanto a sua pergunta, não vi no seu código algo que garanta com 100% de certeza que nenhum número isrá se repetir... de fato, achei a sintaxe dele meio estranha inclusive... mas todo caso... só testando pra ver!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Outra forma mais simples de se fazer isso seria usando om campo do tipo "AutoNumeração" do próprio Access (você escolhe se o numéro irá sofrer incremento - soma 1 ao último número, independentemente de ter ou não sido deletado - ou aleatório - gera um número aleatório e coloca no campo)

Qualquer coisa, posta aí !

Link para o comentário
Compartilhar em outros sites

  • 0

Mas o cadastro será a primeira vez... o campo para preencher então não tem como pegar nada do banco pois não foi inserido no banco ainda, entende? É para inserir ainda... e se não inseriu no banco não tem autonumeração...

Quando a gente pega uma nota fiscal que vem

codigo--- produto---- valor

123--- celular---- 20,00

Esse código é digitado ou ele gera automáticamente?

E para cadastrar produto no controle de estoque preciso gerar um código aleatório ou o usuário que digita? Pois se for ele que digita não precisarei disso...

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

não sei se entendi sua pergunta... mas o número das notas fiscais normalmente vem impresso no talão de notas... não precisa digitar nada...

quanto ao problema de não ter nada no bd ainda eu sempre pego e crio pelo menos um registro de testes manualmente... desse forma a autonumeraçõa pode ocorrer tranquilamente...

Link para o comentário
Compartilhar em outros sites

  • 0

Eu acho melhor gerar o código automáticamente, ao invés de ter que ficar digitando... Fica menos sucetível a erros, além de que se torna muito mais prático e eficiente...

É só você criar um campo na tabela e colocar como "AutoNumeração"... Aí depois é só escolher se vai ser aleatório ou se vai somando de um em um

Dessa forma, quando for inserir um registro, o próprio access se encarregará de gerar o ID

Qualquer coisa, posta aí !

Link para o comentário
Compartilhar em outros sites

  • 0

"Bom... quando tenho que fazer sistemas que precisam desse tipo de numeração, ex.: bloquetos bancários, uso simplesmente o último número de id (campo autonumerico no bd) + 1... simples assim... e comigo sempre funciona..."

Como você faz o processo se ainda não cadastrei no banco e preciso exibir o numero ainda no formulário de cadastro? Estou usando o SQL Server 2000

Link para o comentário
Compartilhar em outros sites

  • 0

Marcelo, nesse seu caso TEM QUE SER manualmente... as notas fiscais vem com uma numeração específica de acordo com cada talão e são numeradas de acordo com uma ordem padrão e uma sequencia lógica a partir da emissão de um aidof, portanto, tem que ser manualmente!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Então Jonathan, como irei gerar a autonumeração se o usuário quer ver o novo número do código ainda no formulário que está sendo preenchido para cadastrar ainda no bancio... o número tem que aparecer antes de entrar no banco, ainda no forumlário sendo preenchido.

Ok Rafael, então terá um campo chamado Nota Fiscal Nº e pronto para isso, certo?

Link para o comentário
Compartilhar em outros sites

  • 0

beleza, vou continuar com o sistema... qualquer coisa posto coisas novas aqui!

há, aproveitando... você tem alguma interface de cadastro de estoque para ver se existe algo padrão mesmo para criar nos formulários? A minha tela ficou no outro tópico que você transferiu para o pessoal de lógica...

Link para o comentário
Compartilhar em outros sites

  • 0

Nesse caso, o mais recomendado seria fazer uma consulta ao banco antes de gerar o formulário, criar uma função para gerar um código (vai utilizar um loop verificando se o código já existe, e continuar esse loop até encontrar um valor que ainda não esteja no banco).Aí, então, você cria um textbox com o valor (pode ser até readonly, você quem sabe).Aí quando o usuário enviar o formulário, você verifica novamente se existe um campo com tal id (outra pessoa pode ter criado outro registro com o mesmo Id antes do formulário ser preenchido) e, caso não exista, cria o novo registro

Qualquer coisa, posta aí !

Link para o comentário
Compartilhar em outros sites

  • 0

Nada padrão... cada caso um caso diferente... o importante é gerar informações suficientes para poder emitir curva "ABC", ponto de ressuprimento, padrão de pedidos de compras com base em infs antigas e assim por diante...

To marcando esse como resolvido então! qualquer. coisa posta ai!

Abração...

Link para o comentário
Compartilhar em outros sites

  • 0

Rafael, tive vendo uma nota aqui e a nota ela tem um numero geral e um numero para cada produto, no caso terei que criar um campo para cada numero do produto... Tipo: código, descrição, unidade, valor, valor total...

Jonathan, então eu irei pegar esse codigo de número aleatório gerar o numero e depois fazer uma consulta no banco para ver se existe, se não existir eu exibo no formulário, pode ser assim? E se caso exista eu faço uma soma com + 1

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

bom... daí o número do produto quem define é você ou a empresa...

Eu gosto de usar um código de barras nesse número do produto, daí se o cliente quiser futuramente usar um leitor de codigo de barras basta gerar as etiquetas e tal...

Para gerar esse codigo de barras, uma das partes, pra que ele nunca fique igual, faço da forma como disse anteriormente...

Mas fica a gosto do fregês...

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...