FoxPro/Visual FoxPro - Ayuda para formar cadena

   
Vista:

Ayuda para formar cadena

Publicado por idelsy (25 intervenciones) el 09/08/2015 02:52:50
Que tal amigos todos
Esta ves tengo un problema para presentarle relacionado con una estadística que quiero sacar.

Tengo los siguientes campos:

Fuma(activa,pasiva,no) esto esta en un combobox con estas tres opciones
Drogas(si,no)
Sangre(A,B, -A)

Quiero construir una cadena con las opciones seleccionada en el combobox y ejecutarla en un select para mostrar los registros que cumplan con estas condiciones.

agradezco cualquier ayuda.
gracias a todos ustedes
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

Ayuda para formar cadena

Publicado por Fidel José (319 intervenciones) el 10/08/2015 17:08:23
Si tienes 3 campos separados, no necesitas una cadena, sino encadenar las coincidencias en la cláusula WHERE.
Lo que tiene que estar claro es que el contenido de los campos del archivo de datos tenga la estructura que surge de los combobox. O sea, para el caso del fumador, deberían conener los valores "activa","pasiva","no". Si estuviera codificado (ej: 0 = "no", 1="activa", 2="pasiva"), la cláusula WHERE debe buscar esos valores.

Para empezar, puedes probar algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
local lcFuma,lcDroga,lcSangre
 
lcFuma = ALLTRIM(thisform.cmbFuma.value)
lcDroga = ALLTRIM(thisform.cmbDroga.value)
lcSangre = ALLTRIM(thisform.cmbSangre.value)
 
TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 15
SELECT * FROM curDatos
WHERE ALLTRIM(FUMA)=="<<lcFuma>>" AND
ALLTRIM(DROGA)=="<<lcDroga>>" AND
ALLTRIM(SANGRE)=="<<lcSangre>>"
into cursor curShow readwrite
ENDTEXT
 
&lcSql
 
MESSAGEBOX(TRANSFORM(_TALLY)+" Coincidencias")
 
IF _tally >0
	SELECT curShow
	BROWSE
ENDIF
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
Imágen de perfil de Fernando D. Bozzo

Ayuda para formar cadena

Publicado por Fernando D. Bozzo (9 intervenciones) el 10/08/2015 17:09:05
Hola:

Se supone que si mostrás esas opciones en pantalla, es porque también las guardás en una tabla, por ejemplo, usando campos como fuma, drogas y sangre.

Si asumimos que tu estructura y valores son estos:
1
2
3
fuma C(1)   => valores: A,P,N
drogas C(1)  => valores: S,N
sangre C(2)  => valores: A,B,-A,etc

y que en cada registro tenés los datos de una persona, tu SQL para obtener todas las personas fumadoras (activas o pasivas) podría ser este:

1
Select * from tutabla where fuma <> "N"

si quisieras los fumadores activos con grupo de sangre B, sería este:

1
Select * from tutabla where fuma = "A" and sangre = "B"


Saludos.-
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

Ayuda para formar cadena

Publicado por Fidel José (319 intervenciones) el 10/08/2015 17:19:17
Hola Fernando!
Qué raro encontrarte por aquí!
Ja, ja, yo también sospecho que hay un problema con la sistematización.
Campo fuma, opciones:
"mucho","un montón", "como un murciélago","poquito","casi na...","a veces","cuando estoy en pedo","soy alérgico","never in the puta life","3 por día"
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
Imágen de perfil de Fernando D. Bozzo

Ayuda para formar cadena

Publicado por Fernando D. Bozzo (9 intervenciones) el 10/08/2015 18:57:10
Hola Fidel!

De vez en cuando me doy una vuelta por acá, pero suelo encontrar todo contestado. Hoy vi que no había respuesta y me puse a contestar, pero cuando terminé vi que lo habías hecho 1 minuto antes :)
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

Ayuda para formar cadena

Publicado por IDELSY (25 intervenciones) el 11/08/2015 16:32:05
Muchas gracias a todos, todas las respuestas me fueran de de bien, sin ustedes no se que pasaría, son la razón y motivación para seguir con todo esto.

Gracias.
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