FoxPro/Visual FoxPro - Consultas.

 
Vista:

Consultas.

Publicado por GABY (83 intervenciones) el 30/01/2001 18:21:03
Hola a todos, otra vez aqui molestandolos con mis preguntas, bueno lo que pasa es que ya habia mandado una pregunta sobre consultas de sql, y estoy trabajando en eso, pero no eh podido lograr que la consulta se muestre en un grid.

Gracias de antemano.

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

RE:Consultas.

Publicado por GABY (83 intervenciones) el 30/01/2001 19:03:53
Bueno, sigo con mis preguntas, por que ya me estoy volviendo loca con esto, bueno se los voy a plantear asi, tngo un formulario con dos textbox, un grid ,y un botom mostrar, en el evento activate del formulario tengo esto:
store dat1 to ctod
store dat2 to ctod
Un textbox tiene como controlsource dat1 y el otro dat2, y en el click del botob mostrar lo siguiente:

close databases
open database ('c:\vitacom\datos')
select a.no_servicio, c.sitio, a.contacto_local, a.tipo_ser, a.caracteristica, e.ing_asignado, b.fecha , b.h_sal_al_sitio, b.h_lleg_al_sitio, b.h_sal_del_sitio, b.h_lleg_del_sitio, b.tiem_trayecto, b.hrs_laboradas, d.nombre, b.desc_del_prob;
from servicio a, serv_ing b, origen c, status d, ingenieros e;
where a.no_servicio = b.no_servicio and a.no_origen = c.no_origen and b.no_ing = e.no_ing and b.no_status = d.no_status and b.fecha between {dat1} and {dat2};
order by a.no_servicio

Y no me funciona, si en lugar de ponerle a la consulta dat1 y dat2 se pongo fechas si funciona, es decir que algo en las variables esta mal,ademas que despues quiero que aparesca en el grid, Por favor ayudenme por que ya no se que hacer.

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

RE:Consultas.

Publicado por Oscar Pallarozo (38 intervenciones) el 30/01/2001 19:23:16
Hola Gabi, en vez de usar dat1 y dat2 usa defrente los controles es decir:

select a.no_servicio, c.sitio, a.contacto_local, a.tipo_ser, a.caracteristica, e.ing_asignado, b.fecha , b.h_sal_al_sitio, b.h_lleg_al_sitio, b.h_sal_del_sitio, b.h_lleg_del_sitio, b.tiem_trayecto, b.hrs_laboradas, d.nombre, b.desc_del_prob;
from servicio a, serv_ing b, origen c, status d, ingenieros e;
where a.no_servicio = b.no_servicio and a.no_origen = c.no_origen and b.no_ing = e.no_ing and b.no_status = d.no_status and
.fecha between(b.fecha, thisform.fecha1.value, thisform.fecha2.value) order by a.no_servicio into cursor _consulta

thisform.grid.RecordsourceType = 1
thisform.grid.Recordsource = '_consulta'

Configura las propiedades Format de los controles fecha con D para indicar que sean de tipo fecha.

Nota: Cuando te funcione bien intenta convertir esa sentencia sql en una vista con parametros (las fechas) para que lo asocies mejor a otros controles... mucha suerte.

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

RE:Consultas.

Publicado por Omar García (34 intervenciones) el 31/01/2001 20:42:12
Gaby:
He leido hoy miercoles 31 tus mensajes, desde el que escribiste el dia 25, hasta el que escribiste ayer.
Estaba leyendo la respuesta de Oscar y esta bien, solo que hace el codigo un cuanto poco legible el hacer uso de los valores de los controles.
Creo que tengo una mejor idea.
Entiendo que quieres hacer una consulta por rangos. Es decir, que de acuerdo al valor de una fecha incial y una fecha final, se muestre el resultado de una consulta. Bueno, que te parece si en lugar de colocar el código de tu consultan en tu formulario lo colocas en una vista.. mas o menos así.
Create sql view Vprueba as select tabla.dato1, tabla.dato2 from tabla where tabla.fecha between (?variable1,?variable2)
bueno, esta vista se almacena en tu base
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

RE:Consultas.(para omar)

Publicado por gaby (83 intervenciones) el 02/02/2001 19:48:31
Gracias omar, ya me funciono y lo hice creando un view, y me funciona bien, lo unico es que al ejecutarse la consulta aparece este mensaje:

prueba ya existe, Desea sobrescribir el archivo?.

Si le das si, lo muestra y si le das que no, no los muestra, Existe alguna forma para que ese mensaje no aparesca y se muestren lo datos.

Espero y me puedas ayudar.

Gracias.

Gaby.
Monterrey, N.L.
Mexico.
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

RE:Contestando

Publicado por Eduardo (6 intervenciones) el 03/02/2001 02:49:15
La respuesta de Omar está bien, lo malo es que usando el create view en el còdigo te aparece la pregunta si deseas reescribir la vista.

Esto se puede eliminar de 2 maneras:
Una es que antes de usar el create sql view pongas:

set safety off
create sql view.....
set safety on

Con el set safety off eliminas que te aparezcan los mensajes de Fox de escritura y crea la vista sin preguntar.

La otra opción sería que hagas la vista con el diseñador de vistas (para esto ya debes tener una base de datos que contenga la tabla a la cual vas a hacer referencia.

Luego, con el diseñador creas la vista y compruebas que tu còdigo SQL te queda así:

Create sql view Vprueba as select tabla.dato1, tabla.dato2 from tabla where tabla.fecha between (?variable1,?variable2)

Ahora, en el programa principal abres la base de datos con OPEN DATABASE, luego usas USE nom_vista y asegùrate que variable1 y variable2 estén definidas con public e inicializadas a algún valor.

Espero y te haya servido el consejo.
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

De Omar para Gaby continuacion

Publicado por Omar García (34 intervenciones) el 06/02/2001 01:54:53
Si ya leiste el mensaje de Eduardo, eso es lo que debes de hacer.
No se si ya tengas una Base de Datos, o estes usando una tabla libre. Solo agregaría que de preferencia simpre manejes una Base de Datos, aunque sea pequeña.
La otra cosa en la que le hago una observacion a Eduardo, es que las variables que utilices en tu vista, no hay porque declararlas como publicas en tu programa, simplemente inicializalas siempre, antes de abrir tu vista. Así:

variable = thisform.txtdatos.value
use Vistas_prueba in 0

Si tienes mas dudas, avisame.
Atte. Omar García
Oaxaca, México
Eso es todo.
H
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

gracias, Omar y Eduardo

Publicado por GABY (83 intervenciones) el 08/02/2001 17:01:29
Hola, primeramente gracias a los dos por ayudarme ya pude lograrlo, pero ahora les tengo otra pregunta, Como puedo mandar imprimir en un informe los datos de la busqueda?.

Gracias.

Gaby
Monterrey, N.L.
Mexico.
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

Para lo del informe

Publicado por Omar García (34 intervenciones) el 08/02/2001 17:54:19
Hola:
Bueno, necesitas crear un reporte, con el diseñador de reporte y en los campos que incrustes en tu reporte, debes de tene como origen de datos, la vista. Por ejemplo:
vprueba.nombre
vprueba.edad
y asi por el estilo.
Recuerda que antes de llamar al reporte con un:
REPORT FORM
debes tener abierta tu vista.
Espero te des alguna idea con esto.
Hasta pronto .. bye
Atte.
Omar García
Oaxaca, Oax. México
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

RE:Para lo del informe(para Omar)

Publicado por gaby (83 intervenciones) el 08/02/2001 19:13:37
Gracias Omar, ya lo hice y si funciona, pero sucede algo muy extraño, si yo ejecuto mi informe desde el diseñador de informe, me muestra los datos atualizados (bueno de la ultima consulta), pero si desde el formulario hago la consulta y pulso el boton imprimir, me muestra el informe, pero no con la ultima consulta que yo hice si no con la anterior.

No se que este pasando.

Gracias.

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

RE:Para lo del informe(para Omar)

Publicado por gaby (83 intervenciones) el 09/02/2001 20:03:08
Hola , estoy casai volviendome loca con esto ya me desespere,bueno la cuestion es que no logro que se actualicen los datos en el informe que provienen de la vista.

Otra cosa, cuando es la primera vez que corro el formulario desde donde es la consulta en la que los datos vienen de la vista, me aparece una pantallita que dice parametro de vista y pide el valor para la variable, lo que deseo es que no aparesca eso, o como lo puedo solucionar.

Bueno es todo.

Bye.
Gaby.
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

Contestando lo de la ventanita de parámetros

Publicado por Eduardo (6 intervenciones) el 09/02/2001 20:48:26
Veamos, lo de la ventanita aparece porque las variables utilizadas en la vista que manejas en el formulario no están inicializadas a algun valor.

Por eso te mencioné de las variables públicas e inicializadas antes de USE nombre_vista.

Ahora, por lo del informe, checa el datenvaironment del reporte y fíjate si existe ahí la vista que generaste.

Otra cosa podría ser poner en el código donde mandas llamar a tu reporte poner la instrucción
requery() y después REPORT FORM nom_reporte

Si esto no funciona puedes mandarme por mail parte de tu código para ver como puedo ayudarte.

Hasta luego
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