Ayuda con evento del Datawindow
Publicado por Carolina (26 intervenciones) el 20/04/2022 21:54:48
Hola amigos nuevamente! Tengo una consulta, no se que estoy haciendo mal:
tengo definido un datawindow (grid) con 10 campos, pero se muestran solo 4 columnas nombre paciente, documento, forma de pago y comentario.
Al Pasar con TAB el campo comentario(que es el ultimo campo mostrado del datawindow pero el anteultimo definido) lo que hago es, insertar una nueva fila para agregar un paciente a ese dw.
En el evento Losefocus del datawindow tengo este codigo:
If getcolumn() = 9 then pb_nuevo.Triggerevent(Clicked!)
Muy bien, ahora el evento Clicked de Pb_nuevo es el siguiente:
integer v_fila
datawin.insertrow(0)
v_fila = datawin.rowcount()
datawin.scrolltorow(v_fila)
datawin.setitem(v_fila, 2, 'DOBLE CLICK ó ENTER para AGREGAR') //aca va el nombre del paciente
datawin.setitem(v_fila, 3, vid_agenda_actual)
datawin.setitem(v_fila, 4, 'M') //forma de pago M=Mensual D=Diario
datawin.setitem(v_fila, 5, vid_usuario)
datawin.setitem(v_fila, 6, datetime(today(), now()))
datawin.setrow(v_fila)
datawin.setcolumn(2)
datawin.setfocus()
Entonces yo quiero que al clickear la tecla ENTER en la columna 2 me aparezca la ventana de busqueda de pacientes, asique, lo puse en el evento Other del datawindow:
String vn_pac, vtipo_doc
Long vId_pac, vdni_pac
If KeyDown(KeyEnter!) AND getcolumn() = 2 then
Open(w_abmcs_pacientes)
vid_pac = Message.doubleparm
If vid_pac > 0 then
Select n_paciente, tipo_documento, nro_documento Into :vn_pac, :vtipo_doc, :vdni_pac From Gtv_pacientes where id_paciente = :vid_pac;
Datawin.Setitem(datawin.getrow(), 1, vid_pac)
Datawin.Setitem(datawin.getrow(), 2, vn_pac)
Datawin.Setitem(datawin.getrow(), 7, vtipo_doc)
Datawin.Setitem(datawin.getrow(), 8, vdni_pac)
Datawin.setcolumn(4)
End if
End if
(y tambien puse el codigo en el evento doblecliked del dw).
El dobleclicked funciona correctamente obvio pero no puedo hacer que, al cambiar la columna presionando la tecla TAB del teclado (sin usar el mouse), me abra w_abmcs_pacientes
No se si lo estoy poniendo en el evento correcto o no, o me falta algo, no se que hice mal.
Muchas gracias!!!!!
tengo definido un datawindow (grid) con 10 campos, pero se muestran solo 4 columnas nombre paciente, documento, forma de pago y comentario.
Al Pasar con TAB el campo comentario(que es el ultimo campo mostrado del datawindow pero el anteultimo definido) lo que hago es, insertar una nueva fila para agregar un paciente a ese dw.
En el evento Losefocus del datawindow tengo este codigo:
If getcolumn() = 9 then pb_nuevo.Triggerevent(Clicked!)
Muy bien, ahora el evento Clicked de Pb_nuevo es el siguiente:
integer v_fila
datawin.insertrow(0)
v_fila = datawin.rowcount()
datawin.scrolltorow(v_fila)
datawin.setitem(v_fila, 2, 'DOBLE CLICK ó ENTER para AGREGAR') //aca va el nombre del paciente
datawin.setitem(v_fila, 3, vid_agenda_actual)
datawin.setitem(v_fila, 4, 'M') //forma de pago M=Mensual D=Diario
datawin.setitem(v_fila, 5, vid_usuario)
datawin.setitem(v_fila, 6, datetime(today(), now()))
datawin.setrow(v_fila)
datawin.setcolumn(2)
datawin.setfocus()
Entonces yo quiero que al clickear la tecla ENTER en la columna 2 me aparezca la ventana de busqueda de pacientes, asique, lo puse en el evento Other del datawindow:
String vn_pac, vtipo_doc
Long vId_pac, vdni_pac
If KeyDown(KeyEnter!) AND getcolumn() = 2 then
Open(w_abmcs_pacientes)
vid_pac = Message.doubleparm
If vid_pac > 0 then
Select n_paciente, tipo_documento, nro_documento Into :vn_pac, :vtipo_doc, :vdni_pac From Gtv_pacientes where id_paciente = :vid_pac;
Datawin.Setitem(datawin.getrow(), 1, vid_pac)
Datawin.Setitem(datawin.getrow(), 2, vn_pac)
Datawin.Setitem(datawin.getrow(), 7, vtipo_doc)
Datawin.Setitem(datawin.getrow(), 8, vdni_pac)
Datawin.setcolumn(4)
End if
End if
(y tambien puse el codigo en el evento doblecliked del dw).
El dobleclicked funciona correctamente obvio pero no puedo hacer que, al cambiar la columna presionando la tecla TAB del teclado (sin usar el mouse), me abra w_abmcs_pacientes
No se si lo estoy poniendo en el evento correcto o no, o me falta algo, no se que hice mal.
Muchas gracias!!!!!
Valora esta pregunta


0