Power Builder - Objeto Custom Visual

 
Vista:
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Objeto Custom Visual

Publicado por Antonio (1271 intervenciones) el 24/04/2018 23:25:17
Un saludo a todos:

Resulta que cree un objeto Custom Visual, dentro de este objeto puse varios objetos de tipo commandButton para poder guardar, insertar, modificar y recuperar datos de un datawindow .


Dicho datawindow, esta en una ventana, en esa ventana inserto el objeto custom visual y aparecen todos los botones, ese mismo objeto lo inserto en otra ventana y así sucesivamente.

El objetivo es usar ese objeto en diferentes ventas para no estar insertando los commandbutton cada vez que se genere una ventana.

Mi pregunta es la siguiente:

1) Cada vez que el usuario de un clic en el boton de recuperar ¿como puedo identificar en que ventana esta y en que datawindow tengo que hacer el retrieve?

2) en el caso de tener na ventana donde utilizo un objeto de tipo tab control, como puedo identificar en que tab se encuentra en ese momento el usuario.

Lo anterior, necesito hacerlo dinámicamente la identificación de los objetos para no usar un Choose case o un IF y determinar en que ventana esta el usuario y que datawindows esta en ese momento.

Espero haberme explicado, y agradeciéndoles de antemano su fina atención y apoyo.
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: 821
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Objeto Custom Visual

Publicado por Leonardo Daniel A. (481 intervenciones) el 25/04/2018 22:39:42
Hola creo que estas aplicando mal la tenica POO....

Debes pensar que tipos de DW necesitas y que funciones deben hacer...

* DW para hacer mantenimientos ( dw_parent_mtos )
* Funciones de agregar, borrar, actualizar, etc.
+ Solucion crear un objeto tipo DW donde pongas funciones como of_agregar que se encargue de agregar el registro y moverse
a ese registro, of_eliminar donde preguntes si deseas eliminar el registro y si es si, lo elimine de la bd y regresar.,
of_actualizar donde hagas las comprobaciones de que todo esta bien, AcceptText, update() =1, y regresar true
* donde mandes llamar a ese objeto deberia ser algo como if dw_datos.of_actualizar( ) = true then commit ;
* Tener una ventana de mantenimientos (w_parent_mtos)
* donde pegaras tu objecto dw_parent_mtos, y pondras los botones, en esos botones llamaras a las funciones
de tu DW, suponiendo que tu DW se llama dw_info en el boton Agregar, tendrias dw_info.of_agregar()
esto insertaria el registro y se moveria al registro nuevo, y asi con cada boton.....

* Luego creas una ventana nueva para hacer mantenimiento a tu tabla (heredando de w_parent_mtos y en te aparecera tu DW y tus
botones.... al DW le asignas tu DW que diseñaste de tu tabla para darle mantenimiento, la guardas como w_mto_clientes (ejemplo),
en el evento Open de tu ventana pues le pones el settransobject a tu dw_info ( o como la hayas nombrado )

y listo ya tienes una ventana de mantenimientos en base a herencia..... ya tus siguientes ventana las puedes ir haciendo igual heredando de w_parent_mtos, o guardando una ya hecha como w_mto_clientes con otro nombre y cambiarle los datos del DW, etc, etc.,


Asi tengo yo, un DW para mantenimientos de 1 registro, un DW de mantenimientos para cuando son varios registros (detalle de facturas por ejemplo, donde el of_guardar valida que no haya registros sin datos), un DW para consultas

y Con sus respectivas padre para matenimiento 1 registro, y consultas...

cuando un mantenimiento requiere de 2 dw de mto, lo que hago es heredar de w_parent_mtos, y luego ahi inserto otro dw_parent_mto_detalle, y le asigno mi DW de detalle de factura (ejemplo) y la ventaja de que puedes modificar colores, de ventanas, etc.
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