SlideShare una empresa de Scribd logo
Sacándole jugo al objeto Query Federico Salomón fsalomon@genexus.com
“ La simplicidad es la máxima sofisticación ” Leonardo da Vinci – genio universal
Objeto Query
¿Para qué sirve?	 Crear consultas sobre la base de datos de la aplicación.  Mejorar el valor de la información extraída de bases de datos. Mecanismo fácil de definir y de poner a disposición en la aplicación.
Secciones Structure
Secciones SQL Statement
Secciones Preview
¿Cómo lo utilizamos?
Output Type Chart PivotTable Table
LO NUEVO…
Refrescar consultas Quiero refrescar mis consultas a partir de las modificaciones que realizo en mi consulta principal. ¿Cómo puedo hacer? AutorefreshGroup
AutorefreshGroup Queries con cualquier salida Query con salida PivotTable
AutorefreshGroup
AutorefreshGroup Control QueryViewer
Interacción con el usuario Quiero tener más interacción con el control, ¿es posible mejorarla? PivotTableEvents
PivotTableEvents DragAndDrop ItemDoubleClick ItemClick FilterChanged AggregationChanged
PivotTableEvents DragAndDrop
PivotTableEvents
AdvancedCustomizations Quiero personalizar aun más la salida de mi consulta: Ocultar los subtotales de los campos donde no quiero verlos.
AdvancedCustomizations Propiedad Subtotals (QueryElements)
AdvancedCustomizations ,[object Object],páginas
AdvancedCustomizations Propiedad CanDragToPages (QueryElements)
AdvancedCustomizations ,[object Object],Export HTML
AdvancedCustomizations Propiedad ExportHeader
AdvancedCustomizations
Resumen AutorefreshGroup PivotTableEvents AdvancedCustomizations
Cierre Conferencias relacionadas Una nueva forma de hacer consultas dinámicas con GXplorer– Gustavo Martínez - Sala 2A, 11:00 hs. Como Implementar un Data Warehousede manera paulatina - Enrique Iglesias, Credimas – Sala 2A, 11:45 hs. Federico Salomón - GeneXusSupportTeamfsalomon@genexus.com
¡Muchas Gracias!

Más contenido relacionado

Similar a 052 sacándole jugo al objeto query

Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
hvillarreal
 
Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010
Bruno Capuano
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0
Pedro Gallardo
 
Minería datos con SQL Server 2012
Minería datos con SQL Server 2012Minería datos con SQL Server 2012
Minería datos con SQL Server 2012
Eduardo Castro
 
095 Estrategias Y Practicas De Integracion Con Genexus
095 Estrategias Y Practicas De Integracion Con Genexus095 Estrategias Y Practicas De Integracion Con Genexus
095 Estrategias Y Practicas De Integracion Con Genexus
GeneXus
 

Similar a 052 sacándole jugo al objeto query (20)

PBI - Semana 1.pptx
PBI - Semana 1.pptxPBI - Semana 1.pptx
PBI - Semana 1.pptx
 
TechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team SystemsTechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team Systems
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 
PBI - Semana 1.pptx, enfocado al mantenimiento
PBI - Semana 1.pptx, enfocado al mantenimientoPBI - Semana 1.pptx, enfocado al mantenimiento
PBI - Semana 1.pptx, enfocado al mantenimiento
 
PBI - Semana 1.pdf
PBI - Semana 1.pdfPBI - Semana 1.pdf
PBI - Semana 1.pdf
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeries
 
PBI - Semana 1.pptx
PBI - Semana 1.pptxPBI - Semana 1.pptx
PBI - Semana 1.pptx
 
Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010
 
eFactory CRM para Vendedores (SFA)
eFactory CRM para Vendedores (SFA)eFactory CRM para Vendedores (SFA)
eFactory CRM para Vendedores (SFA)
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
MVC
MVCMVC
MVC
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0
 
Minería datos con SQL Server 2012
Minería datos con SQL Server 2012Minería datos con SQL Server 2012
Minería datos con SQL Server 2012
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo Framework
 
Cormo Framework
Cormo FrameworkCormo Framework
Cormo Framework
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
095 Estrategias Y Practicas De Integracion Con Genexus
095 Estrategias Y Practicas De Integracion Con Genexus095 Estrategias Y Practicas De Integracion Con Genexus
095 Estrategias Y Practicas De Integracion Con Genexus
 
Presentación Fitnesse
Presentación Fitnesse Presentación Fitnesse
Presentación Fitnesse
 

Más de GeneXus

Más de GeneXus (20)

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

052 sacándole jugo al objeto query

Notas del editor

  1. …crear consultas sobre la base de datos de la aplicación en base a la estructura que se define en el mismo.Además, el valor de la información extraída de la BD es mejor ya que al generarse la consulta automáticamente la misma está optimizada.Es un mecanismo fácil de definir y de poner a disposición en nuestras aplicaciones.La creación de un nuevo objeto Query es similar a la de cualquier otro objeto GeneXus, new Object desde el menú o Ctrl + NEl objeto Query tiene tres secciones…
  2. Estructura: es la sección donde definimos nuestra consulta (elementos, filtros, parámetros, etc.)En la consulta que se ve en pantalla lo que se hace es mostrar por cada país la cantidad de goles a favor que tuvo en la Copa América 2011.Para los ejemplos que les voy a mostrar durante la presentación se utilizó la KB de la Copa América (de la cual Uruguay es flamante campeón).Esta KB posee registro de jugadores, de estadios, de grupos y de cada uno de los partidos que se realizaron en la copa.
  3. SQL Statement: permite visualizar la sentencia SQL que se genera en base a la definición de la consulta.Útil en los casos en los que se quiere chequear que se esté yendo sobre la tabla correcta, por ejemplo.
  4. Preview: permite visualizar la consulta en diseño tal como se vería en ejecución.Esto tiene como beneficio que no tengo que ejecutar la aplicación para ver cómo quedó la salida de mi consulta, sino que puedo verla directamente en tiempo de diseño.¿Cómo utilizamos el objeto Query?, ¿cómo lo integramos a nuestra aplicación?...
  5. Simple, mediante el User Control QueryViewer, que se distribuye como control estándar en GeneXus. El UC define cómo mostrar los datos obtenidos mediante la consulta definida (declarativamente mediante propiedades o programáticamente en runtime).Al arrastrar este control a un web panel, automáticamente se importan en la KB las dependencias necesarias (SDTs, dominios, etc.).También en la sección Events se genera un código de ejemplo para el seteo de parámetros de la consulta, y personalización de los QueryElements (atts. definidos en la estructura del control).Las dos propiedades más importantes del control son:Object: es la que me permite hacer el binding (enganche) con mi objeto Query.Type: define el tipo de salida que quiero darle a los datos objetidos mediante el Query.
  6. Estos son los tres tipos de salida que tiene el control, esta es la misma consulta con las tres salidas diferentes seteadas.La diferencia entre la Table y la PivotTable es que la segunda es una tabla dinámica, es decir que me permite pivotear datos.
  7. Supongamos esta situación: tengo varias consultas en mi pantalla con diferentes salidas, pero quiero que estas consultas se actualicen en base a los filtros que aplico. Basándonos en esta misma KB que les conté, supongamos este caso, quiero poder refrescar las consultas que tengo en mi panel cuando filtro los países, cuando me quedo con determinados países del total que tengo... ¿cómo hago?.A partir de Ev1 U6, podemos realizar esto fácilmente mediante la propiedad Autorefresh Group.
  8. ¿Qué es Autorefresh Group?Es la funcionalidad que permite refrescar diferentes controles QueryViewer en base al valor que se setea a esta propiedad.Esta propiedad permite refrescar diferentes controles (que pueden tener cualquier salida) dependiendo de las modificaciones que se realizan en la salida de un control que tenga como tipo de salidaPivotTable).¿Cómo funciona?Básicamente, los controles deben estar en el mismo grupo, es decir que en la propiedad de los controles del Web Panel que se desean refrescar debe estar seteado el mismo valor, por ejemplo: "group1". CasosPara el uso de esta propiedad podemos identificar dos casos puntuales:- Controles que tienen el mismo objeto Query en el binding (control "padre" y controles "hijos" con el mismo Queryseteado).- Controles padre e hijo donde el objeto Queryseteadosea diferente. Para este caso es necesario que el Query con el que se cargan los controles hijos reciba como parámetro el QueryElement (atributo) por el cual desea filtrarse la información.
  9. Explicar qué consultas utilizo y para qué sirven.Explicar lo que se está haciendo en el video.
  10. Bien, ahora analicemos este caso: tengo consultas funcionando correctamente pero quiero tener más interacción con la misma (quiero poder hacer algo más que pivotear datos y cambiar los filtros) para realizar otras variantes, por ejemplo un Drill Down.Haciendo referencia al ejemplo que les mostré en el video anterior, si yo quisiese ver el detalle del total de goles que hizo Uruguay, o sea en qué partidos y contra qué rival se hicieron los goles de Uruguay.¿Puedo hacer esto?También en Ev1 U6 tenemos disponibles eventos en la PivotTable para aumentar la interacción del control con el usuario.
  11. Este es un ejemplo de cómo implementar el evento DragAndDrop.QueryViewer1 es el nombre del control al cual quiero definir el evento. Lo que se hace aquí es mostrar un mensaje en pantalla con el nombre del elemento en el que aplica el evento y el eje al que se movió.Como pueden ver la programación resulta simple, luego ustedes decidirán qué quieren lograr y con qué evento hacerlo.
  12. El segundo punto a considerar es evitar que se arrastren ciertos campos al eje de las páginas. ¿Por qué quiero esto? – Porque tengo cierto formato predefinido en mi consulta que no quiero modificar.Otro caso: supongamos que tengo una consulta que tiene un campo Moneda y otro Monto y tengo varios tipos de moneda ingresados. Si yo arrastrase el campo Moneda hacia el eje de las páginas se aplicaría un sum sobre el campo y por lo tanto se estarían sumando montos de monedas diferentes, cosa que no es correcta.Para resolver el segundo punto, se presenta la propiedad CanDragToPages (también disponible a partir de U6)…
  13. Por último, como sé que el Query me ofrece la posibilidad de exportar los datos obtenidos en mi consulta a diferentes formatos (xls, html, pdf, xml), me gustaría poder definir un cabezal (configurable desde el mismo control y no por fuera) para estos archivos exportados.Aquí es donde se presenta la propiedad ExportHeader.
  14. Explicar el video.
  15. Bueno, para ir finalizando vamos a ver las funcionalidades que tenemos en el Query a partir de Ev1 U6 para darle esa potencia y valor a nuestra aplicación.ARG para refrescar consultas en base a los cambios realizados en la PivotTable de nuestro panel.Eventos para interactuar más con el control.AdvancedCustomizations para mejorar la salida de la información obtenida mediante el Query.
  16. Para cerrar, agradecerles primero a ustedes por venir e invitarlos a que se animen a hacer cosas con el objeto Query, a probar estas nuevas features y a experimentar con ellas.Les dejo aquí una conferencia interesante que les aconsejo escuchar si quieren crear consultas dinámicas para sus aplicaciones. El orador es Gustavo Martínez y es a continuación de esta.También los invito a presenciar la de Enrique Iglesias sobre implementación de DataWarehouses.En pantalla está mi nombre y mi correo, quedo abierto a cualquier consulta, sugerencia o problema que puedan llegar a tener, con gusto los voy a ayudar.Sin más, agradezco nuevamente, muchas gracias!