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 !!