FoxPro/Visual FoxPro - PROBLEMAS CON GRID

 
Vista:

PROBLEMAS CON GRID

Publicado por CARLOS (1 intervención) el 22/11/2018 19:33:11
Hola necesito por favor si alguien puede ayudarme, paso a comentarles mi problema, estoy haciendo una aplicación en Visual Foxpro 9:

Tengo un formulario con un grid el mismo tiene la propiedad Recordsourcetype en 4 o sea Sentencia SQL, para el llenado de datos del grid hago un Select a un cursor y lo aplico a la propiedad Recordsource.-

Hasta ahí todo funciona de maravillas, ahora bien, yo lo que necesito es poder hacer doble click en una fila X del grid y que me traiga el valor que tiene asignado una celda, pero no logro que funcione bien.-

La propiedad AllowCellSelection la puse en False para que me habilite el uso del grid como si fuera un listbox.-

En el Método DblClick coloco el siguiente código solo para ver si me trae el valor que yo quiero:

MESSAGEBOX(ALLTRIM(this.column3.text1.Value))

El problema es que solo funciona si el usuario hace doble click en la celda ubicada en la columna 3 del grid, pero si el usuario hace click en cualquier celda de la misma fila me trae el último valor que me mostro el cual puede ser de otra fila consultada.-

Espero haya sido claro con todo este juego de palabras

Necesito que alguien me informe que puedo hacer para que si el usuario hace clic en cualquier celda de la misma fila donde está la celda que yo quiero mostrar me traiga el valor correcto.-

Desde ya muchas gracias y Saludos!
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROBLEMAS CON GRID

Publicado por Fidel José (657 intervenciones) el 22/11/2018 21:14:19
Con AllowCellSelection = .F. te creas algunos problemas a la hora de identificar las columnas.
Prueba de esta forma
1
2
3
4
5
6
*!*	MESSAGEBOX(ALLTRIM(this.column3.text1.Value))
LOCAL lcString,lcField,lxValue
lcString = this.column3.ControlSource
lcField = IIF(EMPTY(AT(".",m.lcString)),m.lcString,GETWORDNUM(m.lcString,2,"."))
lxValue = EVALUATE(this.Recordsource+"."+m.lcField)
MESSAGEBOX(m.lxValue)

Siempre es mejor buscar los datos en el cursor que es RecordSource del control Grid, salvo para el caso de valores introducidos por el usuario en el mismo Grid (que no es este el caso)
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 Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROBLEMAS CON GRID

Publicado por Leonardo Daniel A. (497 intervenciones) el 23/11/2018 06:24:18
Hola... el grid de fox es muy limitado.. y solo soporta eventos como el doble click en el objeto contenedor, en este caso el textbox.. tendras que crear un metodo y programar el dobleclick en los textbox que quieras que respondan a eso
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROBLEMAS CON GRID

Publicado por Fidel José (657 intervenciones) el 23/11/2018 14:24:22
Hola Leonardo
Si el grid está configurado como AllowCellSelection = .F., funcionan los eventos Click y DblClick del control Grid. Y no funcionan esos eventos del CurrentControl de cada columna
Si el grid está configurado como AllowCellSelectioin = .T. (Default), los eventos Click y DblClick funcionan de manera limitada (con una gran puntería sobre las líneas divisorias) y funcionan adecuadamente esos eventos en los currentControl de las columnas.
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

PROBLEMAS CON GRID

Publicado por CARLOS (15 intervenciones) el 23/11/2018 13:07:43
Buen día estimado Fidel José le agradezco su respuesta voy a probar lo que Ud. me sugiere y le cuento como me fue

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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROBLEMAS CON GRID

Publicado por Abel (286 intervenciones) el 23/11/2018 13:34:01
No hace falta que hagas muchos cambios; si en el select del grid haces referencia del campo que deseas mostrar; es decir algo así;

Select Campo1, Campo2 From MiTabla Into Cursor LoQueSea
o bien
Select * From MiTabla Into Cursor LoQueSea

En el método DoubleClik haz mención del siguiente modo...

MESSAGEBOX(ALLTRIM(LoQueSea.Campo2))

Es decir que no haces mención del Campo del Grid, sino del campo de la tabla cursor.
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

PROBLEMAS CON GRID

Publicado por CARLOS (15 intervenciones) el 23/11/2018 14:56:44
MUCHAS GRACIAS A TODOS POR LAS RESPUESTAS!!!!!

LES COMENTO QUE CON LAS AYUDAS QUE ME DIERON LOGRÉ SOLUCIONAR MI PROBLEMA!!!!

LES CUENTO QUE LO QUE HICE FUE PONER EL RecordSourceType en 1 (Alias) y el RecordSource="MI CURSOR"

LUEGO EN EL DblClick del GRID COLO QUÉ LO QUE ME SUGIRIÓ ABEL Y ANDUVO PERFECTO!!!!!!!!!!

MUCHAS GRACIAS A TODOS SALUDOS!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROBLEMAS CON GRID

Publicado por Leonardo Daniel A. (497 intervenciones) el 23/11/2018 18:37:31
Que bueno... la verdad.. hace añosss que deje Vfox... no recordaba bien
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