Você está na página 1de 74

Introduo

O Report Developer corresponde a um conjunto de ferramentas usadas para a construo de relatrios que, dinamicamente, recuperam, formatam e distribuem informaes armazenadas no banco de dados. Com este pacote tanto podemos publicar relatrios na Web ou gerar relatrios em ambiente cliente-servidor. As ferramentas agregadas nos do uma grande flexibilidade na construo e gerenciamento dos relatrios. Iniciando o Reports Antes de tudo, o OC4J deve ser iniciado: OC4J um servidor de aplicaes web java. Devemos trabalhar no ambiente de desenvolvimento usando este servidor para evitar qualquer eventual surpresa quanto ao funcionamento de nosso trabalho.

Iniciar o OC4J

Pgina 1 de 74

Iniciando o Reports
Ao desenvolvermos um relatrio, em qualquer ferramenta, claramente identificamos duas reas principais de trabalho: a parte de obteno dos dados e a parte de especificao do layout. A ferramenta que estudaremos a seguir possui estas duas reas ou estes dois conceitos bastante definidos, o que nos facilitar o estudo. Conceitos Iniciais: A ferramenta Report Builder capaz de construir mais de um tipo de mdulos diferentes: No nosso caso vamos estudar o Report Que consiste do relatrio em si, contendo reas para obteno dos dados, definio do layout, parmetros, etc. O fonte de um mdulo Report possui a extenso RDF o executvel REP. Alternativamente podemos gerar o fonte de um relatrio com extenso . XML.(nesta extenso as especificaes de layout no so arquivadas, somente a estrutura do relatrio.

Pgina 2 de 74

Criando o primeiro Reports (pelo assistente)


Quando voc inicia o reports ou criar um novo reports, a tela abaixo, permite que voc faa tudo via assistente. Mantenha a opo Usar o Assistente de Relatrio marcada e clique no boto OK.

Pgina 3 de 74

Clique no boto PRXIMO

Pgina 4 de 74

Escolha o tipo de lay-out

Criar Layout da web e de papel para exibir o resultado do relatrio tanto na Web e no Design

Create Web Layout apenas para mostrar o resultado do Relatrio na Web.

Create Paper Layout apenas para mostrar o resultado do relatrio no Design

Pgina 5 de 74

D um ttulo para o relatrio, escolha o estilo de relatrio Tabular. Ver abaixo.:

Pgina 6 de 74

Escolha o tipo e fonte de dados:

Pgina 7 de 74

Inicialmente temos de nos conectar a um banco de dados tela abaixo:

Pgina 8 de 74

Ao fazer a conexo com o banco surge a tela abaixo, para que possamos escolher do banco de dados qual a tabela ou tabelas faremos a query(busca) no nosso relatrio.

Pgina 9 de 74

Para o nosso primeiro relatrio vamos criar uma query manualmente, ento Informe a query para este relatrio. Ver abaixo.

Pgina 10 de 74

Selecione as colunas que vo aparecer no relatrio

Pgina 11 de 74

Se for necessrio totalizar, selecione a coluna e tipo de totalizao:

Pgina 12 de 74

Coloque as legendas de cada coluna:

Pgina 13 de 74

Selecione o um layout para o relatrio:

Pgina 14 de 74

Clique no boto finalizar

Pgina 15 de 74

O resultado do relatrio:

Pgina 16 de 74

Exerccio: Criar um relatrio de nome REPO1 com as seguintes caractersticas Criar somente layout de papel. Formato tabular. Todas as colunas da tabela departments. Incluir a quantidade de departamentos apresentados. Fornecer nomes adequados para os ttulos de coluna. Escolher o gabarito predefinido Gray.

Pgina 17 de 74

Pgina 18 de 74

Pgina 19 de 74

Pgina 20 de 74

Pgina 21 de 74

Pgina 22 de 74

Pgina 23 de 74

Pgina 24 de 74

Pgina 25 de 74

Pgina 26 de 74

Exerccio: Criar um relatrio de nome REPO2 com as seguintes caractersticas Criar somente layout de papel. Formato agrupar a esquerda. Criar um grupo de quebra (por cdigo do departamento) Usar as colunas: Cdigo do empregado, Primeiro nome, Ultimo nome, Salrio, Manager_id, Cdigo departamento. Incluir o soma de salrio. Fornecer nomes adequados para os ttulos de coluna. Escolher o gabarito predefinido Wine.

Pgina 27 de 74

Pgina 28 de 74

Pgina 29 de 74

Pgina 30 de 74

O que devemos fazer na tela abaixo?

Pgina 31 de 74

O que devemos fazer na tela abaixo?

Pgina 32 de 74

Qual seria a prxima tela?

Descrever aqui.

Pgina 33 de 74

Pgina 34 de 74

Para melhor entendimento deste nosso exemplo no seria melhor o ltimo nome ficar ao lado do primeiro nome?

Pgina 35 de 74

Exerccio: Criar um relatrio de nome REPO3 com as seguintes caractersticas Criar somente layout de papel Usar as colunas: Primeiro nome, Cdigo do departamento, Cdigo do empregado. Escolher o campo Cdigo do departamento como linha da MATRIZ Escolher o campo Cdigo do empregado como Coluna da MATRIZ Escolher o campo Primeiro nome como clula MATRIZ Fornecer nomes adequados para os ttulos de coluna. Escolher o gabarito predefinido Green.

Pgina 36 de 74

Pgina 37 de 74

Pgina 38 de 74

Veja como ficou o Modelo de Dados desta Matriz. Vamos ver modelo de dados em detalhe mais a frente.

Pgina 39 de 74

Pgina 40 de 74

Pgina 41 de 74

Pgina 42 de 74

Fornecer nomes adequados para as colunas.

Pgina 43 de 74

Veja o Layout de sada(papel) responsvel pelo relatrio abaixo. Vamos ver isto em detalhe mais a frente.

Pgina 44 de 74

Conhecendo os objetos do Report


Ao criar um novo reports, podemos optar os objetos abaixo:

Pgina 45 de 74

Tipos de Mdulos
Tipo do Mdulo Relatrio Descrio Definio de relatrios

Gabarito (ou Template)

Definio estrutural e padronizada de relatrios

PL / SQL Library

Biblioteca externa contendo procedures, functions e packages

Pgina 46 de 74

Navigator
Atravs do navigator, voc consegue visualizar todos os objetos do reports.

Pgina 47 de 74

Podemos acessar propriedades dos itens. Vamos alterar o nome do relatrio.

Pgina 48 de 74

No navigator, podemos visualizar trs sees principais:

Pgina 49 de 74

Modelo de dados
O modelo de dados (ou Data Model) composto por objetos que definem os dados a serem includos no report :

Pgina 50 de 74

Parmetros do Sistema
So os parmetros convencionais, j pr-definidos podendo ser alterados um a um, atravs da janela de propriedades.

Pgina 51 de 74

Parmetros do usurio
Alm dos parmetros pr-definidos pelo Reports, algumas vezes necessrio solicitar outros parmetros na execuo do relatrio. Na seo Parmetros do usurio, voc pode criar novos parmetros, configurando vrios itens na caixa de propriedades (tipo, tamanho, validaes pl/SQL, etc...). Os parmetros tambm pode utilizado nas queryes do relatrio.

Pgina 52 de 74

Consultas
Na seo Modelo de dados, temos uma diviso de grande importncia: Consultas. Neste item, podemos definir ou configurar a query principal do Reports (ou as queryes). Podemos definir propriedades em uma consulta, neste exemplo, vamos alterar o nome:

Pgina 53 de 74

Na caixa de propriedades, podemos visualizar ou alterar a query atravs da propriedade: INSTRUO DE CONSULTA SQL

Pgina 54 de 74

Editor de relatrio
Podemos clicar com o boto direito do mouse sobre a consulta e acessar o Editor de Relatrio.

Ser exibida a tela abaixo, onde j podemos visualizar a query principal. Observe no lado esquerdo superior, a frmula criada no assistente.

Pgina 55 de 74

Botes principais
- Modelo de dados: a tela visualizada na figura anterior, onde podemos manipular itens sobre a consulta.

Paleta de ferramentas do Editor de Relatrio: Modelo de dados


No lado esquerdo do Editor de Relatrio (Modelo de dados), est disponvel a paleta de ferramentas, onde possvel aumentar zoom, incluir consulta, incluir formulas, etc...

Pgina 56 de 74

- Fonte da Web: Exibe o cdigo fonte do relatrio

Pgina 57 de 74

- Layout de papel: Exibe o designer do relatrio, onde podemos alterar visualmente o aspecto de sada.

Paleta de ferramentas do Editor de Relatrio: Layout de papel


No lado esquerdo do Editor de Relatrio (Layout de papel), est disponvel a paleta de ferramentas, onde possvel selecionar itens, incluir legendas, incluir retngulos, retas, etc... Nesta mesma paleta de ferramentas, temos dois elementos de muita importncia: Quadro e Quadro de Repetio ( ou Frame e Repeat Frame).

Quadro (ou Frame): Agrupa os objetos dentro do layout.

Quadro de Repetio (ou Repeat Frame): Definem a condio de impresso dos fields (Down, Across, Down/Across, Across/Down) e quantidades de linhas que sero Impressas no report. Est sempre associado a um grupo.

Pgina 58 de 74

- Projeto de papel: Exibe o relatrio como ser visto pelo usurio

Pgina 59 de 74

- Form de parmetro de papel: Permite a confugurao da tela de parmetros do reports.

Pgina 60 de 74

Grupos
Nesta diviso, podemos visualizar todas as formas como query foi agrupada. No exemplo, no temos agrupamento na query, portanto, todas as colunas esto abaixo do mesmo grupo (nico grupo neste exemplo).

Sempre que necessrio, podemos gerar agrupamentos na query. Supondo que neste exemplo, precise agrupar por pais. Observe os passos para criar este agrupamento: 1) acesse o Editor de layout:

Pgina 61 de 74

2) clique no item pelo qual voc precisa agrupar e arraste para o lado:

3) Aumente o novo grupo que foi gerado e inclua a coluna (ou as colunas) necessrias:

Retorne diviso Grupos e observe as modificaes na estrutura:

Pgina 62 de 74

Colunas de Frmula
Nesta diviso podemos ter acesso a todas as formulas do relatrio.

Colunas de Resumo
Nesta diviso podemos ter acesso a todos os totalizadores do relatrio. No exemplo atual, temos um totalizador de somatrio.

Colunas do Marcador de espao

Tambm conhecido como PLACEHOLDER. uma coluna onde podemos defenir um valor em tempo de execuo, para ser utilizado em demais lugares no reports. Podemos criar placeholders para definir partes da sua query, fazendo com que a quey seja dinmica. Para criar um Placeholder ou marcador de espao, acesso MODELO DE DADOS e clique no boto conforme indicado na figura abaixo:

Pgina 63 de 74

Fonte da Web
Fonte da Web o caminho para configuraes via assistente de relatrio ou via Html (editor de relatrio).

Lay-out de papel
Atravs do Lay_out de papel, podemos visualizar todos os elementos disponibilizados para exibio no relatrio. divido inicialmente em: Seo de cabealho Seo principal Seo de Fechamento

Cada uma destas divises, possuem subdivises, conforme a figura abaixo:

Pgina 64 de 74

Form de Parmetro de Papel


Na seo Form de Parmetro de Papel, podemos configurar a tela de parmetros. Acessando atravs da opo:

Pgina 65 de 74

Gatilhos de Relatrio
Nesta seo, podemos incluir cdigos Pl/SQL nos gatilhos conforme necessidade

Pgina 66 de 74

Grupos
Nesta diviso, podemos visualizar todas as formas como query foi agrupada. No exemplo, no temos agrupamento na querye, portanto, todas as colunas esto abaixo do mesmo grupo (nico grupo neste exemplo).

Sempre que necessrio, podemos gerar agrupamentos na querye. Supondo que neste exemplo, precise agrupar por pais. Observe os passos para criar este agrupamento: 1) acesse o Editor de layout:

Pgina 67 de 74

2) clique no item pelo qual voc precisa agrupar e arraste para o lado:

3) Aumente o novo grupo que foi gerado e inclua a coluna (ou as colunas) necessrias:

Pgina 68 de 74

Retorne diviso Grupos e observe as modificaes na estrutura:

Colunas de Frmula
Nesta diviso podemos ter acesso a todas as formulas do relatrio.

Colunas de Resumo
Nesta diviso podemos ter acesso a todos os totalizadores do relatrio. No exemplo atual, temos um totalizador de somatrio.

Pgina 69 de 74

Colunas do Marcador de espao

Tambm conhecido como PLACEHOLDER. uma coluna onde podemos defenir um valor em tempo de execuo, para ser utilizado em demais lugares no reports. Podemos criar placeholders para definir partes da sua query, fazendo com que a quey seja dinmica. Para criar um Placeholder ou marcador de espao, acesso MODELO DE DADOS e clique no boto conforme indicado na figura abaixo:

Fonte da Web
Fonte da Web o caminho para configuraes via assistente de relatrio ou via Html (editor de relatrio).

Lay-out de papel
Atravs do Lay_out de papel, podemos visualizar todos os elementos disponibilizados para exibio no relatrio. divido inicialmente em:

Pgina 70 de 74

Seo de cabealho Seo principal Seo de Fechamento

Cada uma destas divises, possuem subdivises, conforme a figura abaixo:

Form de Parmetro de Papel


Na seo Form de Parmetro de Papel, podemos configurar a tela de parmetros. Acessando atravs da opo:

Pgina 71 de 74

Gatilhos de Relatrio
Nesta seo, podemos incluir cdigos Pl/SQL nos gatilhos conforme necessidade

Exerccios I
1) Criar um relatrio para exibir fornecedor, produto e preo de venda. Deve ser agrupado por fornecedor. Totalizar por preo de venda.

Usando Reports Triggers


Permitem a execuo de funes PL/SQL em momentos especficos durante a execuo e formatao do relatrio, possibilitando:

Pgina 72 de 74

Customizar a formatao do relatrio. Executar tarefas de inicializao. Acessar o banco de dados.

Acessando as Report Triggers


Voc pode acessar as Report Triggers pelo Object Navigator. Abra o nodo Report Triggers e d um duplo clique no cone a esquerda da trigger desejada, para abrir a unidade de programa.
Trigger Before Parameter Form Momento de disparo Antes de mostrar a tela de parmetros, mesmo que a tela de parmetros seja suprimida. Usado para Acessar e trocar valores de parmetros(fornecidos pelo valor default/initial ou pela linha de comando). Acessar e trocar valores de variveis globais. Criar tabelas temporrias. Inserir valores em tabelas que sero consultadas. Acessar e trocar valores de parmetros(fornecidos pelo valor default/initial, pela linha de comando ou entrados pela tela de parmetros). Acessar e trocar valores de variveis globais. Criar tabelas temporrias. Inserir valores em tabelas que sero consultadas. Executar procedimentos de inicializao

After Parameter Form

Depois de mostrar a tela de parmetros, mesmo que a tela de parmetros seja suprimida.

Before Report

Between Pages

After Report

Antes da execuo do relatrio, mas depois da consulta(SELECT) executar o parse e a recuperao dos dados. Antes de cada pgina ser formatada, Executar customizao de formatao exceto a primeira pgina. No de pginas. Previewer disparada somente uma vez para cada pgina mesmo que a pgina seja revisitada. Depois de sair do Previewer ou do Deletar tabelas temporrias relatrio ser enviado para o destino. Disparada somente se a execuo do relatrio for feita com sucesso.

Pgina 73 de 74

Criando uma clusula WHERE dinmica


Utilize a trigger After Parameter Form para construir uma clusula WHERE dinmica dependendo do valor de um parmetro bind que o usurio entra em momento de execuo. Existem duas possibilidades: O parmetro bind no nulo: a clusula WHERE restringe a consulta. O parmetro bind nulo: a clusula WHERE tambm nula. Exemplo da trigger After Parameter Form: FUNCTION AfterPForm RETURN BOOLEAN IS BEGIN IF :p_customer IS NULL THEN :p_where_clause := ; ELSE :p_where_clause := where id > :p_customer; END IF; RETURN(TRUE); END;

Exemplo da Query referenciando o parmetro lexical: SELECT ID, NAME FROM S_CUSTOMER &p_where_clause ORDER BY NAME

Pgina 74 de 74

Você também pode gostar