SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: minostalgia en Lunes 22 de Noviembre de 2010, 17:29

Título: GENERAR CODIGO AUTOMATICO
Publicado por: minostalgia en Lunes 22 de Noviembre de 2010, 17:29
Hola amigos tengo una gran duda como podria generar un codigo que vaya incremetando por ejemplo mi codigo sea CAT-0001 EL SIGUIENTE SERIA CAT-0002 , CAT-0003 a si sucesivamente el codigo que trato de hacer esta rutina es el siguiente pero no me hace la suma alguna idea de que podria estar fallando

with thisform
GO BOTTOM
ntm=4
m.cValor =PADL(ALLTRIM(STR(VAL(categoria.id_cat) + 1)),nTm, '0' )
cod="CAT-"+m.cvalor
 .TXTCOD.VALUE=COD
endwith
 pero el resultado solo me da esto
 CAT-0001 y yo ya tengo 3 registros se supone que me debe mostrar el CAT-0004 pero nada
ayuda por favor
Título: Re: GENERAR CODIGO AUTOMATICO
Publicado por: arielb en Martes 23 de Noviembre de 2010, 22:16
Hola, bueno observando el código te hago comentarios para que consideres y hagas los cambios necesarios si crees que te van ayudar.
si bien entendí en el campo categoria._id_cat existen registro de las siguiente forma "CAT-00001".
Por lo tanto si quieres convertir ese valor en un número debes eliminar primero los caracteres.
Pasos
   1 - eliminar caracteres que vienen siendo "CAT-".
   2 - convertir a número que viendo siendo "00001".
   3 - el resultado sería 1.
   4 - sumar el resultado con el la cantidad deseada 1+1
   5 - resultado 2.
 
 Según observo lo estás haciendo pero en el orden incorrecto ya que la evaluación se realiza de adentro hacia afuera y no de afuera hacia adentro.
 
 Saludos,
Título: Re: GENERAR CODIGO AUTOMATICO
Publicado por: Alberto Daniel en Jueves 31 de Marzo de 2011, 03:50
ACABO DE REGISTRARME Y PESE AL TIEMPO YO LO HUBIESE RESUELTO ASI
Guardas el ultimo valor
GO botto
X = 'CAT-0001'
m.cValor =INT(VAL(ALLTRIM(SUBSTR(X,5,4))))
cod="CAT-"+PADL(ALLTRIM(STR(m.cvalor+1)),4, '0' )
?COD
cod ha sido asignado con el nro CAT-0002