elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Formato Id
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Formato Id  (Leído 2,495 veces)
andaluz


Desconectado Desconectado

Mensajes: 333



Ver Perfil
Formato Id
« en: 2 Julio 2019, 11:12 am »

Hola a todos,

Me gustaría realizar en el código del usuario el siguiente formato:

año0001

y la duda es como realizo para que el año se me actualice manteniendo la autonumeración que le sigue.

Ejemplo este año: 2019001

Ejemplo año que viene: 2020002

Saludos y gracias de antemano


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: Formato Id
« Respuesta #1 en: 2 Julio 2019, 19:20 pm »

Debes mantener ambas numeraciones de forma indpendiente y cuando proceda actualizarlo entregando uniendo ambos valores.

Un ejemplo:

Código
  1. private s_Año as long
  2. private s_Numero as long
  3.  
  4.  
  5. public Sub Establecer(byval Año as long, byval Numero as long)
  6.    s_Año = x
  7.    s_Numero = x
  8. end Sub
  9.  
  10.  
  11. public function IncrementarAño as string
  12.    s_Año = (s_Año + 1)
  13.    IncrementarAño = (cstr(s_Año) & cstr(s_Numero))
  14. end sub
  15.  
  16. public function IncrementarNumero as string
  17.    s_Numero = (s_Numero +1)
  18.    IncrementarNumero = (cstr(s_Año) & cstr(s_Numero))
  19. end function
  20.  
  21.  

La primera vez usas la función 'Establecer' para pasar los datos iniciales... en lo sucesivo cualquiera de las dos funciones 'Incrementar' (según se precise).

Adicionalmente si precisas que tengan un formato específico, debes utilizar una función que le dé el formato...
Por ejemplo. al caso tu quieres que el número por su parte tenga 3 dígitos...
Código
  1.  
  2. ' Añade ceros a la derecha, de un número.
  3. Private Function FixSizeNum(ByVal Txt As String, ByVal Largo As Byte) As String
  4.    If (Len(Txt) < largo) Then
  5.        FixSizeNum = (String$(Largo - Len(Txt), "0") & Txt)
  6.    Else
  7.        FixSizeNum = Left$(Txt, Largo)
  8.    End If
  9. End Function
  10.  

Ahora por tanto, hay que actualizar las funciones 'Incrementar'...
Código
  1. public function IncrementarAño as string
  2.    s_Año = (s_Año + 1)
  3.    IncrementarAño = (cstr(s_Año) & FixSizeNum(cstr(s_Numero),3))
  4. end sub
  5.  
  6. public function IncrementarNumero as string
  7.    s_Numero = (s_Numero +1)
  8.    IncrementarNumero = (cstr(s_Año) & FixSizeNum(cstr(s_Numero),3))
  9. end function
  10.  
Con un largo de solo 3, llegarás desde 000 hasta 999, luego 2019000 hasta 2019999.
Puesto que el año, lo pasas con 4 dígitos y el primero de ellos no es 0, no precisa tal formato pués seguirán siendo 4 digitos (2019, 2020 tienen 4 dígitos).


En línea

andaluz


Desconectado Desconectado

Mensajes: 333



Ver Perfil
Re: Formato Id
« Respuesta #2 en: 3 Julio 2019, 12:47 pm »

Muchas gracias NEBIRE
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines