FoxPro/Visual FoxPro - Seleccionar fila de una grid con doble click

 
Vista:
Imágen de perfil de yersson
Val: 25
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Seleccionar fila de una grid con doble click

Publicado por yersson (14 intervenciones) el 05/02/2017 22:09:37
Muy Buenas tardes queridos amigos,

Tengo un formulario donde tengo varios campos de texto y una grid, al momento de hacer una consulta (parte que ya lo tengo echo) se me muestran en los campos que tengo (hasta ahí todo bien).

tengo dos tablas una tb_procesos y otra tb_actuacion, cada proceso que registro tiene varias actuaciones, claro esta en cada tabla les tengo un campo id para poder relacionarlas.

Lo que no he podido hacer es que, al momento de hacer la consulta se muestre en la grid los datos de la tabla tb_actuacion ( los cuales solo me van a mostrar dos datos de la tabla) y cuando ya tanga los datos en la grid yo pueda dar docle click a una fila de ellos se muestre el tercer datos de la tabla tb_actuacion en un textbox

tablas

tb_proceso (idm, n_radicado, a_radicad, .... etc) solo muestro con lo que hago la consulta
tb_actuacion (dim, fecha, actuacion, detalle) son todos los campos de la tabla, el campo detalle es que quiero que se muestre en un textbox aparte al momento de darl doble click en la grid de la fila a seleecionar

muchas gracias, espero me puedan entender, no llevo mucho programando en visual fox pro

(y) ..
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

Seleccionar fila de una grid con doble click

Publicado por Fidel José (657 intervenciones) el 06/02/2017 12:38:34
En realidad, lo que no entiendo es si tienes un problema de interfaz o de datos.
Suponiendo que sea un problema de interfaz: El DblClick en el control grid, para Visual Fox Pro 9, depende del valor de la propiedad AllowCellSelection. Esta propiedad por defecto, tiene valor .T., lo cual permite identificar filas y columnas. En ese caso, el DblClick corresponde a cada objeto que es CurrentControl de la columna (por defecto "Text1")
Si AllowCellSelection = .F., el grid funciona como un Listbox y el Click, DblClick, etc, corresponden al control Grid.

Para Visual Fox Pro 9 y AllowCellSelection = .T., puedes hacer que todas las columnas respondan al Evento Click de la misma forma, utilizando BindEvent() y Aevents() en el método delegado.
Para versiones 6, 7 de Visual Fox, solatmente puedes hacer una clase textbox con la programación del dblClick, agregar la clase textbox a cada columna y establecerla como CurrentControl. Obviamente esa clase también va para VFP 8 y 9.

Nota: puedes intentar utiilzar el DblClick de los TExt1 de las columnas en el diseñador de formularios, pero debes tener en cuenta que cualquier recreación del grid (y a veces un desenlace) te limpiará el código en tiempo de ejecución y el DblClick no funcionará más hasta que vuelvas a cargar el Formulario.
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 yersson
Val: 25
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Seleccionar fila de una grid con doble click

Publicado por yersson (14 intervenciones) el 06/02/2017 21:05:12
hola fidel,

DIsculpame, las aclaraciones muy poco las entriendo, llevo poco tiempo aprendiendo visual fox pro, lo que quiero es ejemplo de como podria hacerlo, hago una consulta de la tabla tb_procesos, los cuales me mandas los valores a los txtbox del formulario y en la grid quiero que se muestren los valores de la tabla tb_actuacion( esta pequeña parte no lo he podido hacer), la dos tablas comparten un campo en comun su idm(id), y al dale click o doble click a uno de los datos de la fila de la grid me aparesca en un txtbox un campo que no visualizo enla grid, este campo tambien es de la tabla tb_actuacion.

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

Seleccionar fila de una grid con doble click

Publicado por Fidel José (657 intervenciones) el 06/02/2017 21:54:22
1 - Crear un cursor vacío sobre la tabla que vas a mostrar en el grid.
SELECT * FROM tb_actuacion WHERE .F. INTO CURSOR cur_Actuacion (Esto puede estar en el Load, o el Init del form)
2 - Configurar el control grid
* Lo básico acá es
Thisform.grdActuacion.RecordSource = "curActuacion"

3 - Crear un método que actualice el cursor curActuacion en base al Id de la tabla tb_procesos
* Supongamos que en el diseñador de formularios creas un método (Method) llamado "Actualizar_Cursor" con este código.
3.1. Limpio el cursor
SELECT curActuacion
ZAP
Thisform.grdActuacion.Refresh

3.2. SElecciono el conjunto de datos

SELECT * FROM tb_Actuacion WHERE tb_Actuacion.idm = tb_Procesos.Idm INTO CURSOR curPase && genero un cursor de pase
IF _TALLY > 0 && SI GENERO DATOS
SELECT curActuacion
APPEND FROM DBF("curPase")
USE IN CURPASE
ENDIF
Thisform.grdActuacion.Refresh
* Fin del metodo Actualizar_Cursor

4 - Desde donde llamo al Method "Actualizar_Cursor"
Desde el método o evento en el cual cambie el puntero de registro de tb_procesos. Posiblemente también en el init del form.
Si tb_Procesos se muestra en otro grid, el método Actualizar_Cursor() debe ir en el Evento AfterRowColChange del grid que muestra tb_procesos. Si no, en la botonera que mueve los registros de esa tabla.

Y como lo llamo?
Thisform.Actualizar_Cursor()
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 yersson
Val: 25
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Seleccionar fila de una grid con doble click

Publicado por yersson (14 intervenciones) el 11/02/2017 21:18:15
Hola Fiel

Muchas gracias, me sirvió el 90% de tu código, lo adapte a lo que necesitaba, de verdad muchas gracias por tu tiempo y código,

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

Seleccionar fila de una grid con doble click

Publicado por Leonardo Daniel A. (497 intervenciones) el 07/02/2017 18:02:45
hola te adjunto un ejemplo, son 2 forms, 2 formas diferentes de hacerlo...

las tablas estan en el entorno de datos se abren solas al abrir el formulario, en el 2do formulario, la tabla puestos se le activo su indice id_puesto


es lo que se me ocurre
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 yersson
Val: 25
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Seleccionar fila de una grid con doble click

Publicado por yersson (14 intervenciones) el 11/02/2017 21:19:42
Leonardo muchas gracias, ya lo habia resulto con la ayuda de filde, aun asi muchas gracias amigo, tu ejemplo me sirve para otra practica
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