SoloCodigo
Programación General => Power Builder => Mensaje iniciado por: f0kylm en Miércoles 1 de Diciembre de 2004, 16:32
-
Hola:
Estoy programando una aplicación en PB6.5 y tengo que hacer que se muestre una ventana cuando estando posicionado en un determinado campo de un datawindow presione la tecla F1, bueno yo he creado un nuevo evento de usuario con el Event Id pbm_dwnkey y tiene el siguiente codigo:
--------------------------------
If Key = KeyF1! Then
Open(w_dependencia)
End If
--------------------------------
El problema que tengo es que la ventana se muestra cuando estoy posicionado en cualquiera de los campos del datawindow, como puedo hacer para que el evento responda solo estando posicionado en un determinado campo???
Espero que me puedan ayudar, saludos a todos...
f0kylm :lightsabre:
-
Hola!!
Lo que debes hacer es lo siguiente:
string v_columna
v_columna = cdw_datos.getcolumnname()
if isnull(v_columna) then return
if v_columna = 'nombre de la columna ' then
If Key = KeyF1! Then
Open(w_dependencia)
End If
end if
-
Hola, mira yo para hacer eso tuve que hacer un par de cosas.
Disparas el siguiente codigo cuando la columna actual sea la deseasa
If en el datawindow agregarle el evento kewydown
Dentro de este evento ,el codigo es el siguiente
PowerObject lpo_object
window lw_activa
If dw_Employee.GetColumnName() = '??' then
IF KEY = KEYF1! THEN
lpo_object = This
DO UNTIL lpo_object.Typeof() = window!
lpo_object = lpo_object.GetParent()
IF lpo_object.Typeof() = window! then
lw_activa = lpo_object
lw_activa.Event key(key,keyflags)
end if
LOOP
END IF
End if
Esto pasa porque cuando oprimes el F1 el focus esta en el datawindow y al tener programación en ese punto no dispara nada.
Y despues dentro del evento key de la ventana puse que abriera la otra ventana
por ejemplo
IF key = KeyF3! THEN
open (wc_clientes)
End if