DesGX 2.1 Patterns

download DesGX 2.1 Patterns

of 23

Transcript of DesGX 2.1 Patterns

  • 307

    Patterns

  • 308

    Patterns: Escenario

    Filtro sobre losdatos

    Paginacin

    Teniendo la transaccin Country y la transaccin Customer, queremos lograr hacer la aplicacin ms vistosa, con consultas con vistas ms completas y con algn aumento de funcionalidad.

    Por ejemplo, trabajar con los pases de una forma ms vistosa y amigable que la que brinda la sola transaccin. Visualizar en un grid los pases existentes, con la posibilidad de filtrar por nombre de pas, y fijando paginado al grid, de forma tal que muestre un nmero fijo de registros por pgina...

  • 309

    Patterns: Escenario

    New Country

    Update Country

    Delete Country

    Transaction

    ...as como poder ingresar un nuevo pas (mediante la transaccin Country), o seleccionar uno de los mostrados en el grid, para poder modificarlo o eliminarlo...

  • 310

    Patterns: Escenario

    ...o incluso ver la informacin completa de ese pas, incluyendo los clientes asociados...

  • 311

    Definicin Patrones que se pueden aplicar a una KB paraimplementar automticamente cierta funcionalidad.

    Patterns

    Patrones disponibles:

    Work With Category

    Selectores dentro de las Transacciones

    Generalidades

    Una vez aplicado el patrn, todos los objetos generados quedan como parte de la Base de Conocimiento.

    Es natural al desarrollar aplicaciones, tener que resolver partes muy similares pero no exactamente iguales.

    Por ejemplo, si en una Base de Conocimiento se tienen modelados los objetos de la realidad Customersy Countries, a pesar de ser dichos objetos bien diferentes, los Work With Customers y Work WithCountries respectivamente, tienen muchas cosas en comn: un grid en el form, un conjunto de variables para utilizar en filtros, opciones de ordenamiento de la consulta, invocaciones a la transaccin correspondiente para actualizar la base de datos, etc..

    Surgen entonces los Patterns, que ofrecen la posibilidad de aplicar un patrn (pattern) a las instancias que se deseen de una Base de Conocimiento, y generar todos los objetos GeneXus necesarios para implementar cierta funcionalidad, teniendo en cuenta sus datos especficos.

    Siguiendo con el ejemplo mencionado inicialmente, es posible aplicar el patrn Work With a la Base de Conocimiento, de forma tal que partiendo de las transacciones Customer y Country, se obtenga todo el desarrollo correspondiente al Work With Customers y Work With Countries para ambiente web(pantallas vistosas que implementan las consultas, con ordenamientos, filtros, invocaciones a las transacciones correspondientes, y ms).

  • 312

    PatternsWork With

    Transaccin

    View

    Genera a partir de una Transaccin:

    Pantalla Work With: consulta interactiva, mltiples ordenamientos,filtros, invocacin a la transaccin, etc.

    WorkWith

    Pantalla View: Registro seleccionado, con la informacin asociada.

    La pantalla Work With ofrece: Consulta interactiva Mltiples ordenamientos Filtros Invocacin a la Transaccin en los diferentes modos (insert, update, delete, display) Posibilidad de incluir invocadores propios a objetos Link en cada lnea de la grilla a la pantalla View

    La pantalla View muestra: La informacin del registro seleccionado en la grilla Work With Un tab control con:

    Un tab con la informacin del registro Un tab por cada tabla subordinada a la tabla base del registro en la grilla Work With.:

  • 313

    PatternsAplicacin

    Abrir la Transaccin.

    Seleccionar el patrn a aplicar (aparecer la instancia por defecto).

    Marcar la opcin Apply thispattern on save.

    Grabar la Transaccin.

    Para aplicar el pattern sin demoras, alcanzar con editar la instancia (selector Work With de la transaccin), marcar el check box y grabar. Listo! Con eso se crearn automticamente los objetos GeneXus que implementan el pattern (en particular la pantalla de seleccin y filtro y la pantalla de Viewque mostramos antes). Asimismo se modificar la transaccin para que ahora reciba por parmetro el modo (Insert, Update, Delete, Display) y el pas.

  • 314

    PatternsWork With: objetos generados

    Consecuencia: Se generan en la KB los objetos que ya vimos en ejecucin. Dnde? En el Folder View, bajo la propia transaccin:

    Una vez grabada la instancia, en el folder view, bajo el nombre de la transaccin, aparecer el nombre del pattern aplicado a la misma (en nuestro ejemplo WorkWithCountry) y todos los objetos que GeneXusdebe crear para implementarlo.

    En nuestro caso se crearn 2 objetos de tipo Web Component, y 2 objetos de tipo Web Panel. Son muy similiares. La diferencia es que un Web Component puede incluirse dentro de otro objeto. No entraremos en detalles en este momento.

  • 315

    PatternsEjemplo

    Aplicacin del pattern Work With a la transaccin Country.

    N

    1

    Al aplicar el pattern Work With a la transaccin Country, se crear: Pantalla Work With:

    Tendr una grilla con los atributos de la transaccin: CountryId y CountryName. Se podr ordenar y filtrar por CountryName, por ser CountryName el atributo descriptor. Se podr invocar a la transaccin en los diferentes modos (Insert, Update, Delete).

    Pantalla View: Mostrar dos tabs. El primer tab tendr la informacin del pas seleccionado, y el segundo tendr la informacin de los clientes pertenecientes a dicho pas (puesto que existe unarelacin 1-N entre las tablas Country y Customer asociadas a las transacciones de igual nombre).

  • 316

    PatternsComenzando a asociar... pantalla Work With

    Se sita en el pasindicado, o muestratodos los pases.

    Son muchas las propiedades que se ofrecen en las instancias correspondientes al patrn Work With, para personalizar el comportamiento de los objetos que se generarn. A continuacin describimos algunas de ellas.

    El nodo Selection ofrece las propiedades relacionadas a la pantalla Work With que se generar para la instancia. Sus sub-nodos son:

    Modes (Ins, Upd, Del, Dis)Este nodo permite definir en cules modos se ofrecer invocar a la transaccin. Las posibilidades y sus valores por defecto son:

    Insert: TrueUpdate: TrueDelete: TrueDisplay: False

    En la instancia aparece al lado de cada una de las propiedades anteriores. Dnde se configura este valor por defecto? Lo veremos unas pginas ms adelante.

    Para cada modo podr especificarse una condicin. Se proveen las siguientes propiedades para ese propsito: Insert Condition, Update Condition, Delete Condition, Display Condition.

    Si se define una condicin asociada a un modo, la invocacin para ese modo solo se habilitar si la evaluacin de la condicin es verdadera (Ejemplo: CountryId=10).

  • 317

    PatternsPersonalizacin... pantalla Work With

    Agregar,eliminar,ocultar atributos ovariables delgrid.

    Especificar losmodos deinvocacin alatransaccin.

    Definir rdenes yfiltros.

    Agregar,eliminar,modificar Acciones.

    Posicionarse en el nodo correspondientey presionar el botn derecho del mouse.

    Attributes

    Este nodo permite definir cules atributos se desean mostrar en el grid (y para cada atributo, se pueden personalizar sus propiedades). Por defecto muestra todos los atributos de la estructura de la transaccin.

    Orders

    Es posible ofrecer al usuario final varios rdenes posibles para ver el resultado de la consulta (es decir, las lneas mostrando los datos en el grid). Utilizando el botn derecho del mouse se puede definir un nuevo orden (su nombre y composicin). Cada orden puede estar compuesto por varios atributos (pudiendo indicar para cada uno de ellos si se desea orden ascendente o descendente). Se presentarun combobox en la pantalla Work With ofreciendo todos los rdenes posibles de seleccionar, para que el usuario final elija uno y los datos se presenten en el grid ordenados por el mismo. Sin embargo, el control grid ya presenta la posibilidad de ordenar en ejecucin, simplemente cliqueando sobre la columna por la que se desean tener ordenados los datos. Pero hay que tener en cuenta que esa funcionalidad solo permite ordenar en ejecucin los datos de la pgina del grid que se est mostrando.

    Filter

    Este nodo permite definir condiciones de filtro, para que en el grid se muestren solo los registros que cumplan con las mismas.

    Actions

    El nodo Actions permite incorporar acciones propias a la pantalla Work With. Es decir, permite agregar botones (dentro o fuera del grid) que invoquen a los objetos que se indiquen, con sus correspondientes parmetros. Si bien el nodo Actions no est visible por defecto, estando posicionado en el nodo Selection y presionando el botn derecho del mouse, se ofrecer la opcin Add Actions que lo agregar. Una vez agregado este nodo, estando posicionado sobre el mismo y presionando el botn derecho del mouse, se ofrecer la opcin Add Action que permitir agregar una accin con su nombre de accin, caption, objeto invocado, etc.

  • 318

    PatternsPersonalizacin - Ejemplos

    1) Ocultar atributo CountryId del grid.

    F4

    Por qu ocultarlo en lugar de eliminarlo?

    El atributo CountryId, a diferencia del CountryName, no puede ser eliminado del grid, debido a que es el atributo que se enva a la transaccin Country cuando el usuario desea modificar o eliminar el pas mostrado en una lnea del grid del Work With.

  • 319

    PatternsPersonalizacin - Ejemplos

    2) Eliminar modo Delete desde el grid.

    F4

    Al editar las propiedades estando posicionados en el nodo de la instancia que se muestra, podemos observar que cada uno de los modos en que se puede invocar una transaccin (para insertar, modificar, eliminar o incluso deplegar) estn listados como propiedades. Podemos ver tambin que aparece una propiedad Export que permite exportar los datos a una planilla excel.

    Otra vez aqu podemos apreciar que cada una de las propiedades tiene el valor que an no sabemos de dnde es tomado. Pero si queremos fijar un valor independiente de cul sea el default, podemos editar el combo box que presentar tres valores: , true, o false.

    Hemos fijado el valor de la propiedad Delete en false. Podemos ver en ejecucin la repercusin. Ya no aparece en el grid la primera columna que contena la imagen que permita eliminar el pas. Ahora no se podr desde esta pantalla eliminar pases.

    Obsrvese tambin cmo ha desaparecido del grid el atributo CountryId. Lo habamos ocultado en la pgina anterior.

  • 320

    PatternsPersonalizacin - Ejemplos

    3) Agregar una Accin a la pantalla Work With Countries que

    invoque al proceso de facturacin: BillingProcess.

    a) Clic con el botn derecho

    sobre el nodo Selection

    b) Clic con botn derecho sobreel nodo Actions que aparecial final.

  • 321

    PatternsPersonalizacin - Ejemplos

    c) Definir la Accin editando sus

    propiedades (F4).

    Botn fuera del grid.

    Nombre de la accin y objeto que se invoca.

    d) Finalmente en ejecucin, se

    observa el botn fuera del grid.

    Ya habamos definido el objeto BillingProcess para realizar la facturacin del mes a todos los clientes. Aqu estamos agregando un botn fuera del grid, que al presionarlo llama a este otro objeto GeneXusque habamos creado antes.

  • 322

    PatternsAsociando... pantalla View

    El nodo View por su parte, ofrece las propiedades relacionadas a la pantalla View que se generar para la instancia. Muestra toda la informacin de un registro, que fue seleccionado en el grid del Work With(la informacin del registro es mostrada en una solapa de un tab control, y adems hay una solapa con un grid por cada tabla directamente subordinada, para mostrar la informacin relacionada).

  • 323

    PatternsPersonalizacin - Ejemplos

    1) Quitar atributos CustomerGender y CustomerStatus del tab Customer de la pantalla View Country.

    a) Posicionarse sobre el atributoy borrarlo con la tecla de eliminacin del teclado o botn derecho/Delete.

    En este caso si no queremos que los atributos CustomerGender y CustomerStatus se vean en el grid en ejecucin, no necesitamos ocultarlos. Podemos directamente eliminarlos.

  • 324

    PatternsPersonalizacin - Ejemplos

    2) Agregar un filtro por CustomerName en el tab Customer.

    a) Click con el botn derecho

    sobre el tab Customer

    b) Indicar el atributo sobre el cual filtrar,

    editando las propiedades (F4).

    Una vez que ejecuta el paso a) y elige Filter aparecer un nuevo nodo Filter inmediatamente despus del nodo Attributes, con 2 subnodos: Attributes y Conditions.

    Luego, en el paso b), deber posicionarse en el subnodo Attributes y hacer botn derecho, donde se le ofrecer la posibilidad de agregar un atributo de filtro. Al editar las propiedades, usted deber presionar el combo box que le desplegar una ventana donde ingresar el atributo (en nuestro caso, CustomerName). Con esto se crear automticamente una variable de igual nombre que el atributo &CustomerName, que ser el control que aparecer en ejecucin para que el usuario digite all el filtro. Veamos el paso siguiente...

  • 325

    PatternsPersonalizacin - Ejemplos

    (Continuacin)

    c) Definir la condicin correspondiente.

  • 326

    PatternsValores por defecto para las propiedades

    Propiedades (F4)

    El patrn Work With adems de generar objetos nuevos, tambin modifica las transacciones, para que sean invocadas por los objetos generados por el pattern, agregndoles regla parm, etc.Relacionado a esto, cada instancia contiene la propiedad UpdateTransaction, que ofrece los siguientes valores:

    Do not update: La transaccin no ser modificada (web form, reglas y eventos sern mantenidos).Only rules and events: Solo las reglas y eventos se modificarn, no se modifica el web form. Apply WW Style: La primera vez que se aplique el patrn, el comportamiento ser el mismo que si se hubiese seleccionado el valor Create Default. A partir de la segunda vez que se aplique el patrn, no se modificar la data area del form de la transaccin (por si se personaliz y se desea mantener), y s se modificar el style area, as como los eventos y reglas. Create default: Reglas, eventos y form de la transaccin (tanto data area como style area) sern modificados. En lo que respecta al form, ser como seleccionar la opcin Apply default (Web Form).

    El valor por defecto para esta propiedad es Only rules and events.

    En cuanto a las propiedades AfterInsert, AfterUpdate y AfterDelete, permiten definir el comportamiento luego de que se inserta, modifica o elimina un registro.

    Los valores posibles para cada una de ellas son: Return to caller Go to View Go to Selection

    Otra vez el valor . Lleg el momento de ver dnde se configuran todos estos valores pordefecto que hemos ido encontrando en la instancia...

  • 327

    PatternsPattern Settings

    Configuracin de propiedades generales (para todas las instancias).

    En este lugar estn centralizados los para toda instancia. Podemos ver que en el nodo Template se ofrecen algunas de las propiedades que mencionamos en la pgina anterior.

    El tamao de pgina de los grids del work with, que en las imgenes anteriores era de 3 (se mostraban 3 lneas por pgina del grid) se configura en el nodo Grid. El valor por defecto de esta propiedad es Page.Rows. Es decir, el valor del dominio enumerado Pages creado por GeneXus automticamente al aplicar el pattern por primera vez. El valor que tiene Page es 10. Nosotros lo habamos cambiado a 3 para que nos entraran las imgenes completas en estas slides.

  • 328

    TodoslosobjetosgeneradosporPatterns estnbasadosenelesquemadeDefaults deGeneXus.CadapartedeunobjetoesgeneradacomoDefault..

    LaimplementacinbasadaenDefaults permitetenerdinamismoentrelaTransaccinyelpatrn.

    Eldinamismosemantieneparatodaslaspartesdefault delobjeto OpcinEdit /Apply Default delMen paravolveraldefault deunaparteode

    todaslaspartes(All parts) Ejemplo:siagregamosatributoCountryFlag alaestructuradeCountry,qu

    pasar conelgrid delWork With Countries?SisteconservaelDefaul,seragregadaautomticamentecolumnaCountryFlag algrid.

    No es necesario reaplicar el patrn, los cambios se ven al abrir nuevamente el objeto

    PatternsDinamismo entre la Transaccin y Patterns

    El dinamismo mencionado se mantiene para todas las partes default de los objetos.

    Todos los objetos generados por Patterns estn basados en el esquema de Defaults de GeneXus. Cada parte (Form, Reglas, Eventos) de cada objeto es generado como Default. Si se modifica alguna parte del objeto, sta deja de ser Default.

    Por ejemplo, si se modifica el web form de un WW (no queda como default), y se agrega un nuevo atributo a la transaccin, no se va a actualizar automticamente el grid del WW con ese atributo (o sea, no se agregar dicho atributo).

    La implementacin basada en Defaults permite tener dinamismo entre la Transaccin y el patrn

    Cambiar propiedades en la definicin del patrn (Pattern setting) Cambios en la instancia (agregar un nuevo filtro) Cambios en la Transaccin (agregar un nuevo atributo)

    Si se quiere volver al dinamismo, se deber tener nuevamente las partes como default.Para esto, se debe seleccionar desde el Men Edit / Apply Default (la parte donde se tiene abierto el objeto) o Apply Default (All parts), lo cual vuelve a default todas las partes que se haban modificado.

  • 329

    PatternsCmo borrar los objetos generados por Patterns

    Seleccionar la instancia en el Folder View, presionar botn derecho / opcin Delete o presionar la tecla DEL. Aparecer el mensaje:

    Al confirmar el mensaje:

    Se borrarn todos los objetos generados por Patterns asociados a la Transaccin.

    Se borrarn todos las reglas y eventos agregados por Patterns en la Transaccin.

    Se desmarcar la opcin Apply this pattern on save de la Transaccin.