REPORTES
Reportes y Procedimientos <ul><li>Reportes </li></ul><ul><li>Procesos no interactivos de consulta de la base de datos. </l...
Características <ul><li>Definición procedural  </li></ul><ul><li>Definición sobre la Base de Conocimiento </li></ul><ul><l...
Comando For Each <ul><li>Sintaxis: </li></ul><ul><li>For Each [Order] [  Atr ... Atr ] </li></ul><ul><li>Where <Condition>...
Inferencia de las tablas utilizadas en el  For Each <ul><li>Determinadas automáticamente a través de los atributos del gru...
When None <ul><li>Ejecutar determinado código, cuando en un For Each no se encuentra ningún registro. </li></ul><ul><li>Si...
For Each paralelos <ul><li>For Each // Facturas </li></ul><ul><li>EndFor </li></ul><ul><li>For Each // Recibos </li></ul><...
For Each anidados <ul><li>Tres casos: </li></ul><ul><li>Tabla Base de los For Each  DISTINTAS , pero tabla extendida del F...
For Each  anidados <ul><li>Caso 1 :  For each anidados con distintas tablas base  pero tabla extendida del for each princi...
For Each  anidados <ul><li>Caso 2 : Cuando tenemos que la tabla base de los For eachs son distintas y no existe ningún atr...
Corte de Control <ul><li>Caso 3 : Procesar información por grupos.  </li></ul><ul><li>Ej: Procesar facturas  “ por cliente...
Otros comandos If  <Cond> ... [Else] ... endif Do while  <Cond> ... Enddo Do case Case  <Cond> ... [ Case  <Cond>] ... Oth...
Algunas Reglas  <ul><li>Definen el comportamiento general del reporte/procedimiento </li></ul><ul><li>Siguen estilo de pro...
Report Wizard <ul><li>Permite diseñar el layout de un reporte (o procedimiento) de una forma mucho más fácil. </li></ul><u...
Filtros en la navegación <ul><li>Where </li></ul><ul><li>Condition </li></ul><ul><li>Parm( Atr  ...  Atr )  - Atributos re...
Diseño de la salida <ul><ul><ul><li>Header </li></ul></ul></ul><ul><ul><ul><li>… ... </li></ul></ul></ul><ul><ul><ul><li>E...
Report Viewer <ul><li>Permite: </li></ul><ul><ul><li>Imprimir </li></ul></ul><ul><ul><li>Visualizar el reporte mientras se...
Upcoming SlideShare
Loading in …5
×

Reporte

5,358 views

Published on

Published in: Education, Technology, Business
  • Be the first to comment

  • Be the first to like this

Reporte

  1. 1. REPORTES
  2. 2. Reportes y Procedimientos <ul><li>Reportes </li></ul><ul><li>Procesos no interactivos de consulta de la base de datos. </li></ul><ul><li>Procedimientos </li></ul><ul><li>Procesos no interactivos de actualización de la base de datos. </li></ul>
  3. 3. Características <ul><li>Definición procedural </li></ul><ul><li>Definición sobre la Base de Conocimiento </li></ul><ul><li>(no sobre modelo físico. Ejm. T.E. y A.F) </li></ul><ul><li>Independencia de la Base de Datos </li></ul><ul><li>(Def a nivel Atts, no qué Taba/indice, sino por las especificaciones) </li></ul>
  4. 4. Comando For Each <ul><li>Sintaxis: </li></ul><ul><li>For Each [Order] [ Atr ... Atr ] </li></ul><ul><li>Where <Condition> </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>Where <Condition> </li></ul><ul><li>Defined by <Attribute List> </li></ul><ul><li>… </li></ul><ul><li>Endfor </li></ul>
  5. 5. Inferencia de las tablas utilizadas en el For Each <ul><li>Determinadas automáticamente a través de los atributos del grupo For Each (Order , where, defined by y cuerpo del For Each) </li></ul><ul><li>GeneXus después de definir los atributos que participan determina una Tabla Base y su Tabla Extendida </li></ul><ul><li>A partir de esto define la navegación </li></ul>
  6. 6. When None <ul><li>Ejecutar determinado código, cuando en un For Each no se encuentra ningún registro. </li></ul><ul><li>Sintaxis </li></ul><ul><ul><ul><li>For each //clientes </li></ul></ul></ul><ul><ul><ul><li>Where (condiciones de filtro) </li></ul></ul></ul><ul><ul><ul><li>(proceso el cliente) </li></ul></ul></ul><ul><ul><ul><li>When none </li></ul></ul></ul><ul><ul><ul><li>Msg(“ningún cliente cumple condiciones”) </li></ul></ul></ul><ul><ul><ul><li>Endfor </li></ul></ul></ul>
  7. 7. For Each paralelos <ul><li>For Each // Facturas </li></ul><ul><li>EndFor </li></ul><ul><li>For Each // Recibos </li></ul><ul><li>EndFor </li></ul><ul><li>Navegaciones totalmente independientes </li></ul>
  8. 8. For Each anidados <ul><li>Tres casos: </li></ul><ul><li>Tabla Base de los For Each DISTINTAS , pero tabla extendida del For Each principal relacionada con la tabla Base del For Each anidado por uno o varios atributos. </li></ul><ul><li>Tabla Base de los For Each DISTINTAS , y NO existe ningún atributo relación entre la tabla extendida del For Each principal y la tabla base del For Each anidado. </li></ul><ul><li>Tablas base de los For Each IGUALES Corte de Control </li></ul>
  9. 9. For Each anidados <ul><li>Caso 1 : For each anidados con distintas tablas base pero tabla extendida del for each principal relacionada con tabla base del anidado por uno o más atributos </li></ul><ul><li>For Each </li></ul><ul><li>[ CliCod ] [ CliNom ] </li></ul><ul><li>For Each </li></ul><ul><li>[ FacNro ] [ FacSubTot ] </li></ul><ul><li>Endfor </li></ul><ul><li>Endfor Atributo relación: CliCod </li></ul><ul><ul><li>Se instancia el orden CliCod en el For Each anidado </li></ul></ul>CLIENTES FACTURAS CliCod
  10. 10. For Each anidados <ul><li>Caso 2 : Cuando tenemos que la tabla base de los For eachs son distintas y no existe ningún atributo que relacione la tabla base del For Each anidado con la tabla extendida del For Each principal, el resultado que obtenemos es el Producto Cartesiano de dichas tablas. </li></ul>
  11. 11. Corte de Control <ul><li>Caso 3 : Procesar información por grupos. </li></ul><ul><li>Ej: Procesar facturas “ por cliente ” . Cada vez que cambia el cliente se define un nuevo grupo. </li></ul><ul><li>For Each Orden CliCod </li></ul><ul><li>(tabla Factura) orden -determina For Each corte de control </li></ul><ul><li> (tabla Factura) EndFor </li></ul><ul><li>EndFor -> Defined by, Print if detail </li></ul>
  12. 12. Otros comandos If <Cond> ... [Else] ... endif Do while <Cond> ... Enddo Do case Case <Cond> ... [ Case <Cond>] ... Otherwise ... Endcase For &<var>=<Expresion> To <Expresion> [ Step <Integer>] ... Endfor
  13. 13. Algunas Reglas <ul><li>Definen el comportamiento general del reporte/procedimiento </li></ul><ul><li>Siguen estilo de programación declarativo </li></ul><ul><li>Algunas reglas disponibles: </li></ul><ul><ul><li>Default( &<var>, <valor>) </li></ul></ul><ul><ul><li>Output_file(“nombre”|<att>|&<var> , “formato” ) </li></ul></ul><ul><ul><ul><li>Ejemplo: </li></ul></ul></ul><ul><ul><ul><li>Output_file(“C:clientes”, “rtf”) </li></ul></ul></ul>
  14. 14. Report Wizard <ul><li>Permite diseñar el layout de un reporte (o procedimiento) de una forma mucho más fácil. </li></ul><ul><li>Se define a partir de una estructura de datos muy similar a las transacciones. </li></ul>
  15. 15. Filtros en la navegación <ul><li>Where </li></ul><ul><li>Condition </li></ul><ul><li>Parm( Atr ... Atr ) - Atributos recibidos como parámetros </li></ul>
  16. 16. Diseño de la salida <ul><ul><ul><li>Header </li></ul></ul></ul><ul><ul><ul><li>… ... </li></ul></ul></ul><ul><ul><ul><li>End </li></ul></ul></ul><ul><ul><ul><li>CP [nlinea] </li></ul></ul></ul><ul><li>Lineno [nlinea] </li></ul><ul><li>Eject </li></ul><ul><li>Noskip </li></ul><ul><li>Footer </li></ul><ul><li>MB </li></ul><ul><li>End </li></ul>MT PL
  17. 17. Report Viewer <ul><li>Permite: </li></ul><ul><ul><li>Imprimir </li></ul></ul><ul><ul><li>Visualizar el reporte mientras se está generando </li></ul></ul><ul><ul><li>Paginado </li></ul></ul><ul><ul><li>Zoom </li></ul></ul><ul><ul><li>Salvado a un archivo </li></ul></ul><ul><ul><li>Find </li></ul></ul><ul><li>En las preference del modelo se indica si se desea o no utilizar el report viewer. </li></ul>

×