Error al seleccionar un dato

Tengo una grilla, y selecciono con doble click el datos donde estoy parado y con ese dato busco en otra DW para mostrar.
El programa se cae cuando hago doble click sobre otro objeto, ¿cómo hago para que acepte el doble click solo dentro de la grilla y no sobre cualquier botón?

1 respuesta

Respuesta
1
Cuando imprimes un doble click en el grid del datawindow, este ejecuta un evento llamado DOUBLECLICKED, (el cual imagino que estas utilizando).
Este evento es disparado cada vez que imprimes un doble click en cualquier parte del datawindow, o en otras palabras este no reconoce que hiciste doble click en el detalle o la cabecera, o el pie.
Es posible que tu problema este al rededor de estos conceptos.
Para evitar estos precances puedes validar los siguientes datos.
El evento devuelve como parámetros o argumentos, varios valores.
Por ejemplo.
xpos = posicion X del puntero o apuntador
ypos = posicion Y del puntero o apuntador
row = fila que recibio el doble click
dwo = objeto que fue afectado con el doble click.
Con lo anterior expuesto, la solución es muy simple.
Primero: deberás preguntar por el valor de ROW, este deberá ser mayor a 0, pues de lo contrario estas haciendo click en cualquier lugar que no es el detalle.
Segundo: el objeto DWO, contiene el objeto que recibió el doble click por lo que si te interesa que funciones en un objeto determinado simplemente preguntas por el nombre.
DWO.NAME --> esto devuelve el nombre del objeto que tiene el foco
O bien el nombre evaluado sera el descriminado, o sea, si el nombre del objeto es 'cuenta' por ejemplo, ejecuto la ventana de consulta,
if dwo.name = 'cuenta' then "consulta"
O si lo ves desde otro punto de vista, si el nombre del objeto es cuenta entonces no ejecuto la ventana de consulta.
if dwo.name <> 'cuenta' then "consulta"
Ignora la ultima pregunta, lo hice de la siguiente manera :
String ls_codigo
// Para evitar que este fuera de foco
if row<=0 THEN
MessageBox("ATENCION","PARA SELECCIONAR HAGA DOBLE CLICK SOBRE UNA FILA")
else
ls_codigo=this.GetItemString(row,"codigo")
dw_1.retrieve(ls_codigo)
dw_1.setfocus()
end if
===
Muchas gracias, realmente me ayudaste mucho.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas