SlideShare una empresa de Scribd logo
Enriqueciendo Aplicaciones Genexus con el Objeto QueryIng. Pablo Mussopmusso@artech.com.uy
Cómo?
Qué?
114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query
114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query
Fácil de UsarA solo 3 pasos: Declarar Query Insertar User Control  Ejecutar (F5)
Fácil de UsarIntellisenseDrag & DropVista Previa
114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query
Tabla dinámica (PivotTable)Exportar a PDF, Excel , XML y HTMPivoteoFiltrarGraficaMúltiples Salidas
TablaReordenar columnasFiltrarExportar a PDF, Excel , XML y HTMLObjeto Query infiere el tipo de salidaMúltiples Salidas
114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query
Agregaciones de N- nivelesAverage(Count(A))ExpresionesSum(A) + Sum(B) / Count(A + B)FuncionesStr(PlayerId),  Year(Date) A + Trim(Str(Average(count(PLayerId)))MasPotencia
Filtros por agregaciones/atributosCount (PlayerName) where (PlayerPosition = "Delantero")		 DataProviders como fuente de datosSDT con estructura libreConsumir WS  MasPotencia
114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query
Dashboard
114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query
wiki.gxtechnical.com
wiki.gxtechnical.com
K2B  www.k2business.com
ZCuentaswww.zetacuentas.com.uy
ResumiendoFácil de UsarBasado en el conocimiento/ Definición declarativaPotencia en cuanto a expresividad y a integración
Conferencias relacionadasKPIs: Mucho más que métricas de su   negocio – Sala 2C Miércoles 11:00 a 11:45Quienes son sus clientes más rentables?   ¿Cuáles conviene retener y cuales no? –                               Sala 4P Miércoles 11:45 a 12:30 Ing. Pablo Musso,                                   Equipo de Desarrollo de Artech, pmusso@artech.com.uy
¡Mucha suerte!

Más contenido relacionado

PDF
Histogramas y poligonos_de_frecuencia
PPT
Operaciones de Entrada / Salida en C++
PDF
Opciones de autorelleno
PPTX
Opciones de autorelleno
PPTX
Diapositivas funciones de grupo en sql
PDF
Taller 13 opciones de autorelleno
PPSX
Tp4 terminado 1
DOCX
Transportes reina #55
Histogramas y poligonos_de_frecuencia
Operaciones de Entrada / Salida en C++
Opciones de autorelleno
Opciones de autorelleno
Diapositivas funciones de grupo en sql
Taller 13 opciones de autorelleno
Tp4 terminado 1
Transportes reina #55

La actualidad más candente (12)

PDF
Ejpractico1excel
PDF
Ex baspra1
PPTX
PPTX
Sirley y nathaly
PPTX
DOCX
Controldereportes codigoinsertarnuevoregistro
PDF
Regresion lineal en Geogebra
PDF
Uso surfer
PDF
Taller1
PPTX
Presentaciones visuales tp- baldini - funciones reales y conceptos basicos
PDF
Ejpractico2excel
PPT
Curso excel
Ejpractico1excel
Ex baspra1
Sirley y nathaly
Controldereportes codigoinsertarnuevoregistro
Regresion lineal en Geogebra
Uso surfer
Taller1
Presentaciones visuales tp- baldini - funciones reales y conceptos basicos
Ejpractico2excel
Curso excel
Publicidad

Similar a 114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query (20)

PPTX
008 2025 Reporting Con Genexus Ev1
PDF
Intensivo Power BI.pdf
PPTX
052 sacándole jugo al objeto query
PPTX
52 sacándole jugo al objeto query
PPTX
052 sacándole jugo al objeto query
PDF
Introducción a PowerPivot
PPTX
GXplorer 7.0: crear consultas dinámicas nunca fue tan fácil
PDF
PowerBI Unidad I_MDCostammmmmmmmmmmmmmm
PPTX
Visualización de Big Data con Power View
PPTX
141 Gxplorer Proyectos Bi Factibles Montevideo Gx Xix V1
PDF
Curso ORACLE BI SUITE EE 11G. CREACIÓN DE ANALISIS Y CUADROS DE MANDO.
PPTX
Charla sql server 2012 cibertec BI
DOCX
Manual básico de bex analyzer
PPTX
009 introducción a_gxplorer
PDF
Laboratorio GXquery 4.0
PDF
Explorando los Sabores de Power Query
PPTX
059 una nueva forma de hacer consultas dinámicas con g xplorer 7.0
PPTX
Simplifique su BI con AWS
PDF
Modelando con PowerPivot. ¿Qué se puede y que no?
PPTX
Power BI: Self Service AI
008 2025 Reporting Con Genexus Ev1
Intensivo Power BI.pdf
052 sacándole jugo al objeto query
52 sacándole jugo al objeto query
052 sacándole jugo al objeto query
Introducción a PowerPivot
GXplorer 7.0: crear consultas dinámicas nunca fue tan fácil
PowerBI Unidad I_MDCostammmmmmmmmmmmmmm
Visualización de Big Data con Power View
141 Gxplorer Proyectos Bi Factibles Montevideo Gx Xix V1
Curso ORACLE BI SUITE EE 11G. CREACIÓN DE ANALISIS Y CUADROS DE MANDO.
Charla sql server 2012 cibertec BI
Manual básico de bex analyzer
009 introducción a_gxplorer
Laboratorio GXquery 4.0
Explorando los Sabores de Power Query
059 una nueva forma de hacer consultas dinámicas con g xplorer 7.0
Simplifique su BI con AWS
Modelando con PowerPivot. ¿Qué se puede y que no?
Power BI: Self Service AI
Publicidad

Más de GeneXus (20)

PPTX
After Chatbots Yo (Ro) Bots
PDF
Construya las aplicaciones del futuro ¡hoy!
PDF
Live Editing in Action
PDF
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
PDF
¿Pensando en implementar un sistema de gestión integral en su organización?
PDF
K2B Tools el compañero de viaje ideal hacia el futuro
PDF
Sd y Plataformas
PDF
PXTools: Nuevo generador y nuevos controles responsivos
PDF
APPlícate: Aplicaciones móviles para el desarrollo de la industria
PDF
GeneXus 4 Students
PDF
La importancia de ser responsive
PDF
K2B: El ERP nativo para el mundo GeneXus
PDF
GeneXus 15 (Salto)
PDF
GeneXus Cloud Deployment Services. El camino a la nube.
PDF
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
PDF
Innovando con GeneXus y SAP
PDF
Going mobile
PDF
Audit+: La mejor forma de auditar KB’s GeneXus
PDF
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
PDF
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
After Chatbots Yo (Ro) Bots
Construya las aplicaciones del futuro ¡hoy!
Live Editing in Action
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
¿Pensando en implementar un sistema de gestión integral en su organización?
K2B Tools el compañero de viaje ideal hacia el futuro
Sd y Plataformas
PXTools: Nuevo generador y nuevos controles responsivos
APPlícate: Aplicaciones móviles para el desarrollo de la industria
GeneXus 4 Students
La importancia de ser responsive
K2B: El ERP nativo para el mundo GeneXus
GeneXus 15 (Salto)
GeneXus Cloud Deployment Services. El camino a la nube.
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Innovando con GeneXus y SAP
Going mobile
Audit+: La mejor forma de auditar KB’s GeneXus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...

Último (20)

PPT
Protocolos de seguridad y mecanismos encriptación
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
Control de calidad en productos de frutas
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
Taller tecnológico Michelle lobo Velasquez
PPTX
modulo seguimiento 1 para iniciantes del
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
DOCX
Trabajo informatica joel torres 10-.....................
PPTX
Curso de generación de energía mediante sistemas solares
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
PDF
capacitación de aire acondicionado Bgh r 410
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Protocolos de seguridad y mecanismos encriptación
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
ccna: redes de nat ipv4 stharlling cande
MANUAL de recursos humanos para ODOO.pdf
Control de calidad en productos de frutas
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Taller tecnológico Michelle lobo Velasquez
modulo seguimiento 1 para iniciantes del
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
informe_fichas1y2_corregido.docx (2) (1).pdf
Trabajo informatica joel torres 10-.....................
Curso de generación de energía mediante sistemas solares
Guía 5. Test de orientación Vocacional 2.docx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
capacitación de aire acondicionado Bgh r 410
Presentacion de Alba Curso Auditores Internos ISO 19011
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD

114 Enriqueciendo Aplicaciones Genexus Con El Objeto Query

Notas del editor

  • #2: Buenos dias mi nombre es Pablo Musso pertenezco al equipo de desarrollo de Artech y hoy voy a hablar de como podemos mejorar nuestras aplicaciones genexus a travez de la utilizacion del objeto QueryMe gustaria arrancar esta charla haciendoles la siguiente pregunta ¿Como presentan la informacion al usuario final hoy en dia en Genexus?
  • #3: Seguramente la mayoria penso con WebPanels , Tablas , etc. Es decir algo del estilo a lo que se muestra en la imagenBueno me gustaria responderles esta pregunta a con otra pregunta y es justamente Que? Que tipo de cosas somos capaces de hacer con genexus?
  • #4: Es decir una interfaz mucho mas rica en cuanto a presentacion. En la cual tengamos incluido mapas, graficas , tablas y pivotTables (tablas dinamicas). Esto que vemos aqui es lo que denominamos un dashboard , luego vamos a ver mas en detalle que es un dashboard y en particular yo voy a armar un dashobard como el de la imagen durante la charla, y vamos a ver con muy poco trabajo se puede tener funcionando.Nosotros en Artech apostamos al desarrollo basado en el conocimiento. Y esto es justamente lo que busca hacer el objeto Query. Es decir definir de una manera declarativa nuestras consultas. Porque apostamos al desarrollo basado en el conocimiento en lugar de la programación procedural clásica ? Básicamente por 2 razones 1) Aumentar la productividad de desarrollo ya que obviamente los tiempos son mucho mayores 2) Eliminar lo mas que se pueda los errores introducidos justamente por la programacionproceduralSi nos ponemos a pensar vemos que el objeto DataProvider ya busca esto. Es decir que como desarrolladores cuando podamos trataremos de utilizar DataProviders en lugar de Procedimientos, es decir los DataProviders tienen un nivel de abstracción mayor que los procedimientos. Bueno justamente el objeto Query busca levantar aun mas la abstracción de los DataProviders, permitiéndonos hacer una definición basada en el conocimiento de nuestra KB y de forma 100% declarativa.Es decir vamos a poder armar interfaces mucho mas ricas a las que estamos acostumbrados , con graficas , tablas de pivoteo , tablas mapas etc, sin necesidad de tener que programar ni una sola línea de código
  • #5: Estos son los principalestips que vamos a ver .En donde los 3 primeros son las principales premisas del Objeto Query. Luego vamos a hablar del dashboard como caso de uso y finalmente vamos a ver ejemplos de aplicaciones reales que lo están utilizando hoy en día
  • #6: Primero que nada vamos a hablar de la usabilidad , la idea es que sea muy sencillo y sin necesidad de tener que programar nada.Recuerden que el objeto query es 100% declarativo
  • #7: Bueno lo primero que tenemos que decir es que con solo 3 pasos ya lo tenemos andando, es decir en primer lugar declaramos la Query , luego insertamos el QueryViewer en un webpanel y finalmente damos F5Les voy a mostrar que fácil se pueden hacer estos 3 pasos y para esto voy a utilizar la KB que se utilizo en el LAB genexus . Cuantos de ustedes pudieron asistir al LAB? Esta KB contiene información del fixture de las eliminatorias sudamericanas , no se preocupen no tiene datos reales sino quedamos todos traumados, sobre todos uruguayos y argentinos La idea es que se tiene información de las selecciones , partidos , jugadores, etc. Entonces la primer consulta que vamos a realizar es la tabla de goleadores Para hacer esto simplemente escribimos los atributos:teamName , es quien tiene la información de Paises , recordemos que los equipos son las selecciones de AméricaLuego escribimos el jugador PLayerName, aca ya podemos notar otra feature en cuanto a usabilidad , el intellisense que nos guía en al definición de los atributosY bueno queremos para cada jugador la cantidad de goles que hizo , entonces simplemente escribimos sum que es una de las agregaciones predefinidas del Query , luego vamos a hablar de esto pero la idea es que se acepta average, count, max , min y cualquier expresión o función Notemos que nuevamente al escribir sum el intellisense nos guiaBueno vamos a querer la lista de golaeadores, ordenada en forma descendente para esto justamente tenemos el nodo Orders, la idea es que queremos que se ordene por Sum(MatchGoalQty) de forma descendente , esto lo hacemos en las propiedades del order.Una vez que tenemos definida la Query podemos ir al TabSentence para ver el select generado, aquellos que lo desean pueden ver si es lo esperado yo no me animo a ver ese selectOtra cosa importante que tenemos en la definición de la Query es la vista previa , aca podemos jugar con los datos que tengamos en el ambiente de desarrolloHasta ahora hemos declarado nuestra query , hemos hecho nuestro primer pasoResta ahora tirar el usercontrol en un WebPanel para esto vamos a crear un webPanel . Y vemos aquí en los usercontrols que tenemos uno llamado QueryViewer , .lo voy a insertar en el webpanel , voy a ir a propiedades y voy a decir que quiero mostrar la Query Tabla de posiciones que cree recienSimplemente con esto ya terminamos nuestro segundo paso y ya estamos en condiciones de dar F5 (nuestro 3 paso ) y tenemos todo andando<mientras hace el build>Notemos que no escribimos una sola linea de codigo, es decir armamos la query de forma declarativa, creamos un web panel y dimos F5 en ningún momento hubo que cargar un Sdt ni programar nada Bueno goleador Mesi y segundo Lugano claramente los datos no son reales 1) Hacer consulta de la tabla de posiciones (1)Attributes:TeamNamePlayerNameSum (MatchGoalQty)OrderBy:Sum (MatchGoalQty)Vamos a armar otra consulta para mostrar lo que es el uso de Parametros, Supongamos que queremos ver los diferentes planteles de selecciones de América. No queremos hacer una Query para el plantel de Brasil, otra Query para el plantel de Argentina, otra para Colombia, etc. Lo que queremos en realidad es poder recibir como parametro que plantel mostrar y hacer la consulta paramétricaBueno comenzamos como la otra vez escribiendo los atributos PlayerName, PLayerPosition. Pero también además de escribir podemos hacer drag & drop , es decir tiramos directamente el atributo PLayerNumber por ejemploHasta ahora nos trae la información de los jugadores de todas las selecciones de america , por lo tanto debemos definir 2 cosas a) un parámetro b) un filtroPara definir el parámetro simplemente escribimos como siempre en el nodo parameters y solo infiere que el tipo del parametro corresponde con el atributo TeamNameLuego definimos el filtro en el tab de filters, y vamos a darle un valor por defecto para el parametro , por ejemplo Brasi. El valor por defecto es el utilizado cuando nos e especifica ningún valor para el parámetro en el momento que se llama y el que se utiliza en el preview. Nuevamente podemos ir al Tabsentence y ver la sentencia generada , y podemos ir al PreviewYo acá tengo un WebPanel Planteles que ya tiene incluido el UserControl igual que hicimos hoy . Además tiene un combo con las diferentes selecciones de América. La idea es que cada vez que cambio el valor del combo se va a dibujar la query con un valor diferente de parámetro. Para esto lo que hacemos es en el Evento Click modificar el valor del parametro. . Básicamente lo que se hace es definir un Parameter y agregarlo a la colección de ParametersNuevamente damos F5 y lo tenemos funcionandoVemos que en este caso con muy poquito código se puede invocar a una QueryParametrica1) Hablar de parametros y agregar un filtro (2)PlayerNamePlayerPositionPlayerNumberTeamName = &TeamName
  • #8: En resumen estas son las principales features en cuanto a usabilidadEl intelilisense , la posilibdad de hacer drag & drop y la posibilidad de tener facilmente una vista de los datos Hasta ahora hemos visto las siguientes features: el intellisense, Drag&Drop y Vista Previa Quiero detenerme ahora en contarles la capacidad de inferencia, la cual existe en dos sentidosEn primer lugar en el momento de hacer drag & drop, el objeto Query es capas de inferir si un atributo debería tener un agregacion o no, dependiendo del tipo de atributo y de ciertas condicionesEs decir cuando agrego MathGoalQty me infiere que en la Query voy a querer ver el total de Goles , es decir sum(MathGoalQty ), por otro lado cuando agrego teamName , se infiere que se desea ver sin agrergarEn segundo lugar el objeto Query es capas de inferir el tipo de salida , en el cual se presentara la información.--------------------------------------------------------itelisenseDrag & Drop / inferencia de agregacionesVista PreviaHablar mas de la inferencias que se da cuenta que es table y en el otro se da cuenta que es pivot , infiere que es el indicadores y mesuares Preguntar a Gusmatr cual es la diferencia en el calculo del select, poniendo sum(goles) o sin sum(goles)Inferencias Salida Tabla/PivotAgregaciones
  • #9: El objeto Query acepta múltiples formatos de salida para presentar la información vamos a ver en detalle cada uno de los mismos
  • #10: En primer lugar un formato de PivotTable. Para ver en detalle este formato hagamos la siguiente consultaQueremos saber cual fue el promedio de goles por equipo y por jugador Para esto armamos la Query con los atributos TeamName, PlayerName y como queremos el promedio de goles , utilizamos la agregacion predeterminada Average, es decir Average(MathGoalQty) 3) PlayerName TeamNameAverage (MatchGoalQty)Se muestra pivoteo , filtros , etcNotemosd que luego de pivotear y modificar los ejes por defecto esto se puede ver en la propiedad Axis en la estructura de la QueryOtro formato de salida es la posiblidad de Graficar la Query . Aca tenemos todos los tipos de graficas que ustedse se imaginan. Barra, Torta, Columna, Area, Linea , etcVeamos una consulta para mostrar la salida de tipo Grafica Supongamos que queremos el promedio de goles por equipo , solamente no por jugador. Para esto simplemente dada la Query anterior eliminamos el atributo teamName, es decir armamos la Query de la siguiente manera 4) TeamName Average (MatchGoalQty)Se muestran diversos tipos de salida grafica: Bar , Column, Pie3dTabla ----------Tabla de posiciones o tabla de cada plantelSalida Pivot --------------Joder con pivoteo mostar filtros etc
  • #11: Salida tipo Tabla .Para aquellos casos en los cuales queremos simplemente presentar un listado (es decir sin pivoteo), tenemos la salida tipo TablaPor ejemplo en la primer consulta que les mostre, la tabla de posiciones , es interesante ver la salida en formato tablaSe muestra como se puede filtrar, reordenar columnas , etcAlgo interensate que vale la pena menscionar es la capacidad de inferencia del Objeto Query. Es decir que dependiendo de la Query se puede inferir si la salida por defecto será una PivotTable o una Table. Por ejemplo en la consulta planteles de cada seleccion , se infiere que la salida por defecto es una Tabla mientras que por ejemplo en la consulta promedio de goles por equipo y por jugador se infiere que la salida por defecto es PivotTable. Se infiere una u otra salida dependiendo de la presencia de agregaciones, es decir si no hay ninguna agregacion se infiere salida Tabla , si hay al menos una agregacion se infiere salida de tipo PivotTableEsto no quita obviamente que se pueda modificar la salida por defecto inferida , Por ejemplo en la consulta de los diferentes jugadores de los equipos , se puede mostrar una salida de PivotTable, claro hay que tener en cuenta que una pivot sin ningun atributo en el eje de los datos no tiene mucho sentido , para esto podemos modificar las propiedades de determinado atributo y ponerlo en el eje de los datos
  • #12: Veamos a continuación las mejoras en cuanto a potencia, sobre todo para aquellos que han trabajado con queries en la version 6.0 de GXplorer
  • #13: En primer lugar la posiblidad de definir agregaciones de N - nivelesEs decir que no solmamente se permiten ciertas agregaciones predefinidas: las cuales son sum, average, count, max , min, sino que tambien se acepta la posiblidad de hacer agregaciones de agregaciones.Por ejemplo si queremos saber el promedio de la cantidad de ventas , podríamos simplemente escribir average(count(A)), de deterinado atributo ATambien se acepta la definicion de expresiones, es decir concatenacion de atributos de tipo String;O realizar diversas operacaciones (sumar , restar, multiplicar o dividir) con atributos de tipo numerico o con agregaciones, o con atributos de tipo Date Ademas de aceptar expresiones , se permite la definicion de funciones soportadas por genexus, como son Str, Year, Month, etc. Obviamente todo esto se puede convinar , es decir podemos tener expresiones, con funciones y con agregaciones de agreaciones Veamos la siguiente consulta para mostrarles expresiones y funciones.Supongamos que queremos ver los resultados de los partidos de cada una de las ruedas de las eliminatorias sudamericanas. Como sabemos las eliminatorias se juegan durante 2 años , en donde en cada año se juega cada una de las ruedasPara esto yo tengo una consultsa armada.Mostrar y explicar las expresionesMostrar los resultados en la tabla plana , filtrando por año , etc
  • #14: Es posbile definir filtros que son particulares para determinada agregacion. A diferencia de los filtros generales que van sobre el nodo FiltersCon los filtros particulares se pueden hacer subconsultas del estilo attributo/agregacion filtrada por determinada condicion. Para introducir los filtros particualres basta con incluir la palabra reservada where y el intelissense enseguida nos sugiere como continuarSupongamos que queremos saber por equipo cual es la cantidad de delanterios, mediocampistas y defensasYo tengo aca ya armada la consulta y ven que es muy similar al lenguage naturallSe muestra el intelissenseFiltros por agregaciones TeamName Count (PlayerName) where (PlayerPosition = "Delantero") Count (PlayerName) where (PlayerPosition = "Mediocampista") Count (PlayerName) where (PlayerPosition = "Defensa")Ademas de las mejores en cuanto a mayor potencia a la hora de la definicion de las Queries, es importante mencionar que el userControl QueryViewer se puede bindear a un DataProvider como fuente de datos. Esto tiene muchas ventajas: 1) en primer lugar la posbilidad de presentar con una misma interfaz (con el QueryViewer) informacion obtenida a travez de consultas, con informacion obtenida a travez de dataproviders. Esto es fundamental ya que al usuario final no sabe ni le interesa como desarrollamos nuestra aplicacion , el necesita ver la informacion de forma clara , sencilla y uniforme. 2) En segundo lugar tenemos la posibilidad de resolver aquellos casos que no se pueden solucionar de forma declarativa con una Query (aquellas consultas que no se puedan traducir a un select) , es decir aquellos casos en los cuales necesitamos resolverlos si o si con programacion procedural . 3) En tercer lugar nos brinda la posiblidad de presentar datos remotos y datos locales de forma uniforme. Notemos que podiramos estar consumiendo un web service , obteniendo los datos a partir de este y presentandolos exactamente de la misma manera que presentamos los datos obtenidos con una Query localYo tengo en esta KB varios dataproviders con informacion correspondiente los ganadores de la champions league, copa libertadores. Mundiales y la copa intercontinentalLo primero que hay que decir es que el QueryViewer acepta un dataprovider cuyo sdt de salida tenga una estructura libre. Es decir que sea cual sea el sdt (customers, invoices, country, campoenes mundiales) de salida el QueryViewer va a ser capaz de presentarloVeamos por ejemplo en un webpanel los campones de la copa libertadoresExplicar ejemplo
  • #15: Veamos a continuación el caso de uso mas común del Objeto Query y es el desarrollo de DashBoardsUn dashboardbasciamente busca presentar de forma amigable y resumida toda la información que el usuario necesita ver. La idea es poder obtener en un “pantallaso” toda la información relevante para poder medir el negocio. Luego si es necesario un analisis mas detallado por parte del usuario, puede interiorizarse en el punto deseado.
  • #16: Presentar ambos dashboards con las selecciones de america el dashboard que no recibe parametros y el que si recibe parametros
  • #18: Caso 1 , ver wikiOtra cosa interesante a hacer es poder conbinar el patternworkwith con el Objeto Query
  • #19: Caso 2 , dashboard en el wiki , esta la KB para descargar
  • #20: Dashboard de K2b
  • #21: Zcuentas.
  • #22: En resumen , si me preguntan cuales son las 4 frases claves que resuman al objeto Query , me quedo con: Facil de usar: recuerden hay un monton de features en cuanto a usabilidad, pero la mas fundamental es que con solo 3 pasos (declarar la query, tirar el user control en un web panel, F5 ) lo tenemos andando . Basado en el conocimiento: El objeto Query levanta aun mas el nivel de abstracción de los dataproviders, la idea es reutilicemos el conocimiento que tenemos en nuesta KBDefinición declarativa: No es necesario programar ni una sola linea de codigo para tener el objeto Query andando en su apliacionPotencia , por un lado en cuanto a expresividad esto quienes sean usuario de Gxpolorer 6.0 van a comprender cuanto se potencio el tipo de Queries que se pueden hacer. Pero por otro lado portencia en cuanto la integracion , gracias al abanico de posiblidades que me brindan los dataproviders y el QueryViewerbindieado a un dataprovider
  • #23: Bueno resta invitarlos a que visiten el wiki , miren la documentación y si pueden descarguen las KBs de ejemploMañana hay 2 conferencias que muestran la utilización del objeto QueryLa primera es a las 11:00 en la sala 2C, la gente de K2B va a mostrar como definir KPIs a travez del objeto QueryLa segunda a las 11:45 (quedan pegaditas , salen de una y entrar en otra) , la gente de DataLab van a mostrar su aplicación en la cual utilizan fuertemente el objeto QueryNo se si alguien tiene alguna consulta ….