Autor Tema: Problema con código en Visual Fox. Ayuda please.  (Leído 3779 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Problema con código en Visual Fox. Ayuda please.
« : mayo 24, 2008, 04:47:02 pm »
Tengo una tabla en visual fox. El tipo de datos es entero pero necesito alinearlos a la izquierda. Bueno, el problema es el siguiente: Tengo el siguiente código:

                nAnswer=MESSAGEBOX('¿Confirma que desea guardar los datos?', 4+48,;
                'Confirmación')
      IF nAnswer=6 THEN
         SELECT celula
         GO TOP
         IF EOF()
            var1=0
         ELSE
            CREATE TABLE Virtual(campcorr INT(4))
            SELECT correlativo FROM celula WHERE cod_coord = ;
                                SUBSTR(thisform.combcoord10.Value,1,3) INTO TABLE Virtual
            SELECT Virtual
            SCAN
               var1=MAX(Virtual.campcorr, campcorr)
            ENDSCAN
            var1=var1+1
            DROP TABLE Virtual
         ENDIF
         DO case
            CASE var1>=0 AND var1<10
               strcorr="000"+STR(var1)
               MESSAGEBOX(strcorr)
            CASE var1>=10 AND var1<100
               strcorr="00"+STR(var1)
            CASE var1>=100 AND var1<1000
               strcorr="0"+STR(var1)
            CASE var1>=1000 AND var1<10000
               strcorr=STR(var1)
            OTHERWISE
               MESSAGEBOX("Número de célula no válido para este
                                        Coordinador. Comuníquese con el Administrador del
                                        Sistema.",0+16,"Error en correlativo")
         ENDCASE

El mensaje en rojo me muestra el valor de la variable que, según este código es "000    0", pero quiero que me salga "0000" y no sé cómo hacerlo.
Agradecería mucho que me digan cómo se hace si es posible.
« Última Modificación: mayo 24, 2008, 05:11:22 pm por gilanrodas »

Desconectado Ronnie

  • Sv Member
  • ***
  • Mensajes: 428
  • -: Larga vida al rock :-
Re: Problema con código en Visual Fox. Ayuda please.
« Respuesta #1 : mayo 25, 2008, 12:22:12 pm »
Esta parte
strcorr="000"+STR(var1)

cambiala por
strcorr="000"+TRIM(STR(var1))
...

Desconectado ruiz

  • Sv Full Member
  • *
  • Mensajes: 729
Re: Problema con código en Visual Fox. Ayuda please.
« Respuesta #2 : mayo 26, 2008, 08:25:07 am »
Esta parte
strcorr="000"+STR(var1)

cambiala por
strcorr="000"+TRIM(STR(var1))



tmbien lo podes sustituir por
strcorr="000"+alltrim(STR(var1))


y listo...

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: Problema con código en Visual Fox. Ayuda please.
« Respuesta #3 : mayo 26, 2008, 10:47:56 am »
Me funcionó a la perfección. Muchas gracias.

Ahora, tengo otro problema. Necesito extraer algunos datos de una tabla a una tabla "virtualt", pero al principio tengo que crearla para poder asignarle un tipo de datos y su longitud, pero cuando intento traerlos de la otra tabla a través de "select <campo> from <tabla> where <condición> into table virtualt" me intenta crear otra tabla y me da un error. No uso de una vez el select porque no puedo asignarle tipo de dato ni longitud. ¿Qué hago para evitar que me intente crear otravés la tabla?
Observen el siguiente código:

CREATE TABLE Virtualt (campcorr INT(4))
SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3) into table Virtualt
SELECT Virtualt
SCAN
   var1=MAX(Virtualt.campcorr, campcorr)
ENDSCAN
var1=var1+1
DROP TABLE Virtualt

Desconectado ruiz

  • Sv Full Member
  • *
  • Mensajes: 729
Re: Problema con código en Visual Fox. Ayuda please.
« Respuesta #4 : mayo 26, 2008, 10:58:13 am »
bueno en ves de utilidar el select into taabla puedes utilizar el


aun que no es necesario que crees antes la tabla basta con el select el campo tomara el tipo de dato del campo que te regresa el select:

SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3) into table Virtualt



o puedes usar enves de una tabla un cursor

SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3) into cursor Virtualt


pero si insistes en crear primero la tabal entonces puedes utilizar el insert tinto
asi:
insert into Virtualt ;
SELECT correlativo FROM celula WHERE;
cod_coord=SUBSTR(thisform.combcoord10.Value,1,3)