Power Builder - Error en Close() al cerrar ventana contenedora(mdiHelp).

 
Vista:

Error en Close() al cerrar ventana contenedora(mdiHelp).

Publicado por Eusebio (7 intervenciones) el 30/01/2020 12:09:42
Hola amigos,

Tengo una ventana llamada w_cd_cargas que llama a otra w_tickets, ambas son de tipo Main! y las contiene una w_principal de tipo mdiHelp!.

Tengo el codigo
1
2
3
4
5
6
7
w_tickets.Close():
uo_cargas ob_cargas
ob_cargas=create uo_cargas
ob_cargas.m_valida_venta_en_ruta_avit(gvs_num_salida,SQLCA)
destroy(ob_cargas)
lvo_ventanapadre.enabled=true
lvo_ventanapadre.dw_editcab.retrieve(gvs_num_salida)

DONDE:
- lvo_ventanapadre: Variable de instancia que es la ventana que la ha llamado(w_cd_cargas).

Cuando cierro la ventana w_tickets ejecuta el Close() sin problemas pero cuando cierro la w_Principal da error en la linea:
1
2
lvo_ventanapadre.dw_editcab.retrieve(gvs_num_salida)
de w_tickets.Close().

El error que se presenta es:
Título = Error-1
Mensaje: "Database transaction information not available,"
"Call SetTrans or SetTransObject function."


¿Quizás las operaciones que se están haciendo en el Close() no se deben hacer ahí?

¿Alguna idea de cual es el problema? ...por favor me avisan si requieren mas detalles.

Muchas gracias por anticipado.
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
Imágen de perfil de Leonardo Daniel A.
Val: 816
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Error en Close() al cerrar ventana contenedora(mdiHelp).

Publicado por Leonardo Daniel A. (359 intervenciones) el 02/02/2020 03:33:40
Nunca debes hacer un Retrieve en un Evento Close, porque no sabes cuando va a terminar el retrieve.

no se si funcione, pero podrias intenter podrias poner una variable de instancia en la ventana

1
Boolean ib_termino = FALSE

y en el evento RetrieveEnd lo pones en true

1
lvo_ventanapadre.dw_editcab.ib_termino = TRUE

y en el evento Close

1
2
3
4
5
lvo_ventanapadre.dw_editcab.retrieve(gvs_num_salida)
 
if lvo_ventanapadre.dw_editcab.ib_termino THEN
  w_tickets.Close().
end if
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

Error en Close() al cerrar ventana contenedora(mdiHelp).

Publicado por Bunker (60 intervenciones) el 04/02/2020 11:27:07
hola
otra es que crees un evento por ej : ue_post_close
alli el w_tickets close()

en el evento close
luego del retrieve

PostEvent ("ue_post_close")

se ejecutara luego de finalizado el retrieve

saldu2
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