Objeto Query - Más conocimientos

Documentos relacionados
Reporting (objeto Query)

Necesitamos poder agrupar, acceder y analizar la información sobre la operativa de nuestro negocio,

Data Provider que carga colección con valores fijos (no extraídos de la base de datos)

Introducción a Smart Devices

Cargando los tipos de datos estructurados

Data Providers - Más conocimientos

Consulta con salida Chart (Parte I)

Dos formas de devolver una colección con un Data Provider

Hasta el momento hemos visto ejemplos de aplicación de Data Provider que requieren acceder a la base de datos para recuperar información.

Cargando Tipos de Datos Compuestos (SDT) mediante Data Providers

Cargando los tipos de datos compuestos

Agregando funcionalidad con patrones

Introducción a procedimientos, listados y comando For each

Qué son los subtipos?

Fórmulas Locales. Page1. Video filmado con GeneXus X Evolution 2. Veremos ahora qué es una fórmula local.

Introducción a procedimientos, listados y comando For each

Transacción de 2 niveles usada como Business Component y manejo de errores.

Tipos de datos estructurados

Curso GeneXus - Otro ejemplo de uso de Business components

Otro ejemplo de uso de Business Components

Comando For Each simple y For Each anidado para listar info relacionada

Comando for each anidado para listar info agrupada

Transacción base. A partir de GeneXus X Ev3, se incorpora el concepto de transacción base.

Convirtiendo el modelo en una aplicación funcional

Diseñando la primera transacción

Administrando las bases de conocimiento (GXserver)

Relaciones entre entidades de la realidad

Diseñando más transacciones

Fórmulas Globales. Page1. Video filmado con GeneXus X Evolution 2

Supongamos que queremos definir un botón en la pantalla WWCountry, que invoque un listado pdf (objeto procedimiento) previamente definido.

Qué son los subtipos?

Comunicación entre objetos

... Consultas. anfora CAPÍTULO. Introducción. Utilización de las CONSULTAS

Tipos de datos estructurados SDT

GRAFICOS EN EXCEL. En muchas ocasiones resulta muy útil que la información contenida en un libro de Excel se visualice gráficamente.

Edición y personalización de la instancia del pattern Work With aplicado a una transacción

Cómo visualizar la información detallada de un material (desde el trabajar con materiales del SAP ERP)

Diseñando más transacciones

A continuación, te vamos a explicar algunas de las opciones más interesantes de las tablas dinámicas Excel.

Qué son los subtipos?

Tabla dinámica. En la tabla anterior, los títulos de columnas Mes, Tipo, Vendedor, Región, Unidades y Ventas se convertirán en nombres de campos.

En el ejemplo, se procede en este orden:

El editor de formularios web es el Abstract Layout, en el cual entraremos en detalle en unos momentos.

Cláusula Unique. La cláusula Unique permite mencionar atributos cuyos valores no deben salir duplicados en el resultado de la consulta.

Script For each simple tabla base y cláusula order

Creación de la Knowledge Base

1.- CREACIÓN DE CONSULTAS.

Componentes de pantalla (Extended controls)

Cuando el web panel tiene un grid, entonces para determinar tabla base GeneXus observa lo que se indica arriba.

Si abrimos una transacción cualquiera en ejecución, por ejemplo Category, vemos en la pantalla los botones de navegación antes de los atributos, y

Tutorial KingSoft Office

Para insertar un nuevo origen de datos, pulsaremos en Nuevo/Conjunto de datos.

Introducción a procedimientos y listados. Comando para consultar la base de datos.

Crear una tabla dinámica

Mi nombre es Silvia Keymetlian y trabajo en el equipo de Soporte de GeneXus.

Componentes de pantalla (Extended controls)

Acceso a bases de datos externas

Componentes de datos. 4. Construcción de la tabla de datos (GridView) (Forma manual. 5. Construcción de los mantenimientos (paquetes). automática).

Reglas en transacciones - Más conocimientos

Orders Searchs Conditions

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab'

1. Creamos un nuevo proyecto del tipo Aplicaciones de Windows Forms (Visual C#) en Visual Studio.

GUIA DE CREACIÓN DE REPORTES VARIABLES

Estos argumentos posicionales trabajan con todos los datos que hay en la dirección especificada hasta que se encuentran con una celda vacía

Trabajar con números (Formato numérico y fórmulas)

Actualización de la Base de Datos - Business Components

EJEMPLO 1. CUADROS DE TEXTO

Agregando funcionalidad con patrones

Actualización de la Base de Datos - For each, delete, new

OPENOFFICE IMPRESS. Uso básico Basic usage

Para aquellos que tengais conocimientos de Access es lo más parecido a una consulta de referencias cruzadas, pero con más interactividad.

1. DML. Las consultas de resumen

Tablas dinámicas. Objetivo. Contenido

Qué son las fórmulas?

Introduciremos nuevos conocimientos sobre el uso de los Data Providers.

Controles: Múltiples layouts por fila de un grid

Las opciones para insertar Gráficos se encuentran en la ficha Insertar de la cinta de opciones. Existen una amplia gama de gráficos para realizar:

Cómo configurar el Libro de calificaciones en Moodle?

Definición de reglas

Transcripción:

Objeto Query - Más conocimientos Hemos visto anteriormente las generalidades del objeto Query, los componentes de su estructura y la forma de verlo en ejecución a través del uso del control Query Viewer. Vamos a concentrarnos ahora en presentar una serie de ejemplos en los cuales iremos aumentando la complejidad en el diseño de las consultas, y de esta forma conocer un poco más el alcance de este objeto GeneXus. Como ya hemos mencionado, los elementos que definen la consulta aparecen bajo el nodo Attributes, y deberá existir una tabla extendida que los contenga a todos ellos. Page1

Es así entonces que podemos declarar: Atributos Funciones de agregación, ya sean simples o condicionadas Y Expresiones Veamos el diseño de esta consulta. Queremos ver la cantidad de atracciones turísticas para cada ciudad, y queremos ver esta información como una tabla dinámica. En la definición de una consulta, un atributo puede ser Con agregación Esto corresponde a atributos numéricos con decimales, Sum, Count y Average O sin agregación Que corresponde a descripciones, fechas y números sin decimales Esto determina entonces su posición en la tabla dinámica, ya sea como Eje o como Dato. Los Ejes, son los elementos por los cuales se puede pivotear, y son asociados automáticamente a los atributos sin agregación. Los Datos, en cambio, son los elementos que se sumarizan según los ejes, y estan automáticamente asociados a los atributos con alguna agregacion. Sin agregacion Con agregacion Page2

Veamos la vista previa de nuestro objeto Query. Podemos entonces pivotear por CityName y CountryName que son los ejes, y de esta forma poder reordenar la misma información en diferentes filas y columnas. Analicemos ahora esta nueva consulta que devuelva para cada cliente, el importe total por reservas, la cantidad de reservas realizadas, y el promedio diario de reservas. Las agregaciones que se pueden obtener como datos de una consulta son tres: Sum (para sumar), Count (para contar) y Average (para promediar), y pueden anidarse. Page3

Observemos especialmente que la función Average admite la cláusula By, para poder establecer por qué criterio se desea promediar. Veamos la vista previa de la consulta como un grafico: Pasemos a un nuevo ejemplo y comparemos ahora el diseño de estas dos consultas. En el primer caso, se suman los ReservationPrice de todas las reservas del cliente, y se dividen por la cantidad de reservas. En el segundo, en cambio, se agrupan las reservas por fecha, y la suma del ReservationPrice se divide por la cantidad de grupos de fechas. Es decir, se promediará de acuerdo a la cantidad de fechas diferentes. En este caso necesitamos la cláusula By para lograr ese agrupamiento. Veamos también la vista previa de cada una de estas consultas y comparemos su resultado. Page4

Analicemos ahora un nuevo ejemplo: En el primer caso, de todas las reservas de un cliente, se van a sumar solamente aquellas que superan los 200 dólares. En el segundo caso, en cambio, solamente se va a mostrar un cliente, si la suma de todas sus reservas supera los 200 dólares. Comparemos también los distintos resultados. Concentrémonos ahora en los filtros. Como ya se ha mencionado, se tienen disponibles varios tipos: pueden ser rangos, listas, el uso del operador like, el uso de subconsultas, y es posible definir cualquier nivel de anidación de estos filtros y parametrizarlos utilizando los parámetros definidos. Se ofrecen dos tipos de filter groups : AND y OR. En el ejemplo que estamos viendo ya hemos definido un grupo de filtros cuyos elementos estan unidos por el operador OR. Vamos a definir un nuevo grupo. Hacemos click con el botón derecho, elegimos Insert filter group, y declaramos que estos elementos tambén van a estar unidos por el operador OR. Vamos a declarar que el cliente tenga reservas disponibles, y que la fecha de la reserva sea posterior a la del día de hoy. Page5

El resultado final entonces que surja de esta consulta será el de aplicar el operador OR declarado en cada grupo, para finalmente aplicar el operador principal AND. Sus elementos se unen con OR Sus elementos se unen con OR Luego se aplica el AND Hasta acá entonces hemos presentado distintos ejemplos de diseño de consultas dinámicas y hemos visto su salida a través de la vista previa. Recordemos que para poder ver en ejecución la salida de un objeto Query necesitamos crear un web panel e insertar el user control Query Viewer Al insertar un control Query Viewer en el web form de un objeto, como sucede con casi todo user control, se consolidan algunos SDT en la KB algunos dominios enumerados, y se crean variables basadas en esos tipos en el objeto, así como también se agregan líneas de código de ejemplo para ayudar a configurar estas propiedades. De esta forma el desarrollador solamente tendrá que utilizarlos. Page6

Volvamos a GeneXus y veamos algunos ejemplos. Queremos ver en ejecución la consulta que muestra la cantidad de atracciones turísticas por ciudad. Así que hemos creamos un web panel de nombre WPQuery y arrastramos el user control Query viewer desde la Toolbox. Si queremos ver la consulta como un gráfico podemos directamente indicar el nombre de nuestro objeto Query en la propiedad Object del control, y declarar el Output de tipo Chart. Pero si el usuario final desea poder elegir en ejecución la forma de visualizar la consulta y no declararla previamente en forma estática, vamos a tener que configurar algunas propiedades en ejecución. Como primer paso hemos definido en el form del web panel un combo box para que el usuario pueda elegir la forma de la salida, e insertamos un botón. Analicemos el evento Enter asociado. Estamos asignando a la propedad Type del Query viewer el valor seleccionado en el combo, e indicamos también que si se elije la opción Chart entonces se visualice como un gráfico Column 3D. Page7

Veamos ahora su comportamiento en ejecución. Presionemos F5. Seleccionamos el web panel WPQuery. Podemos pivotear para ver los datos ordenados de distinta forma, seleccionar la salida como una tabla estática, o como un gráfico que se verá en columnas 3D. Veamos por último un ejemplo que requiere del pasaje de parámetros. Queremos poder elegir en ejecución un determinado país, y atracciones turísticas por ciudad. graficar la cantidad de Page8

Hemos creado también el siguiente web panel de nombre AttractionsPerCountry, donde es posible seleccionar un país desde un combo dinámico, Observemos las propiedades del control Query Viewer, y veamos que en la propiedad Parameters tiene asociada la variable &Parameters. Esta variable está basada en el sdt QueryViewerParameters que se crea automáticamente al arrastrar el control Query viewer. Y corresponde a una colección de parámetros donde cada uno tiene su nombre y su valor. Volvamos al web panel y observemos entonces el evento Enter asociado al botón: Event Enter &Parameters = new() &Parameter.Name = "CountryId" &Parameter.Value = &CountryId.ToString().Trim() &Parameters.Add(&Parameter) QueryViewer1.Type = QueryViewerOutputType.Chart QueryViewer1.ChartType = QueryViewerChartType.Column3d Endevent Ambas variables, &Parameters y &Parameter, han sido creadas utomáticamente en el web panel al arrastrar el Query viewer. Page9

En el caso de la variable &Parameter representa a un elemento de la colección de parámetros, mientras que la variable &Parameters representa a la colección de parámetros. Asi que inicializamos ambas variables y le asociamos a la variable &Parameter el nombre y el valor correspondiente del parámetro que utilizamos, o sea CountryId, teniendo en cuenta que debido a la estructura del SDT los elementos deben ser de tipo Character. Luego agregamos el parámetro a la colección. Y fnalmente asociamos la salida como un gráfico, en particular, como columnas 3d. Solamente nos está faltando asociar el objeto Query al control Query viewer, y asociándole al control Queryviewer1, a la propiedad ObjectName el nombre de nuestro objeto Query. Veamos el comportamiento en ejecución. Presionemos F5. Y seleccionamos AttractionsPerCountry. Page10