SoloCodigo
Programación General => Visual FoxPro => Mensaje iniciado 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
-
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,
-
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