SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: mebernal en Miércoles 22 de Julio de 2009, 08:15

Título: Rutina para Renumerar
Publicado por: mebernal en Miércoles 22 de Julio de 2009, 08:15
Muy buenas noches,quisiera me ayudaran en algo o me den algun tips:

1-tengo un form con una tabla que tiene registros y un campo llave de tipo caracter en forma de numero..ejemplo(010001)
y una tabla detalle que se relaciona con la otra tabla por medio del numero,ahora si yo he eliminado registros y quisiera renumerar este numero en forma de texto como puedo hacer?


2-yo tengo una tabla con campo llave de tipo caracter,pero que se forma de combinacion del mes+'000'+str(entero)
o sea
el entero anterior era 3 y el mes de trabajo es enero,entonces el siguiente numero sera: 01 por enero-000 por una variable y 3 por el contador...en pocas palabras seria asi: '010003'
yo quiero mantener ese formato,pero cuando llegue al 10, se me forma 0100010.

yo lo que quiero es que se mantengan los 6 caracteres o sea el 01 no cambia pero los ceros se van a ir reduciendo cuando llegue a decenas y centenas....no se si me explico

o sea si mi contador entero es 1=010001
si mi contador es 10=                  010010
si mi contador es 100=                010100



gracias de antemano
Título: Re: Rutina para Renumerar
Publicado por: xodrf en Miércoles 22 de Julio de 2009, 15:58
Yo asi lo haria:
1- Carga en una matriz todos los registros de tu tabla secundaria  que coincidan con el identificador que quieras cambiar ej
SELECT RECNO() FROM tablasecundaria WHERE ID==X INTO ARRAY _rec, luego cambia el identificador de tu tabla principal y a continuacion recorre tu matriz con un bucle asi
FOR _gir=1 TO ALEN( _rec )
       GOTO _rec[_gir]
       REPLACE ID WITH _newid
ENDFOR
para cambiar el id de tu tabla secundaria

2- STRTRAN( STR(_mes,2,0)+STR(_nro,4,0), " ", "0" )

PRUEBALO!!