EditDialog ....

Obsydian, Cool:Plex, Advantage Plex, AllFusion Plex...

Moderadores: Jorge Ubeda, pacopicon

EditDialog ....

Notapor cesar.jorge » Mié Oct 05, 2005 2:57 pm

Realizado un mantenimiento de una entidad heredando de EditDialog, y haber confeccionado un laborioso panel Insert, insertando bastante código en el diagrama de acción, me encuentro que he de repetir todo el proceso para el panel Update. Vaya !!

¿ Puede aprovecharse el trabajo realizado en el panel Insert ?
cesar.jorge
 
Mensajes: 6
Registrado: Mié Oct 05, 2005 2:43 pm

Notapor Administrador » Mié Oct 05, 2005 3:33 pm

Hola César :)

Pues que yo sepa, no, ya que los campos del Update están en una región que se llama DetailP y los del Insert en InsertP.

Saludos,

Paco Picón
Administrador
Site Admin
 
Mensajes: 13
Registrado: Lun Oct 03, 2005 10:56 am

pienso que es una de las cosas pendientes de mejorar de plex

Notapor pactorre » Jue Oct 06, 2005 11:09 am

Creo que uno de los puntos en los que Plex, claramente podría mejorar es en la flexibilidad y la comodidad para el usuario en el diseño de los formularios. Tal vez algunas opciones que permiten guardar un diseño como una plantilla, o que permitieran exportarlo de alguna forma podrían estar bien.

Saludos,

Paco de la Torre
pactorre
 
Mensajes: 6
Registrado: Lun Oct 03, 2005 12:21 pm

Notapor Administrador » Jue Oct 06, 2005 11:53 am

Eso se puede hacer en muchos casos... Si defines un Panel con una región (por ej. DetailP) con unos campos y controles determinado, los paneles que hereden de ahí, heredarán la plantilla. El problema es que en el EditDialog, el Update y el Insert tienen nombres distintos para las regiones que muestran los campos...

Saludos,

Paco Picón
Administrador
Site Admin
 
Mensajes: 13
Registrado: Lun Oct 03, 2005 10:56 am

Manejo de Herencia Multiple

Notapor Julio Rosenberg » Vie Oct 07, 2005 1:23 am

Lo unico que se puede hacer es especializar la clase EditDialog, de tal forma que tanto Insert como Upate hereden de una función que dependa de la entidad. Alli se podría crear una región nueva común a ambos con los campos y la lógica que se quiera compartir. Sería volver al esquema que tenia User Maintained Entity o Grid Maintained Entity en las viejas clases de Obsydian.
Especializar una clase no es facil y lleva trabajo, pero si es algo que se va a hacer comunmente, es la solución

Saludos

Julio Rosenberg
Julio Rosenberg
 

Solución !

Notapor cesar.jorge » Lun Oct 10, 2005 11:43 am

Creo que he logrado una solución bastante aceptable.

primero heredar la función Update de Insert.
    Entidad.EditSuite.Update IS A Entidad.EditSuite.Insert

con esto obtenemos un panel Update con 2 regiones (la de Update generada por plex y la personalizada en Insert).
    1. Ocultamos las regiones DetailP e InsertButtonP. O sea, nos quedamos con la region de edicion de Insert y con los botones de Update.
    2. A los campos edit que sean claves de la entidad se les pondrá la propiedad Disabled = Yes.


En el diagrama de acción lo siguiente:

en Post Point End Update get panel data
Código: Seleccionar todo
Get  InsertP
Set  DetailP = InsertP

en Post Point End initialize
Código: Seleccionar todo
Set  InsertP = DetailP
Put  InsertP


Por último en la función Grid hay que modificar el call a la función Update y completar los parámetros con los de GridP.

Saludos !!
cesar.jorge
 
Mensajes: 6
Registrado: Mié Oct 05, 2005 2:43 pm

Re: Solución !

Notapor Julio Rosenberg » Mar Oct 11, 2005 5:48 pm

Cesar:

La solucion es buena, pero vas a tener que volver a escribirla en cada entidad que quieras usarla. Por eso te decia de especializar Edit Dialog con una nueva funcion que tenga una region nueva comun a Insert y Update. Lo que puedes hacer es :

Nueva EditDialog IS A EditDialog
Nueva EditDialog Function InsertUpdateComun

A esta nueva funcion le agregas la region comun y la logica necesaria con una meta operacion que pregunte si estas en Insert o update y luego haces que Insert y Update hereden de ella.

Luego en lugar de hacer Entidad is a EditDialog, haces
Entidad IS A Nueva EditDialog

Saludos

Julio Rosenberg

cesar.jorge escribió:Creo que he logrado una solución bastante aceptable.

primero heredar la función Update de Insert.
    Entidad.EditSuite.Update IS A Entidad.EditSuite.Insert

con esto obtenemos un panel Update con 2 regiones (la de Update generada por plex y la personalizada en Insert).
    1. Ocultamos las regiones DetailP e InsertButtonP. O sea, nos quedamos con la region de edicion de Insert y con los botones de Update.
    2. A los campos edit que sean claves de la entidad se les pondrá la propiedad Disabled = Yes.

En el diagrama de acción lo siguiente:

en Post Point End Update get panel data
Código: Seleccionar todo
Get  InsertP
Set  DetailP = InsertP

en Post Point End initialize
Código: Seleccionar todo
Set  InsertP = DetailP
Put  InsertP


Por último en la función Grid hay que modificar el call a la función Update y completar los parámetros con los de GridP.

Saludos !!
Julio Rosenberg
 

Re: EditDialog ....

Notapor Cock146 » Mar Feb 03, 2015 8:56 am

y haber confeccionado un laborioso panel Insert, insertando bastante código en el diagrama de acción, me encuentro que he de repetir todo el proceso para el panel Update. Vaya !!
Our complete set of 70-685 test questions and mcse exam cost study guides you in exact way so you will pass your real mcsa pdf exam www.usuhs.mil with flying colors of Maryland University of Integrative Health
Cock146
 
Mensajes: 1
Registrado: Mar Feb 03, 2015 8:54 am


Volver a Plex

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

cron