FoxPro/Visual FoxPro - TEXT TO

   
Vista:

TEXT TO

Publicado por PBej (19 intervenciones) el 20/09/2011 19:11:57
Hola:

Quisiera saber como llamar a una variable creada a partir de datos de otras variables:

esto es lo que tengo y no funciona:

nmrec = iif(cmesrec="Enero",1,iif(cmesrec="Febrero",2,iif(cmesrec="Marzo",3,iif(cmesrec="Abril",4,iif(cmesrec="Mayo",5,iif(cmesrec="Junio",6,iif(cmesrec="Julio",7,iif(cmesrec="Agosto",8,iif(cmesrec="Septiembre",9,iif(cmesrec="Octubre",10,iif(cmesrec="Noviembre",11,iif(cmesrec="Diciembre",12," "))))))))))))

nombrevar = ALLTRIM('mesrecep'+ALLTRIM(STR(nmrec))) *** AQUI SE CREA EL NOMBRE DE LA VARIABLE ***

TEXT TO lcsql TEXTMERGE noshow
UPDATE tabla1 SET ?nombrevar=?ALLTRIM(mrec)
where identidad = ?enti
ENDTEXT

La cuestión es como hablar al nombre del campo de la variable NOMBREVAR dentro de TEXT TO

Tomando como ejemplo:

nombrevar = 'mesrecep4'

COMO DEBE HABLARSE A ESTA VARIABLE????????????

TEXT TO lcsql TEXTMERGE noshow
UPDATE tabla1 SET ________ = ?ALLTRIM(mrec) ***ASI DEBE QUEDAR mesrecep4 = ?ALLTRIM(mrec) ****
where identidad = ?enti
ENDTEXT
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio

TEXT TO

Publicado por Mauricio (1368 intervenciones) el 20/09/2011 23:49:48
nmrec = iif(cmesrec="Enero",1,iif(cmesrec="Febrero",2,iif(cmesrec="Marzo",3,iif(cmesrec="Abril",4,iif(cmesrec="Mayo",5,iif(cmesrec="Junio",6,iif(cmesrec="Julio",7,iif(cmesrec="Agosto",8,iif(cmesrec="Septiembre",9,iif(cmesrec="Octubre",10,iif(cmesrec="Noviembre",11,iif(cmesrec="Diciembre",12," "))))))))))))
*
nombrevar = c'mesrec'+ALLTRIM(STR(nmrec)))
* Si revisas bien, estas usando 2 nombres de variables cuando es una sola....OJO
TEXT TO lcsql TEXTMERGE noshow
*
* Luego para esto, se deberia saber los nombres de los campos....
COMO DEBE HABLARSE A ESTA VARIABLE????????????
TEXT TO lcsql TEXTMERGE noshow
UPDATE tabla1 SET ________ = ?ALLTRIM(mrec) ***ASI DEBE QUEDAR mesrecep4 = ?ALLTRIM(mrec) ****
where identidad = ?enti
ENDTEXT
* Explica bien lo que quieres y demas referencias que usas...... POR FAVOR!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

TEXT TO

Publicado por Juan Manuel Cruz juanmcruz@hotmail.com (508 intervenciones) el 22/09/2011 10:09:09
Creo que estás confundiendo dos conceptos. En el caso del campo de la tabla, debes ponerlo como un literal, mientras que el valor asignado debe ir preguntando a la variable.

Algo como:

TEXT TO lcsql TEXTMERGE noshow
UPDATE tabla1 SET <<nombrevar>> = ?mrec
where identidad = ?enti
ENDTEXT

Aunque la verdad es que, o te explicas muy mal, o no nos está quedando claro qué es lo que quieres hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

TEXT TO

Publicado por DALSOM (609 intervenciones) el 22/09/2011 20:14:05
PRUEBA ESTE CODIGO, TE PUEDE AYUDAR :

Local var1, var2, var3, c, cmd, total
var1 = 10
var2 = 20
var3 = 30

for c = 1 to 3
cmd = "Total = Total + Var" + alltrim(str(c))
&cmd
next


EL CARACTER "&" SE USA PARA INVOCAR EL VALOR CONTENIDO EN LA DIRECCION DE MEMORIA CONTENIDA EN LA VARIABLE. MAS SENCILLO, LEE LA AYUDA AL RESPECTO DE ESTE CARACTER.


SALUDOS,
DALSOM.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

TEXT TO

Publicado por DALSOM (609 intervenciones) el 22/09/2011 20:16:14
OLVIDE INICIALIZAR LA VARIABLE TOTAL EN 0, E IMPRIMIRLA AL FINAL. PERDON!!!

Local var1, var2, var3, c, cmd, total
var1 = 10
var2 = 20
var3 = 30
total = 0
for c = 1 to 3
cmd = "Total = Total + Var" + alltrim(str(c))
&cmd
next
?total

Listo.

Saludos,
Dalsom.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar