Curso Reports
Curso Reports
Curso Reports
1. Diseando y Ejecutando un Reporte 2. Creando un Reporte Bsico 3. Data Model, Queries, Grupos y Link 4. Data Model Bsico - Columnas 5. Objetos del Layout. 6. Layouts Bsicos - Layout Default 7. Frames, Fields y Boilerplate. 8. Anchors y Botones 9. Propiedades Comunes de los objetos layout. 10. Propiedades Especficas de los objetos layout. 11.Parmetros y Parameter form
2
Utilizando Triggers en Reports. Destinos de Reportes Utilizando el paquete SRW. Mejorando el rendimiento. Subir un Reporte a Oracle Application.
Objetivos
Al finalizar el curso, el participante tendr los conocimientos necesarios para desarrollar reportes empleando la herramienta Oracle Reports Developer 6i.
Componente de Developer6i que es utilizado para disear y ejecutar reportes. Consta de tres componentes:
a. b.
c.
Los reportes son creados principalmente mediante wizards. Existen triggers y program units como en Forms.
Qu estilo se requiere? Qu estructura se necesita? Qu datos deben aparecer? De qu modo se pueden obtener los datos ms eficientemente? Se puede utilizar cdigo comn?
Todos los campos se imprimen con la misma frecuencia. La estructura de ste reporte contiene un solo grupo.
No. de Producto Descripcin Precio
La estructura de ste reporte contiene dos grupos. Cada lista de productos va relacionado con el cliente que lo precede.
Nombre Cliente No. De Producto Precio
Nombre Cliente
No. De Producto Precio
Producto Cliente
10
Mantener un acceso mnimo a la base de datos. Considerar la estructura del reporte y el nmero de queries involucrados. Compartir cdigo y objetos. Considerar el uso de plantillas para la creacin de reportes para mantener un estndar en la apariencia.
11
Crear una nueva definicin. Definir el Data Model (Data Wizard). Definir el Layout (Report Wizard). Ejecutar el Previewer para probar el reporte. Ampliar la funcionalidad y mejorar la apariencia del reporte.
13
14
Para crear un query se utiliza el Data Wizard. Desde el Object Navegator dar clic en el icono del Data Model, se abrir una ventana. En la barra de herramientas de la ventana abierta dar clic en el icono . Pasos del Data Wizard:
a. b. c. d.
Paso 1: Pantalla de Bienvenida, se puede no volver a mostrar. Paso 2: Nombre del query y se indica si ser un query para un reporte de matriz. Paso 3: Tipo de sentencia, puede ser SQL de Oracle o importar una de otra base de datos diferente a Oracle. Paso 3: Se escribe la consulta SQL.
15
b.
Paso 4: En Available Fields muestra todas las columnas que se seleccionaron, para formar mas de un grupo se pasan las columnas a Group Fields. Paso 5: Se seleccionan las columnas y algn tipo de operacin que podr realizarse por cada grupo existente. Query Columnas Summary Grupo
Tipo de dato
Ordenamiento
16
Columnas
Si ya se tiene un query creado, seleccionar ese query y presionar el icono . Pasos del Report Wizard:
a. b. c. d.
e.
f. g.
Paso 1: Seleccionar el estilo del reporte y configurar el encabezado. Paso 2: Tipo de sentencia. Paso 3: Consulta sql que se ejecutar. Paso 4: Columnas disponibles (Available Fields) y columanas que se mostraran en el reporte (Display Fields). Paso 5: Operaciones que se realizarn por cada cambio de grupo. Paso 6: Etiquetas asociada a cada field y ancho. Paso 7: Plantilla del reporte, puede no tener.
17
Reporte
18
Reports. Un men integrado a una aplicacin Forms. Un botn en una aplicacin Forms.
19
File. Printer. Mail. Screen. Previewer. Se configura a travs del parmetro DESTYPE y DESNAME.
20
Report:
a. b. c. d. e. f. g.
Max. Horizontal Body Pages: Max. Vertical Body Pages: Panel Print Order: Direccin de impresin. Direction: Direccin de escritura, de derecha a
izquierda o de izquierda a derecha. Previewer Title: Titulo de la venta cuando se encuentra en la sesin Live Previewer. Distribution: Cuando se tiene la vista del reporte, existe la opcin del men de Distribution, la cual enva el reporte a diferentes destinos (mail, file).
22
2. Ejercicios
1. Crear un reporte tabular que muestre el id, nombre y direccin de todos los clientes. 2. Modifique el query del reporte para que la salida se muestre ordenada por nombre. 3. Modifique el reporte para que tambin muestre el nmero telefnico. 4. Salve el reporte como P2_1.RDF
23
25
Los comentarios se escriben entre /* */ o --. Cuando se modifica el query automticamente se modifica el grupo y las columnas que contiene. Se puede modificar el query desde el Data Model.
SELECT e.last_name employee, d.name department FROM employee e, department d WHERE e.department_id = d.department_id
26
27
Consulta construida desde SQL*Plus o desde Reports. Se guarda como archivo y despus se abre ese archivo desde Data Wizard, Report Wizard o SQL Query. El archivo no queda ligado al reporte.
28
Separan registros y determinan frecuencias. Se crea un grupo default por cada query, y por cada nivel que se crea en el Data Wizard o en el Report Wizard. Grupos creados por el desarrollador:
a. b. c.
Para reportes con rompimientos. Para reportes de matriz. Para crear resmenes de datos.
29
El query debe incluir una columna de llave fornea para crear una estructura maestro detalle. El estilo del reporte debe ser Group Left o Group Above.
30
31
La propiedad Break Order en las columnas de los grupos de rompimiento Las columnas que se especifiquen en la clusula ORDER BY.
Columnas de un grupo que no sea de rompimiento. Indicar la secuencia en que se ordenarn las columnas de un grupo de rompimiento.
32
Se filtra a travs de la propiedad Filter Type del grupo. Existen tres tipos:
a. b.
First/Last: Muestra los n primeros o ltimos registros que recupera el query. PL/SQL: Muestra los registros que cumplan con la condicin dada en la funcin PL/SQL.
33
Se pueden crear dos queries que se ejecuten en forma separada o que se ejecuten en forma maestro detalle. Los queries se pueden unir mediante Data Link ( ).
34
Manual: Usando la clusula WHERE para formar la liga. Automtica: Usando constraints primary key y foreign key para formar la liga.
SQL Clause: Clusula por la cual se unirn las columnas, por default WHERE. Condition: Condicin de comparacin. Parent Group/Column: Grupo y columna padre. Child Query/Columna: Query y columna con la que se une el grupo.
35
Muchos maestros con pocos detalles: Query simple. Pocos maestros con muchos detalles: multiples queries.
36
3. Ejercicios
1. Crear un reporte que contenga dos queries no relacionados. En el primer query (Q_Customer) se debe seleccionar el Id, nombre y direccin de todos los clientes. En el segundo query (Q_Sales_Order) se debe seleccionar el Id de la orden, el importe total y el id del cliente que la realiz. Ejecute el reporte el estilo tabular. 1. En el mismo reporte, ligue los dos queries para crear un reporte maestro detalle. En el detalle no se debe mostrar el id del cliente. Ejecute el reporte en estilo Group Left y despus con estilo Group Above. 2. Salve el reporte como P3_1.RDF.
37
3. Ejercicios
1. 2. 3. 4.
Crear un reporte similar al anterior pero utilizando solamente un query. Ordene el detalle (sales order) por el total. Ordene el maestro (customer) por el id. Salve el reporte como P3_2.RDF Crear un reporte que tenga la siguiente estructura.
Location: name_location Department: name_department Id Last Name Salary
5.
emp_id
emp
last_name emp_salary
38
40
Muchas propiedades son las mismas para los diferentes tipos de columnas.
a. b. c. d. e.
Name: Nombre de la columna. Column Type: Tipo de columna (de base de datos, summary, frmula, placeholder) Data Type: Tipo de dato. Width: Mximo nmero de carateres permitidos. Value if Null: Valor que utilizar en lugar de valores nulos. En las columnas frmulas aparece un botn para invocar el Editor de PL/SQL.
41
No se pueden eliminar desde el Object Navigator o desde el Data Model. Propiedades especficas:
a. b.
Read From File: Para indicar que la columna contiene nombres de archivos. File Format: Se especifica el formato de los archivos a los que hace referencia la columna.
42
1 2
1 2 3
Se crea la columna Frmula dentro del grupo. Se configuran sus propiedades (F4 o doble clic) Se invoca el Editor PL/SQL
43
Mantienen un valor que ha sido calculado y asignado por cdigo PL/SQL. Puede tomar su valor de:
a. b.
c.
Un trigger Before Report. Una columna frmula a nivel reporte. Una columna frmula en el mismo grupo del placeholder.
44
Ejecuta una funcin predefinida sobre los valores de otra columna. Se puede crear de dos formas:
a. b.
Propiedades especficas:
a. b. c.
Usando la herramienta Summary Column de la paleta de herramientas. Utilizando la pestaa Totals del Data Wizard o de Report Wizard.
Function: Funcin que se ejecutar. Source: Columna en la que se ejecutar la funcin. Compute At: Slo disponible para la funcin % Total,
d.
indica el grupo sobre el cual se calcula un por ciento del total. Reset At: Indica el grupo en el cual el valor de la columna summary se reinicia a cero,
45
% total por employee Suma total por department % total por department
4. Ejercicios
1.
2.
En el reporte P3_1 (customer-sales orders) cree una columna summary en el maestro, que muestre cuantas partidas tiene cada detalle. Salve el reporte. Cree un reporte maestro-detalle con las siguientes especificaciones: El reporte debe de representar la relacin entre los representantes de ventas y las rdenes que han tomado. El grupo maestro debe tener el id y nombre completo de los empleados. El grupo detalle debe tener el id de la orden, el importe, el id y nombre del cliente que pidi la orden (el id y el nombre deben estar concatenados)
a.
Crear una columna summary que sume el importe de las ordenes tomadas por cada cliente.
47
4. Ejercicios
a.
b.
Crear una columna summary que calcule el porcentaje que representa las ventas de cada empleado con respecto a las ventas totales. Salve el reporte como P4_1.PDF
48
5. Objetos de Layout
5. Objetos de Layout
Layout de un Reporte
Creado por default es la opcin ms rpida y eficiente. Una vez que se ha creado el layout default, se puede ampliar utilizando el editor de Layout.
50
5. Objetos de Layout
Deferentes Objetos de Layout
Cursor normal Gira un objeto seleccionado Incrementa el zoon Selecciona todos los objetos de un frame Cambia la forma de un polygon o polyline Objetos boilerplate
5. Objetos de Layout
Secciones de un Reporte
Permite definir mltiples layouts en el mismo reporte, cada uno con diferente pgina del layout, tamao de pgina u orientacin. Se pueden definir hasta tres secciones de reporte: Header Section, Main Section y Trailer Section. Cada uno se conforma por las reas body y margin. Un reporte se define en la seccin main.
52
5. Objetos de Layout
Pginas Lgicas y Pginas Fsicas
Pgina Fsica: representa la pgina impresa actual en su impresora. Pgina Lgica: representa una pgina conceptual en la cual se puede disear el layout para el reporte. Una pgina lgica puede convertirse en n pginas fsicas. Propiedades del main section:
a. b.
Width/Heigth: Ancho y alto de la pgina fsica. Vertical/Horizontal Panel per Page: Nmero de pginas fsicas que contienen una pgina lgica.
53
Tabular
Group Left
Form-Like
Group Above
Form Letter
Mailing Label
55
Matrix
56
Las etiquetas y los fields se repiten por igual. Solo se muestra un registro por pgina, se puede configurar con las propiedades del Repeating Frame.
57
Representa una relacin Maestro-Detalle. Todas las etiquetas slo aparecen al inicio de la hoja.
58
Las etiquetas se imprimen cada cambio de grupo, tanto las de maestro como las de detalle.
59
Se combina el valor que regresan las columnas con texto. Se pueden imprimir varias en una misma hoja o una por hoja. Se agrega un paso extra al Report Wizard ya conocido, donde se agrega el texto y las columnas.
60
61
62
Across
Nueva pgin a
Down/Across
Down
Nueva pgina
63
6. Ejercicios
1.
Cliente: nombre del cliente Fecha: fecha de la primer orden del cliente. Importe: suma de los importes totales de las rdenes
1.
6. Ejercicios
1.
2.
Crear un reporte de matriz que muestre las ventas anuales de cada empleado con las siguientes especificaciones:
a.
En los renglones se debe mostrar la clave y el nombre de los productos. En las columnas se debe mostrar los nombre de los meses. En las celdas se debe mostrar el importe de las ventas mensuales de cada producto. Agregue una columna summary al reporte. Salve el reporte como P6_2.rdf.
6. Ejercicios
a. b. c. d.
En las columnas se debe mostrar los aos. En las celdas se debe mostrar el importe de las ventas anuales de cada empleado. Agregue una columna summary al reporte. Salve el porte como P6_3.pdf.
66
Usar la barra de herramienta para crear nuevos frames y repeating frames. Los frames tienen las convenciones de nombramiento default.
Desplegar resultados totales, relativos a todos los objetos de un frame. Asegurarse que algunos objetos se impriman juntos en la misma pgina. Dividir el reporte en secciones.
68
Los frames se imprimen de acuerdo a un ancla. Los repeating frames se imprimen uno por registro. Los fields son creados:
a. b.
Por default, dependiendo el estilo del layout. En el Layout Editor. Por default, dependiendo el estilo del layout. En el Layout Editor.
69
Frame
Text
Repeating Frame
70
Field
Vertical/Horizontal Elasticity:
-
b.
Los objetos se encierran o agrupan con los Frames y Repeating Frames. Para sacar un objeto de algn Frame se debe inhabilitar el modo confine.
ON
OFF
72
Indica si un frame o repeating frame se expande o se contrae para acomodar a cualquier otro objeto dentro de l y que est siendo movido o cambiado de tamao.
73
Despliega datos de un parmetro o de una columna. Tambin puede desplegar valores de variables de sistema, como:
a.
b.
74
las columnas, parmetros y variables disponibles. Visible: Indica si se mostrar al ejecutar el reporte. Data type/Width: Tipo de datos y longitud, siempre son heredadas de la fuente de dato. Value if Null: Valor que mostrar en caso de que la fuente regrese un valor nulo. Format Trigger: Trigger para cambiarle el formato al field. Si regresa TRUE se muestra, FALSE no se muestra.
75
Texto Grficos
Imagen importada
Archivo Link
76
7. Ejercicios
1.
2. 3.
En la parte superior izquierda se debe mostrar un logotipo, cualquier imagen importada. En la parte superior derecha la fecha actual. Tambin se debe mostrar el nmero de pgina actual (n) y el nmero de pgina total (m).
b.
c.
d.
Debe crear una matriz con grupo. Las matrices deben estar agrupadas por el ao. Salve el reporte como P7_1.rdf. Modifique la estructura de la matriz para crear una matriz anidad por renglones. Las matrices deben estar anidadas por ao. Salve el reporte como P7_2.rdf.
77
8. Anchors y Botones
8. Anchors y Botones
(Anchors) Anclas y Botnes
Las anclas determinan la posicin vertical y horizontal de objetos padre/hijo. Hay dos tipos de anclas.
a. b.
Los objetos pueden ser anclados condicionalmente. Los botones son utilizados para agregar funcionalidad.
Implcitas: No son visibles, creadas por reports. Explcitas: Visibles, creadas por el diseador.
79
8. Anchors y Botones
Creando una Ancla Explcita
Se debe atar la orilla del objeto hijo a una orilla del objeto padre. Pasos para crear un anchor:
a. b. c.
Seleccione la herramienta Anchor de la paleta de herramienta del Layout Editor. Haga clic en el objeto hijo. Mueva el apuntador del mouse a una orilla del objeto padre y haga doble clic para fijar el anchor.
Padre
Hijo
80
8. Anchors y Botones
Propiedades de un Ancla
Child Object Name: Nombre del objeto hijo. Child Edge Type: Orilla en la cual el anchor est
atado.
de la orilla del objeto hijo, donde se localiza el objeto. Parent Object Name: Nombre del objeto padre. Parent Edge Type: Orilla del objeto padre en la cual el anchor est atado. Parent Edge Percent: Porcentaje a lo ancho o a lo largo de la orilla del objeto padre. Collapse Horizontally/Vertical: Indica si el anchor deber tener una longitud cero si el objeto padre no se imprime. Removiendo el espacio horizontal o vertical. 81
8.Anchors y Botones
Botones
Agregan funcionalidad a un reporte. Dos tipos de botones: a. Default: Para columnas multimedia. b. Creados por el diseador Se crean en el Layout Editor, utilizando la herramienta button.
82
8. Anchors y Botones
Propiedades de un Botn
botn, puede ser texto o icono. Text: Etiqueta del botn, slo aparece si el Label Type es igual a Text. Icon Name: Nombre del icono que mostrar el botn, slo aparece si el Label Type es igual a Icon. Type: Indica el tipo de accin a ser ejecutada cuando se oprime el botn.
83
8. Anchors y Botones
Caractersticas de un Botn
No es visible cuando se imprime el reporte o cuando se ejecuta en modo caracter. Es visible en el Previewer. No puede ser rotado. Para ver el botn al momento de diseo, se debe ejecutar el Runpreview. (View/Runtime Preview).
84
8. Ejercicios
1.
Crear un reporte que muestre, en estilo tabular, los nombres completos y la descripcin del puesto de todos los empleados.
a. b. c. d.
e.
Crear un objeto boilerplate con el texto: Lista de empleados de la empresa. Agrege un anchor para desplegar la etiqueta a la derecha y a la mitad de la lista de empleados. Ejecute el reporte y verifique que el texto se encuentra en la posicin especificada. Modifique el reporte para que slo se desplieguen los primeros 10 empleados. Verifique que al ejecutar el reporte, el texto tambin se despliega a la mitad de la lista. Salve el reporte como P8_1.rdf.
85
Cuatro tipos de objetos de layout tienen propiedades comunes: a. Frame. b. Repeating Frame. c. Field. d. Boilerplate. Hay tres tipos de propiedades comunes: a. Tamao. b. Paginacin. c. Impresin y Formato.
87
Para que un objeto se imprima correctamente se debe configurar las propiedades correctamente, se puede usar la siguiente tabla:
Print Direction Horizontal Elasticity Down Fixed Across Variable Down/Across Variable Across/Down Variable
Vertical Elasticity
88
Propiedades de paginacin:
a.
b.
formateado una pgina lgica despus de donde debera de haberse impreso originalmente. Todos los hijos externos tambin se imprimen en la nueva hoja. Los objetos no relacionados se imprimen en la hoja original. Page Break After: Fuerza a todos los hijos externos, a que se impriman en la siguiente pgina lgica. Esto es, todos los objetos hijos que estn anclados al objeto actual, reaccionan como si ellos mismos tuvieran la propiedad Page Break Before en Yes.
89
Propiedades de paginacin:
a.
b.
90
91
92
93
94
c.
objeto padre se va a imprimir el objeto. Base Printing On: Determina si el objeto padre es un frame (Enclosing Object) o un objeto al que se est anclado (Anchoring Object). Printer Code Before/After: Es la referencia a un cdigo en un archivo de definicin de una impresora que est relacionado con una secuencia de escape de la impresora.
95
Para desplegar la elipse solamente en la primera pgina lgica en la cual se imprime el frame (objeto que lo encierra) se debe poner Print Object On en First Page y Base Printing On en Enclosing Object. Para desplegar el texto en todas las pginas lgicas del frame, excepto la primera, se debe poner Print Object On en All But First Page y Base Printing On en Enclosing Object.
Continuacin... Continuacin... Continuacin...
96
Determina si un objeto se desplegar o no, y con que caractersticas lo har. Todos los objetos en sus propiedades tienen la propiedad Trigger Format. Se puede crear el formato condicional desde el men Format/Conditional Formatting. Si el trigger regresa TRUE se muestra el objeto, si regresa FALSE no se muestra.
97
98
Model que proporciona la fuente de datos. Print Direction: Especifica la direccin en la cual se imprimirn los registros. Maximum Record per Page: Nmero mximo de registros que se pueden desplegar en una sola pgina. Minimun Window Record: Nmero mnimo de registros de un grupo que se pueden desplegar al final de una pgina. Column Mode: Especifica si se mantiene la columna para cada registro a travs de varias pginas. Horizontal/Vertical Space Between Frames: Espacio horizontal y vertical entre cada registro.
100
101
Pgina 1
Pgina 1
Pgina 1
Pgina 1
Pgina 1
102
despliegue para los valores del field. Los formatos que se utilizan son los mismos que en SQL. Esta propiedad tiene atada una lista de la que se puede seleccionar un formato. Minimun Widow Lines: Especifica el nmero mnimo de lneas de un field que se pueden desplegar al final de una pgina. Es similar a la propiedad Minimum Widow Records. Esta propiedad slo est disponible, si el tipo de dato del field es Varchar2.
104
Cada vez que se ejecuta el reporte se busca el archivo ligado y se carga la ltima informacin del archivo.
105
Si el contenido del archivo va a cambiar es mejor usar un link file. Se debe considerar que una imagen importada es almacenada con el reporte, por lo tanto el reporte es mas grande en tamao. Si la imagen es importada el archivo se ejecuta ms rpido, ya que no tiene que hacer bsqueda de archivos.
106
10. Ejercicios
1.
Cree un reporte que muestre los datos de los clientes en forma de etiqueta.
a.
La salida debe ser semejante a como se muestra a continuacin. Las palabras en cursiva hacen referencia a columnas de la tabla clientes.
Nombre: name Direccin: address Ciudad: city Municipio: state C.P. zip_code 0.5 pulgadas Nombre: name Direccin: address Ciudad: city Municipio: state C.P. zip_code Nombre: name Direccin: address Ciudad: city Municipio: state C.P. zip_code Nombre: name Direccin: address Ciudad: city Municipio: state C.P. zip_code
0.5 pulgadas
107
10. Ejercicios
a. b. c. d.
1.
La direccin de impresin debe ser Across/Down. Configure el alto de la pgina a 5 pulgadas. Slo se deben poder imprimir 6 etiquetas por pgina. Salve el reporte como P10_1.pdf
b.
La ltima modificacin al reporte P6_1 se import una imagen. Elimine esa imagen e incluya un link file para ligar el archivo que se elimin. Altere el formato de las mscaras de fechas. Para la fecha actual (en el encabezado) debe ser: 11-Nov-1992. Para la fecha de la primera compra (en el texto) debe ser como: 04/11/1992.
108
10. Ejercicios
a.
b.
Altere las mscara del importe y del bono para que se despliegue el smbolo de pesos y una coma para separar los miles. Salve el reporte.
109
c.
d. e. f.
Datatype: Especifica el tipo de dato del parmetro. Width: Longitud del parmetro. Input Mask: Mscara de entrada para los tipos de datos numricos y fecha. Initial Value: Valor inicial, se debe incluir el valor con la mscara adecuada si es que la tiene. Validation Trigger: Trigger que vlida el valor del parmetro, es cdigo PL/SQL. List of Value: Abre la ventana Parameter List of Values, se convierte el parmetro en tipo de entrada del list item.
111
b.
Desde una unidad de programa se hace referencia con el nombre del parmetro precedido de dos puntos.
Referencia Bind: El parmetro se puede creado automticamente. Se hace referencia poniendo el nombre del parmetro precedido de dos puntos (:parmetro) Referencia Lxica: Debe ser creado previamente el parmetro. Se hace referencia poniendo el nombre del parmetro precedido del signo ampersand (&parmetro).
112
113
114
El query debe mostrar 2 columnas. La primera del tipo de dato del parmetro
115
BACKGROUND: Indica si el reporte se ejecutar en modo background. COPIES: Nmero de copias a imprimir. Si DESTYPE=PRINTER. CURRENCY: Smbolo para indicador la moneda. DECIMAL: Smbolo para indicador de decimales. DESFORMAT: Definicin del dispositivo de salida, ignorado si DESTYPE=SCREEN/PREVIEW. Slo es aplicable para modo carcter. DESNAME: Nombre del destino, como el nombre de un archivo, el nombre de la impresora; ignorado si DESTYPE=SCREEN/PREVIEW.
116
DESTYPE: Tipo de destino de reporte, puede ser: SCREEN, PREVIEW, PRINTER, MAIL y FILE. MODE: si el reporte se ejecuta en modo bitmap o caracter. ORIENTATION: Direccin de impresin. Default, Portrait, Landscape. PRINTJOB: Indica si en tiempo de ejecucin mostrar la caja de dilog print job. THOUSANDS: smbolo para indicador de miles.
117
11. Ejercicios
1.
d.
e.
f.
Cree un parmetro llamado p_type. En este parmetro se debe capturar el tipo de cliente. Cree un parmetro llamado p_employee. En este parmetro se debe capturar un id de empleado. Modifique el query del reporte de forma tal que cuando se ejecute el reporte, slo se muestren los clientes de type igual a p_type y que sean entendidos por el empleado p_employee. Especifique una lista de valores esttica para el parmetro p_type. ste lista debe tener los valores: Excellent, Good y Bad. Especifique una lista de valores para el parmetro p_employee. sta lista debe mostrar el nombre del empleado completo de los representantes de ventas. Salve el reporte como P11_1.rdf.
119
Nivel Reporte:
a.
Data Model:
a. b.
Cinco triggers predefinidos. Frmula (Columna). Filtro (Grupo). Validacin de parmetros. Triggers de formato en muchos objetos.
c.
Layout:
a.
121
Trigger a Nivel Reporte. Filtro de Grupo. Trigger de Validacin. Trigger de Formato. Columna Frmula.
122
After Despus de que se despliega Parameter el Runtime Parameter Form. Form Se dispara an si esa ventana est suprimida. Before Report
Antes de que se ejecute el Ejecutar procedimientos de reporte, pero despus de que iniciacin. los queries son parseados y los datos recuperados.
123
124
Columna Frmula:
Los triggers de formato existen en: a. Frames. b. Repeating Frames. c. Fields. d. Objetos Boilerplate.
126
FUNCTION oculta_encabezados RETURN BOOLEAN IS BEGIN IF :count_emp = 0 THEN RETURN FALSE; ELSE RETURN TRUE; END IF; END;
127
Trigger de Formato
128
12. Ejercicios
1.
Cree un reporte estilo tabular, se debe listar el id de todas las ordenes, la fecha de la orden, la fecha de embarque y el importe. Adems se debe mostrar una columna que indique, con un asterisco, aquellas ordenes que han sido embarcadas ms de 10 das despus de haber sido ordenadas. El despliegue del asterisco, se debe controlar por dos mtodos:
a. b.
Mediante una columna frmula. Salve el reporte P12_1.pdf. Mediante una columna incluida en el SELECT y un trigger de formto. Salve el reporte P12_2.pdf.
129
Se puede crear un reporte que tenga mltiples formatos de salida. Para especificar la distribucin de un reporte haga lo siguiente.
a.
b.
c.
Seleccionar la seccin main, header o trailer. Seleccionar la propiedad DISTRIBUTION. Configurar los campos: - DISTRIBUTION ID: identificador para el destino. - DESNAME: nombre y ruta del archivo, impresora o e-mail de salida. - DESTYPE: tipo de destino de reporte. - DESFORMAT: formato de salida o manejador de impresora que se usar cuando DESTYPE=FILE. - COPIES: nmero de copias a distribuir.
131
Usar los botones New o Remove para agregar o quitar una definicin de distribucin. Para realizar la distribucin, seleccionar File/Distribution cuando se ejecute el reporte.
132
Para enviar un reporte a una salida de archivo diferente haga los siguiente:
a. b.
133
Un delimitador puede consistir de una serie de caracteres, tales como una coma o parntesis. Puede especificar un delimitador seleccionando File/Generate File/Delimited.
Separar los datos en la salida del reporte. Crear una salida fcil de exportar. Distinguir la celdas mediante el delimitador.
134
Para hacer referencia a cualquier procedimiento, funcin o excepcin del paquete se debe utilizar el paquete SRW (srw.message, srw.do_sql).
Controlar la ejecucin de un reporte. Mostrar mensajes en tiempo de ejecucin. Iniciar los valores de fields. Ejecutar sentencias DDL (para crear o borrar tablas temporales). Configurar dinmicamente atributos de formato, como estilo de fuente y patrones de relleno.
136
Se utiliza el procedimiento SRW.RUN_REPORT para ejecutar un reporte desde otro reporte. Se pueden levantar dos excepciones al ejecutar SRW.RUN_REPORT:
a. b.
SRW.RUN_REPORT_FAILURE: El reporte detalle no existe o falla durante su ejecucin. SRW.RUN_REPORT_BATCHNO: Uso inconsistente del parmetro BATCH: el reporte maestro se esta ejecutando con BATCH=YES, y el detalle con BATCH=NO.
137
Ejemplo:
PROCEDURE employeeButtonAction IS BEGIN SRW.RUN_REPORT('REPORT=EMP_PARAM DESTYPE=Screen BATCH=Yes P_DEPARTMENT_ID'||to_char(:department_id)); EXCEPTION WHEN SRW.RUN_REPORT_FAILURE THEN SRW.MESSAGE(100, 'Error al ejecutarse el reporte Employee'); RAISE SRW.PROGRAM_ABORT; END;
138
139
El procedimiento SRW.MESSAGE despliega un mensaje con un cdigo y una cadena, los cuales usted especifica. El mensaje se despliega con el siguiente formato: MSG-cdigo: texto Aparece en una pequea caja de dilogo. El cdigo del mensaje debe ser un nmero de mximo 10 dgitos. El texto del mensaje debe tener una longitud mxima de 190 caracteres. Se pueden levantar dos exceptiones al usar el procedimiento: SRW.INTEGER_ERROR y SRW.NULL_ARGUMENTS.
140
Estilo de fuente:
Grosor de Fuente:
141
b. c.
SRW.CONTEXT_FAILURE: Se llama a una funcin o procedimiento del paquete SRW desde un bloque PL/SQL donde no se puede aplicar esa funcin o procedimiento. SRW.NULL_ARGUMENTS: Se omiti un argumento no nulo. SRW.TRUNCATED_VALUE: Se intenta asignar un valor a una columna o parmetro, y ese valor es ms grande que el ancho del objeto.
142
14. Ejercicios
1.
Modifique el reporte P6_3.rdf para que el lugar de mostrar las ventas anuales por empleado, sean las ventas mensuales.
a. b.
c.
d.
Cree dos parmetros, llamados p_cuota_max y p_cuota_min. Los dos de tipo numrico y longitud 7. Si las ventas por mes de un empleado son menores a p_cuota_min, el importe de las ventas se debe desplegar subrayado y de color verde. Si las ventas del mes de un empleado son mayores a p_cuota_max, el importe de las ventas se debe desplegar en cursiva y de color rojo. Salvar el reporte como P14_1.rdf.
143
Reducir el nmero de queries. Ejecute todas las operaciones posibles en el query. a. Clculos. b. Clusula WHERE. Limitar la recuperacin de datos.
a. b. c.
145
Borrar los objetos no utilizados en el Data Model. Optimizar las columnas de rompimiento. Utilizar la misma fuente para mltiples objetos del layout.
146
Eliminar frames no utilizados. Utilizar bordes y rellenos transparentes. Utilizar un tamao fijo para objetos nogrficos. Utilizar un tamao variable para objetos grficos. Evitar la ejecucin innecesaria de triggers de formato. Evitar el clculo del nmero total de pginas para reportes grandes.
147
Se debe utilizar PL/SQ para ejecutar sentencias DML, slo utilizar SRW.DO_SQL cuando se necesite utilizar parmetros. Utilizar procedimientos almacenados en la BD para ejecucin de sentencias DML. Utilizar unidades de programa PL/SQL para operaciones que no involucren la BD. En general se recomienda escribir el cdigo PL/SQL dentro de unidades de programa locales, ya que se ejecutan ms rpido.
148
15. Ejercicios
1.
e. f. g. h.
Mostrar al cliente, las ordenes que ha solicitado ese cliente, y el detalle de las ordenes. Debe calcular el importe (precio * cantidad). Mostrar la descripcin de los productos. Indicar si el cliente ha excedido el lmite de crdito. El cual se calcula por el total de ordenes credit_limit, se debe mostrar un mensaje Lmite Excedido: monto_exceso. Desplegar los datos generales del cliente. Se debe recibir como parmetro un rango de clientes del cual se mostrar la informacin. Cada nuevo cliente se debe presentar en una nueva hoja. Se debe mostrar igual al ejemplo.
149
15. Ejercicios
1.
No. Prod.
No. Prod. 1 2
Orden: 621
Fecha: 15/07/87
150
Iniciar una sesin FTP para copiar el archivo RDF a la ruta adecuada.
152
Existir un directorio para cada responsabilidad, Inventory (inv), Order Managment (om), etc. La estructura de directorios estar:
TOP
inv
om
ap
etc
Version (11.5.0)
forms ESA US reports ESA US etc
Version (11.5.0)
Version (11.5.0)
153
A travs de un browser. Se necesita la direccin de conexin, un usuario y password. La primera vez que se conecte, pedir que se instale Jinitiator.
154
Una vez conectados, aparece todas las responsabilidades a las que se tienen privilegio.
155
156
157
Ejecutable: Nombre del archivo reporte, sin extensin. Abreviatura: Abreviatura al reporte, puede ser el
mismo que el ejecutable. Aplicacin: Aplicacin a la que se asocia el reporte. Descripcin: Descripcin de lo que hace el reporte. Mtodo de Ejecucin: Seleccionar Informes de Oracle (Reports). Nombre de Archivo en Ejecucin: Nombre del archivo reporte, sin extensin. Nombre de Subrutina: No se utiliza para reports. Camino Acceso Archivo Ejecucin: No se utiliza para reportes. Por ltimo se guardan los cambios echos.
158
Despus de configurar el ejecutable, se debe configurar el programa concurrente. Se entra a la opcin: Concurrente/Programa/Definir.
159
160
usuario para identificar el reporte. Abreviatura: Misma que se dio en la definicin del ejecutable. Aplicacin: Misma que se dio de alta en la definicin del ejecutable. Descripcin: Descripcin que ver el usuario para el reporte. Activo: Los programas concurrentes no se pueden eliminar, por lo tanto si ya no se desea utilizar algn programa se debe desactivar utilizando sta opcin.
161
Ejecutable:
a. Nombre: Nombre fsico del reporte. b. Mtodo: Informe de Oracle. c. Opciones: Nulo.
163
164
165
Desplegar:
a. Desplegar: Indica si se mostrar el parmetro. b. Desplegar Tamao: Tamao del campo de captura
(caja de texto).
166
167
Como ltimo paso para dar de alta un reporte, se asocia el Programa Concurrente a un grupo de solicitudes. Grupo de Solicitudes es la opcin donde el usuario podr acceder al reporte. Se encuentra en la opcin del men: Seguridad/Responsabilidad/Solicitud.
168
169
Buscar el grupo de solicitudes donde se agregar el reporte. Se recomienda que en la bsqueda se filtre por Aplicacin. Una vez que se encontr el Grupo de Solicitud, se agrega:
a. Tipo: Seleccionar el tipo concurrente, en ste caso ser Programa. b. Nombre: Buscar el nombre del Programa Concurrente
que se configur previamente.
Por ltimo se guarda los cambios. Buscar en el grupo de solicitud el reporte creado y probarlo.
170
Department
Department_Id
Job
Job_Id
Location
Location_Id
Products Salary_Grade
Salary_Id Product_Id
Customers
Customer_Id
Price Sales_Order
Order_Id
Items
Item_Id
Product_Id Start_Date
171