Claves autonumericas

Hola necesito de su ayuda estoy realizando un sistema de ventas pero necesito que las claves de las ventas tengan las 2 primeras sean letras y después numero consecutivo por ejemplo si es la primer venta se pondrá automáticamente vt001
la venta 2 vt002 la venta 3 vt003 y así Sucesivamente que sean claves consecutivas me podría ayudar ya que me urge terminar
mi correo es
[email protected]

1 Respuesta

Respuesta
supongamos que tienes una tabla en donde guardas la cabecera de ventas en FACCAB
los campos>
fac_cod     c(10)
fac_fecha    d(8)
fac_cliente   etc, etc.
Primero debes calcular el valor ultimo de registro, hay varias formas de hacerlo, si trabajas con DBF podrias simplemente usar la funcion reccount() asi>
a=reccount('faccab')+1
xCodigo = 'VT'+padl(alltr(str(a)),3,'0')
Con esto le digo que ponga solo 3 dígitos, con ceros a la izquierda para ajustarme a tu ejemplo, pero deberías ampliarlo a 7 como mínimo según la extensión de tu campo y la capacidad máxima del numero de factura.
lamentablemente no le entendi muy bien  estoy utilizando fox pro  talvez no me explike bien
lo que necesito es que por ejemplo en la tabla  productos  las claves  sean consecutivas   que al momento de dar clic en nuevo  en la clave se coloque  3 o 2 letras seguido de  numeros por ejemplo  si el producyo es el 20  sea pro20  al momento de guardar lo almacene en la base de datos correspondiente  y al volver  a dar nuevo me de la siguiente clave que es  pro21  y  asi   sucesivamente
ya tengo la sints  de las  letras 
seria thisform.txtclaveproducto.value="pro"
Espero y ahora si haya sido más explicita
Es más o menos lo que escribí, solo que yo entendí para facturación, lo mismo iras a usar, usas reccount('productos') para saber que cantidad de registros hay, le sumas uno y tendrás la correlatividad, luego le concatenas a la letra o palabra 'pro' por ejemplo, la idea es
Conseguir el ultimo numero utilizado
Asignarle más uno
Convertir ese numero a string y colocarle ceros a la izquierda con la función padl()
Concatenar con la palabra inicial y listo, cada vez que vas a insertar un registro haces de nuevo e ira aumentando.
Es muy simple, espero que me hayas entendido, de lo contrario pide una aclaración.
Me podría ayudar con el código porque yo tengo uno y solo me hace el 1 y el 2 y de ahí se regresa y me pone el numero 1
thisform.txtfolio.value=folio
.txtfolio.value=1
numero=thisform.txtfolio.value+1
thisform.txtfolio.value=numero
thisform.txtclavecliente.value="UG"
En ese caso el problema es de Lógica, en el código que mencionas da muy poca información para rescatar el error, enviame tu form y la estructura de tu tabla, o la tabla vacía a [email protected] y te daré la solución.
Hola ya le envíe a su correo gracias
He examinado tu código y efectivamente es un error de lógica, fíjate que en las lineas
.txtfolio.value = 1
numero = thisform.txtfolio.value+1
En el primero le asignas siempre 1 a txtfolio, luego le sumas 1, esto significa que siempre el valor sera 2, nunca avanzará más que eso, por que siempre le asisgnas 1 al principio, y sumes lo que sumes ahí siempre dará el numero sumado más 1, eso es todo, utiliza el depurador para analizar un poco más tu código, eso te ayudará en la lógica, creo que no hay que complicarse mucho aquí, lo que debes hacer es
- Obtener el ultimo numero de folio
- Sumarle más 1
Y listo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas