Anda di halaman 1dari 23

305

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

306

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

307

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

308

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 Customers y
Countries, a pesar de ser dichos objetos bien diferentes, los Work With Customers y Work With Countries
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
g entonces los Patterns, q
que ofrecen la p
posibilidad de aplicar
p
un p
patrn (p
(pattern)) a las instancias q
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).

309

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.:

310

Para aplicar el pattern sin demoras, alcanzar con editar la instancia (selector Work With de la transaccin),
marcar el check box y grabar.
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 View que mostramos
antes). Asimismo se modificar la transaccin para que ahora reciba por parmetro el modo (Insert, Update,
Delete, Display) y el pas.

311

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 GeneXus debe
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.

312

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 una relacin 1-N entre las
t bl Country
tablas
C
t y Customer
C t
asociadas
i d a las
l transacciones
t
i
d igual
de
i
l nombre).
b )

313

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.
generarn A continuacin describimos algunas de ellas.
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: True
Update: True
Delete: True
Display: False
E la
En
l instancia
i t
i aparece <default>
d f lt all lado
l d de
d cada
d una de
d las
l propiedades
i d d anteriores.
t i
Dnde
D d se configura
fi
este
t
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:
j p CountryId=10).
y
)

314

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).
descendente) Se presentar un 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.
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.
invocado,
etc

315

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
Country cuando el usuario desea modificar o eliminar el pas mostrado
en una lnea del grid del Work With.

316

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,
insertar modificar,
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 <default> 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: <default>, 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.

317

318

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

319

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,
instancia.
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).

320

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

321

Una vez que ejecuta el paso a) y elige Filter aparecer un nuevo nodo Filter inmediatamente despus del
nodo Attributes,
Attributes con 2 subnodos: Attributes y Conditions.
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...

322

323

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
l eventos
t y reglas.
l
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:
<default>
Return to caller
Go to View
Go to Selection
Otra vez el valor <default>.
<default> Lleg el momento de ver dnde se configuran todos estos valores por defecto que
hemos ido encontrando en la instancia...

324

En este lugar estn centralizados los <default> para toda instancia. Podemos ver que en el nodo Template se
ofrecen algunas de las propiedades que mencionamos en la pgina anterior.
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.

325

El d
dinamismo
a s o mencionado
e c o ado se mantiene
a t e e pa
para
a todas las
as pa
partes
tes de
default
au t de los
os objetos
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
di h atributo).
dicho
t ib t )
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.

326

327

Anda mungkin juga menyukai