FoxPro/Visual FoxPro - ayuda con grid me esta volviendo loco

   
Vista:

ayuda con grid me esta volviendo loco

Publicado por marcos (18 intervenciones) el 19/05/2008 13:55:54
buenas a todos, y gracias de antemano el tema es el siguiente tengo un formulario en fox pro que es de compra, y tnego un textbox que utilizo para colocar el producto, mediante el evento interactive change y un grid, puedo elegir el producto hasta ahi fenomeno pero quiero que cuando tenga el foco el grid desaparesca al precionar enter,
utiliozo el siguiente codigo

este va en el evento activate del form

SELECT stkpdt

SET ORDER TO proddec && VENDID

thisform.prodlist.AllowAddNew= .F.
thisform.prodlist.ColumnCount=1
thisform.prodlist.RecordSource=SPACE(0)
thisform.prodlist.RecordSource='stkpdt'

thisform.prodlist.column1.header1.Caption=' Descripcion'
thisform.prodlist.column1.header1.FontBold= .T.
thisform.prodlist.column1.ControlSource='proddesc'
thisform.prodlist.column1.Width=500

y esto otro en el interactivechange

SELECT stkpdt

SET ORDER TO proddec && VENDID

nombre='%' + UPPER(ALLTRIM(thisform.boxnom2.Value)) + '%'

SELECT * FROM stkpdt WHERE proddesc like nombre INTO CURSOR resultado

thisform.prodlist.AllowAddNew= .F.
thisform.prodlist.ColumnCount=1
thisform.prodlist.RecordSource=SPACE(0)
thisform.prodlist.RecordSource='resultado'

thisform.prodlist.column1.header1.Caption=' Descripcion'
thisform.prodlist.column1.header1.FontBold= .T.
thisform.prodlist.column1.ControlSource='proddesc'
thisform.prodlist.column1.Width=500

y el en grid (en el evento keypress de cada columna)
if nkeycode=13
thisform.prodlist.visible=.F.
thisform.boxdesc.setfocus
endif

el tema es que aveces funciona y aveces no q puede ser y cuando funciona si lo intento de nuevo ya no funciona que puede estar mal. gracias
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:ayuda con grid me esta volviendo loco

Publicado por Jose Rolando (331 intervenciones) el 19/05/2008 17:04:56
Hola
yo creo que si te funciona una vez y despues no, deberias verificar en que lugar se posiciona o esta el cursor cuando quieres hacerlo de nuevo, es decir, donde tiene el foco? Es probable que al foco lo tenga el Text1 de una determinada columna del grid y no en la columna y ahi deberias colocar tambien la variable del
if keypress=13
thisform.prodlist.visible=.F.
thisform.boxdesc.setfocus
endif

Espero que con esto te ayude en algo.
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:ayuda con grid me esta volviendo loco

Publicado por MARCOS (18 intervenciones) el 19/05/2008 19:17:38
mira no puedo hacer lo que me dijiste porque keypress en fox no es reconocido y la columna del grid no tiene keypress
que sera?
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:ayuda con grid me esta volviendo loco

Publicado por jose camilo (18 intervenciones) el 19/05/2008 20:07:03
ya va mijo
sucede k el grid tiene un problema serio y es k cuando tu da el select en el interactivechange el limpia todos los eventos k estaban previamente asignado

en otras palabras cuando haces el load y da el primer select en un grid el te asigna un conjunto de eventos si por una razon o otra intenta da otro select al mismo gird el limpia todos los eventos y espera k tu reasigne todos los eventos otra vez
en la ayuda dice k thisform.prodlist.RecordSource=SPACE(0) te salvaguarda algunos eventos pero otros no.

solucion k le he encontrado
crea un cursor al inicio del formulario kizas en el load del grid y trabaja tus articulos en este cursor anade, borra, modifica aqui pero NUNCA REASIGNE el grid con un select al terminar u todo bien y cache mandolo a la tabla de compra y compra de detalle.
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

todo sigue igual

Publicado por marcos (18 intervenciones) el 20/05/2008 12:48:39
hola gente gracias por responder pero todo sigue igual, no puedo solucionarlo, con respecto al cursor ya lo cree pero hace lo mismo ya que cree el cursor con

CREATE CURSOR EJEMPLO(NOM C(20))

y en el control source le di que se refiera a ese cursor

y el select tambien a eso crursor

SELECT * FROM VENDEDORES WHERE VENDNOM=NOMBRE INTO CURSOR EJEMPLO

pero sigue haciendo lo mismo

ayuda please
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:todo sigue igual

Publicado por enrique (1041 intervenciones) el 20/05/2008 23:18:38
Mandame el projecto compactado a mi correo y lo reviso, a veces es un poco complejo dar ideas a la distancia.
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:ayuda con grid me esta volviendo loco

Publicado por kong (681 intervenciones) el 21/05/2008 04:36:03
haber forero.....Yo entendi lo siguiente.
....................................................
Tienes un TextBox1, que ingresas un codigo o un nombre a buscar en una tabla.
Tienes un Grid1, que contiene el resultado de la busqueda del TextBox1.
Cuando tienes el resultado de la busqueda te posicionas sobre el Grid1, de tal manera que puedes tambien seleccionar con flechas otros registros cercanos al que tienes en Grid1.......y cuando ya la tienes seleccionado con las flechas quieres presionar ENTER y que se salga del GRID1 para luego posicionarse sobre otro objeto.
....................................................
Prueba planteandote asi:
....................................................
En la form, en la propiedad KeyPreview=.T.
----------
En el INIT del form:
thisform.addproperty("moverfoco")
thisform.moverfoco=0
----------
En el KeyPress del Form:
IF nKeyCode=13 AND moverdefoco=1
NODEFAULT
thisform.TextBox1.setfocus && o a cualquier otro objeto.
ENDIF
----------
En el procedimiento para hacer la consulta y llenar el Grid1, y justo antes de enviar el foco al Grid1:
thisform.moverfoco=1
........................................................
Espero que te sirva.
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:ayuda con grid me esta volviendo loco

Publicado por kong (681 intervenciones) el 21/05/2008 04:39:51
existe un pequeño error en el post anterior
----------
En el KeyPress del Form:
IF nKeyCode=13 AND thisform.moverdefoco=1
NODEFAULT
thisform.TextBox1.setfocus && o a cualquier otro objeto.
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