You are on page 1of 20

Reporting (objeto Query)

En muchas ocasiones necesitamos realizar consultas a la base de datos para analizar la


informacin y poder tomar decisiones.
Podemos necesitar agrupar la informacin por uno o varios criterios, realizar clculos, y
visualizar finalmente el resultado en una forma particular

como podra ser

una tabla esttica, o sea filas y columnas fijas:

Page

Video filmado con GeneXus X Evolution 2

una tabla dinmica, que permite por ejemplo intercambiar columnas de lugar y
agrupar la informacin:

o un grfico:

Page

Video filmado con GeneXus X Evolution 2

El objeto Query nos permite crear estas consultas de una forma simple e intuitiva,
aumentando el valor de la informacin obtenida de la base de datos.

Page

Nuestro objetivo ser crear una consulta que nos devuelva solamente las ciudades de Francia,
cada una de ellas con su respectiva cantidad de atracciones tursticas.

Video filmado con GeneXus X Evolution 2

Vayamos entonces a GeneXus y comencemos por crear un objeto de tipo Query, de nombre
AttractionsQuery

Page

En la Estructura

Video filmado con GeneXus X Evolution 2

haremos la definicin de la consulta.


Analicemos un poquito el significado de estos componentes

Page

Aqu debemos mencionar todos los atributos que van a participar de la consulta. La
declaracin es simple y se hace en forma de lista plana.

Atributos:

Video filmado con GeneXus X Evolution 2

As que agreguemos los atributos que queremos ver en nuestra consulta, o sea, CityName y
CountryName:

Grabamos.
Aqu en la columna Description

veremos la etiqueta con que se visualizarn los atributos en el resultado de la consulta.

Page

Pero adems de atributos

Video filmado con GeneXus X Evolution 2

aqu tambin es posible definir funciones (incluso funciones anidadas), como por ejemplo
Count, Sum y Average

En nuestro ejemplo, nos interesa ver la cantidad de atracciones tursticas de cada ciudad, as
que definimos
Count(AttractionName)

Grabamos.

Page

En el caso de haber definido una funcin sobre un atributo

Video filmado con GeneXus X Evolution 2

se podr indicar que el resultado se visualice como porcentaje. Esto se realiza a travs de la
opcin Show as percentage

Page

presionando el botn derecho del mouse, o presionando F4 y editando las correspondientes


propiedades.

Video filmado con GeneXus X Evolution 2

Pasemos a los Parmetros:

Aqu es posible declarar parmetros que se reciben para ser utilizados en la consulta, si es que
corresponde, ya que no toda consulta recibe parmetros.
Se definir el nombre, la descripcin, el tipo de dato, si est basado en un dominio o atributo,
si es coleccin y el valor predeterminado, si corresponde.
En nuestro ejemplo no necesitamos declarar parmetros.
Veamos ahora los Filtros:

Aqu se especificarn los filtros a aplicarse en la consulta.

Page

Podemos definir un grupo filtros, que por defecto sern unidos por AND

Video filmado con GeneXus X Evolution 2

pero tambin podemos usar el conector OR

Algunas de las sintaxis posibles para definir filtros son:

10

atributo igual a un valor

Page

Video filmado con GeneXus X Evolution 2

atributo igual a una lista de valores declarados explcitamente, lo cual se especifica as:

atributo que est comprendido dentro de un rango de valores, as:

y de esta forma podramos definir otros grupos con distintas combinaciones de filtros.

Video filmado con GeneXus X Evolution 2

Page

11

(u otra comparacin por mayor, mayor o igual, etc.)

Sigamos ahora con nuestro ejemplo. Solo queremos ver la consulta para las ciudades de
Francia, as que declaramos el siguiente filtro:
CountryName =France

Grabamos.
Y finalmente en la seccin Order by

podemos declarar el orden deseado para visualizar la informacin resultante de la consulta.

Page

12

En nuestro caso vamos a especificar que la consulta se vea ordenada por CityName, as que
declaramos ese orden:

Video filmado con GeneXus X Evolution 2

Grabamos.
Si quisiramos un orden descendente podemos declararlo en las propiedades:

Bien. Ya hemos terminado de definir nuestra consulta. Cmo ser ver el resultado?

Page

13

Vayamos a la solapa Preview.

Video filmado con GeneXus X Evolution 2

Como una tabla fija

Como una tabla dinmica

Page

14

Aqu podemos precisamente ver una vista previa del resultado de la consulta, y podremos
hacerlo en tres formas diferentes

Video filmado con GeneXus X Evolution 2

15

O como un grfico

Page

Video filmado con GeneXus X Evolution 2

Es importante mencionar que si bien aqu podemos ver el resultado de la consulta en el propio
objeto Query definido, esto no sucede cuando ejecutamos la aplicacin.
Para poder ver en ejecucin

la consulta que definimos utilizando el objeto Query, debemos incluir el user control Query
Viewer en un web form.
Vamos a crear entonces un web panel de nombre WPQuery

Page

16

y vamos a arrastrar el user control QueryViewer sobre el form

Video filmado con GeneXus X Evolution 2

En la propiedad Object, especificamos el nombre del objeto Query que ser ejecutado dentro
de este visor:

Page

podemos especificar una de las tres formas de ver la salida. Elegimos Chart:

17

Editando la propiedad Type, bajo el grupo Output

Video filmado con GeneXus X Evolution 2

Podemos elegir un tipo de grfico en particular

dejamos Column, y ponemos Cities como ttulo del eje X

Page

18

y Attractions Quantity como ttulo del eje Y

Video filmado con GeneXus X Evolution 2

Grabamos.

Page

19

Ahora si, estamos en condicin de ver nuestra consulta completa en ejecucin, as que
presionamos F5:

Video filmado con GeneXus X Evolution 2

20
Page
Video filmado con GeneXus X Evolution 2

You might also like