Está en la página 1de 4

ALFANUMRICO AUTONUMRICO

1
Hay que reconocer que el ttulo del ejemplo me ha quedado
chulo a tope, aunque, lamentablemente, no dice todo lo
que quiero que diga. As que... para entender para qu
sirve realmente este ejemplo tendris que leer los
siguientes prraos de esta introducci!n "#
$l ejemplo se divide en dos partes%
Primera parte% aprenderemos c!mo conseguir un autonumrico a partir de un dato tipo
te&to. 'ara entendernos, si tenemos un valor de tipo A(((), al a*adir un nuevo registro
nuestro valor pasar a ser A(((+. ,reo que esto se entiende perectamente, -verdad.
Segunda parte% aprenderemos a conseguir no s!lo lo que indica en la primera parte, sino que
a*adiremos c!mo conseguir un cambio de serie. 'or ejemplo, nuestro valor ha de tener
siempre / dgitos. -0u pasa cuando llegamos al 1111. $s decir, si tenemos A1111, -qu
pasar al a*adir un nuevo registro. 'ues lo que haremos ser cambiar la serie, de manera que
el nuevo registro ser 2(((). -3cil, verdad. "#
,reo que ahora s se entiende un poco ms lo que quera decir con el ttulo de este ejemplo...
je, je...
PREPARANDO NUESTRA TABLA TDATOS
4amos a preparar una tabla muy simple, que guardaremos como 56atos. 7e daremos la
siguiente estructura%
,omo veis, a nuestro campo alanumrico lo hemos llamado 8Autonum9, y le hemos
establecido un tama*o de /. 7!gicamente podemos establecerle el tama*o que queramos. Al
e&plicar el c!digo har un inciso para e&plicaros qu deberamos hacer si hemos ijado un
tama*o tanto menor como mayor.
PREPARANDO NUESTRO FORMULARIO FDATOS
:obre la tabla 56atos vamos a crearnos un ormulario, que guardaremos como 36atos.
'odemos eliminar el campo 8;d9 autonumrico.
4amos a sacar las propiedades del campo 8Autonum9 y nos vamos a la 'esta*a 6atos
2loqueado, y situamos su propiedad en :<. As el usuario no podr cambiarnos el
alanumrico autonumrico que corresponda.
$sta parte no tiene ning=n secreto, as que...
) 7a 26 de ejemplo os la podis bajar aqu
)
4istame en http%>>nec??ito.siliconproject.com.ar
PREPARANDO NUESTRO FORMULARIO
FDATOS2
'ara la segunda parte del ejemplo vamos a necesitar otro
ormulario. As que lo =nico que haremos ser copiar
nuestro ormulario 36atos y pegarlo con el nombre de
36atos+.
@ con esto ya tenemos la estructura de objetos ya
preparada para nuestro ejemplo.
AUTONUMRICO ALFANUMRICO: PRIMERA PARTE
PROGRAMANDO NUESTRO CDIGO
4amos a situar 36atos en vista dise*o. :acamos las propiedades del ormulario y nos vamos a
'esta*a $ventos Al activar registro, y le generamos el siguiente c!digo%
A
'rivate :ub 3ormB,urrentC#
D6eclaramos las variables
D,on la constante mi:erie indicaramos qu letras hay que a*adir antes del
Dn=mero. @o he situado la serie en EA&&&&E, pero si quisiramos E''&&&E simplemente
Describiramos F,onst mi:erie As :tring G E''EH
,onst mi:erie As :tring G EAE
6im miAI As :tring, ultimoAI As :tring
6im ultimoAIIum As 7ong
D,omprobamos si hay valor en 8Autonum9. :i lo hay es que estamos recorriendo
Dlos registros, por lo que no necesitamos calcular nada. $n este caso salimos
; Iot ;sIullCJe.Autonum.4alue# 5hen $&it :ub
D,omprobamos cul es el =ltimo 8Autonum9 introducido a travs de 67astC#
ultimoAI G IKC67astCEAutonumE, E56atosE#, EE#
D:i no hay registros obtendramos una cadena vaca CEE#. $n este caso tendramos
Dque empeKar por el primero
; ultimoAI G EE 5hen
D$scribimos directamente el primer valor. 7o escribiremos en unci!n del
Dtama*o de campo que hayamos establecido
Je.Autonum.4alue G mi:erie L E((()E
$&it :ub
$nd ;
D:i ha devuelto un valor vamos a coger su parte numrica. ,omo hemos deinido el tama*o
Ddel campo en / debemos coger los =ltimos M caracteres. :i hubiramos deinido el tama*o
Ddel campo en N, por ejemplo, deberamos coger los =ltimos O, as%
DFultimoAIIum G ,7ngCPightCultimoAI, O##H
D,onvertimos al mismo tiempo ese valor en un entero largo
ultimoAIIum G ,7ngCPightCultimoAI, M##
D7e a*adimos una unidad
ultimoAIIum G ultimoAIIum Q )
D:i el valor superara 1111 avisamos y reiniciamos el contador. 7!gicamente, si hubiramos
Dijado un tama*o de campo de O, por ejemplo, el valor a comprobar sera 111111
; ultimoAIIum H 1111 5hen
Jsg2o& E:e ha llegado al lmite del contador. $ste se reiniciarE, vb;normation, EA4;:RE
ultimoAIIum G )
$nd ;
DPeconstruimos el alanumrico teniendo en cuenta que debemos a*adir los ceros anteriores
Dal n=mero. $so lo hacemos con la adici!n de cuatro ceros Cla parte numrica# y la
Dunci!n rightC#
miAI G mi:erie L PightCE((((E L ultimoAIIum, M#
D:i hubiramos ijado el tama*o del campo en O, por ejemplo, debemos%
DSSS0uitar una unidad para respetar la serie, por lo que nos quedan T
DSSS$n lugar de escribir M ceros escribiramos T ceros, y cogeramos los T
D =ltimos caracteres de la derecha, as%
DFmi:erie L PightCE((((((E L ultimoAIIum, T#
+
4istame en http%>>nec??ito.siliconproject.com.ar
D$scribimos el valor en el campo del ormulario
Je.Autonum.4alue G miAI
$nd :ub
A
$l c!digo est ampliamente comentado, e incluso ah os he
a*adido lo que hay que hacer si hubiramos deinido otro
tama*o para nuestro campo.
@ con esto y un biKcocho... Uprimera parte listaV
AUTONUMRICO ALFANUMRICO: SEGUNDA PARTE
PROGRAMANDO NUESTRO CDIGO
4amos a situar 36atos+ en vista dise*o. :acamos las propiedades del ormulario y nos vamos
a 'esta*a $ventos Al activar registro, y le generamos el siguiente c!digo%
A
'rivate :ub 3ormB,urrentC#
DA tener en cuenta%
D7a letra A tiene el c!digo de carcter T/
D7a letra W tiene el c!digo de carcter 1(
D6eclaramos las variables
D,on la constante mi:erie indicaramos qu letras hay que a*adir antes del n=mero
6im mi:erie As :tring
6im miAI As :tring, ultimoAI As :tring
6im asc:erie As ;nteger
6im ultimoAIIum As 7ong
D,omprobamos si hay valor en 8Autonum9. :i lo hay es que estamos recorriendo
Dlos registros, por lo que no necesitamos calcular nada. $n este caso salimos
; Iot ;sIullCJe.Autonum.4alue# 5hen $&it :ub
D,omprobamos cul es el =ltimo 8Autonum9 introducido a travs de 67astC#
ultimoAI G IKC67astCEAutonumE, E56atosE#, EE#
D:i no hay registros obtendramos una cadena vaca CEE#. $n este caso tendramos
Dque empeKar por el primero
; ultimoAI G EE 5hen
D$scribimos directamente el primer valor. 7o escribiremos en unci!n del
Dtama*o de campo que hayamos establecido
Je.Autonum.4alue G EA((()E
$&it :ub
$nd ;
D,ogemos el valor de la serie en la que estamos
mi:erie G 7etCultimoAI, )#
D4amos a coger su parte numrica. ,omo hemos deinido el tama*o
Ddel campo en / debemos coger los =ltimos M caracteres. :i hubiramos deinido el tama*o
Ddel campo en N, por ejemplo, deberamos coger los =ltimos O, as%
DFultimoAIIum G ,7ngCPightCultimoAI, O##H
D,onvertimos al mismo tiempo ese valor en un entero largo
ultimoAIIum G ,7ngCPightCultimoAI, M##
D7e a*adimos una unidad
ultimoAIIum G ultimoAIIum Q )
D:i el valor obtenido es menor que 1111 seguimos con el procedimiento. 7!gicamente, si
Del tama*o que hubiramos deinido para el campo uera, por ejemplo, T, la comprobaci!n
Dse hara sobre el valor 11111
; ultimoAIIum H 1111 5hen
D:i pasamos el valor 1111 debemos hacer dos cosas%
DSSS $mpeKar la numeraci!n a ) de nuevo
DSSS ,ambiar la letra de la serie
ultimoAIIum G ) D,on esto hemos reinicialiKado el contador
D,alculamos el valor numrico del carcter de la serie
asc:erie G AscCmi:erie#
D7e a*adimos una unidad
X
4istame en http%>>nec??ito.siliconproject.com.ar
asc:erie G asc:erie Q )
D:i el valor resultante superara el valor 1( volvemos a empeKar
por la A
; asc:erie H 1( 5hen asc:erie G T/
DPeconvertimos el ascii en carcter
mi:erie G ,hrCasc:erie#
$nd ;
DPeconstruimos el alanumrico teniendo en cuenta que debemos
a*adir los ceros anteriores
Dal n=mero. $so lo hacemos con la adici!n de cuatro ceros Cla parte
numrica# y la
Dunci!n rightC#
miAI G mi:erie L PightCE((((E L ultimoAIIum, M#
D:i hubiramos ijado el tama*o del campo en O, por ejemplo,
debemos%
DSSS0uitar una unidad para respetar la serie, por lo que nos quedan T
DSSS$n lugar de escribir M ceros escribiramos T ceros, y cogeramos los T
D =ltimos caracteres de la derecha, as%
DFmi:erie L PightCE((((((E L ultimoAIIum, T#
D$scribimos el valor en el campo del ormulario
Je.Autonum.4alue G miAI
$nd :ub
A
2ueno... ambos c!digos estn ms que ampliamente comentados, por lo que, en este caso,
creo que no hace alta a*adir ni una coma "#
PARA FINALIZAR ESTE EJEMPLO
$spero que hayis entendido la mecnica del ejemplo. $ste sistema podra aplicarse,
perectamente, para n=meros de serie de acturas, n=meros de serie de muestras, de pedidos,
etc.
$n deinitiva, deseo que el ejemplo os pueda ser de utilidad.
Yn saludo, y...
UsuerteV
M
4istame en http%>>nec??ito.siliconproject.com.ar

También podría gustarte