FoxPro/Visual FoxPro - otra vez el Grid ¡urgente!

 
Vista:

otra vez el Grid ¡urgente!

Publicado por Diana (88 intervenciones) el 09/01/2003 03:56:13
hola que tal

1.-problema es con el Grid, tal vez sea un control sencillo pero a mi se me ha dificultado un poco

tengo un formulario con un cuadro de texto y un grid

En el cuadro de texto se introuce el dato por el cual se hara la busqueda en la tabla, despues de esto por medio de una consulta obtengo lo referente a los datos que quiero que se visualizen ejemplo

clave del cliente __________ la rayita es el cuadro de texto, ahi es donde se introducira el valor que es de tipo numerico ejemplo: 1

despues en el evento valid, verifico que exista esa clave en la tabla, suponiendo que si existe el registro, lo que hago ahora es hacer una consulta, la cual envio a un cursor.

select * from dotaciones

where clave=thisform.clave.value

insert into cursor cursor_dotaciones

order by clave_producto


segun yo, con esto ya se deberia mostrar los datos al grid. porque el RecordSource=cursor_dotaciones y RecordSourceType= alias

pero no me muestra nada, el grid sigue en blanco, que estare haciendo mal...


estuve haciendo pruebas asi que coloque el siguiente codigo en el evento load del formulario con una clave constante:

select * from dotaciones

where clave=1

insert into cursor cursor_dotaciones

order by clave_producto

y si me mostro los datos referentes al registro, pero,porque cuando lo hago en el evento valid del cuadro de texto, con la consulta en el grid no me despliega nada???

ojala y me puedan ayudar.

Otra duda: ¿ como se pasan los parametros de un formulario a otro?, quiero hacer un formulario que me capture la fecha en el formato de dd/mm/aaaa despues,
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:otra vez el Grid ¡urgente!

Publicado por Alberto Sanchez Sarabia (88 intervenciones) el 09/01/2003 04:03:19
Estimada Amiga Diana:

A simple vista parece que el problema esta en tu secuencia del comando SELECT:

*/ tu escribes */
select * from dotaciones ;
where clave=1 ;
insert into cursor cursor_dotaciones ; && <---ERROR
order by clave_producto

ERROR: No lleva la palabra 'INSERT' sino solo 'INTO CURSOR...'

podria ser por ahi donde este el problema, pero intenta programando tu codigo en el evento LostFocus para que en el momento que des ENTER o te muevas con el tabulador se actualice tu SQL Cursor.

Suerte y estamos en contacto.
Saludos
Alberto Sanchez Sarabia
Consultor de Sistemas

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

Correcion

Publicado por Diana (88 intervenciones) el 09/01/2003 04:14:20
tienes razon, lo que pasa es que no tenia a la mano mi codigo, asi que escribi y no me di cuenta que se me paso el insert, pero igual ponia en la forma correcta y no sucedia nada, voy a checar lo que me dices, y les aseguro poner mi codigo tal y como lo tengo en el programa, pa evitar estas cuestiones, disculpen
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:otra vez el Grid ¡urgente!

Publicado por Roman Suazo (2723 intervenciones) el 09/01/2003 05:13:19
Ok, vamos a ver si te ayudo...

Primero, te recomiendo que pongas el codigo en un boton. Un poquito
mas de trabajo para el usario, pero un poco mas logico al momento de
usar...

Lo que podes hacer es lo siguiente:

Creas la consulta con el select, pero te tenes que fijar que el resultado
lo ponga en el cursor X de la sentencia del SELECT.

El codigo debe ser algo asi (mas o menos):

Select * from tabla where codigo= thisform.text.value AND ! DELETED()INTO CURSOR 'x'

Ahora usas la funcion RECCOUNT() con el cursor X para verificar que se
encontro algo. Si encontro algo pones algo como esto:

select X
go top
scan while !eof()

insert into cursorGrid bla blal del cursor X

endscan

Refrescas el grid, y ya estuvo, la idea se puede simplificar aun mas
pero ahi lo dejamos por el momento. Solo recordate que despues de hacer una consulta borra los registros del cursor para que asi no se
mezclen con los nuevos.

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:otra vez el Grid ¡urgente!

Publicado por Japiper (93 intervenciones) el 10/01/2003 23:11:59
Te la hago facil
en el evento keypress del textbox pones.
parameter nkeycode
if nkeycode=13 &&Tecla enter
nodefault
valor=thisform.text1.value &&tu caja de texto
sqlvar="select cliente,nombre,direccion from clientes where "
sqlvar=sqlvar+"cliente=valor order by 1 into cursor sqlclientes"
thisform.grilla.recordsourcetype=4
thisform.grilla.recordsource=sqlvar
endif
una opcion muy buena
otra

es crear indices en la tabla
entras al formulario indexas
en el evento interactivechange del textbox
colocas
private valor
valor=upper(allt(this.value))
select clientes
n=recno()
seek valor
if !found()
go n
endif
thisform.grilla.setfocus()
this.setfocus()
release valor
Esto hace que cada vez que ingreses un caracter te busca la primera opcion

Tengo programas funcionando de las dos maneras
Saludos.
Cualquier duda mandame un correo.
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 ya lo solucione

Publicado por Diana (88 intervenciones) el 11/01/2003 04:28:50
era una cuestion de simple comilla

Thisform.grid1.RecordSource='cursor_dotaciones'

ya lo solucione.

De verdad muchas gracias a todos por su aportacion

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