Você está na página 1de 62

Sistemas de Gesto de Bases de Dados

3 ano Informtica de Gesto





Manual de
Oracle Developer/2000














Elaborado por Cristina Maria Rodrigues Leito (Prof. Adjunta)

ESGS, 2001

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 1


Indce

Introduo............................................................................................................ 2
Antes de comear................................................................................................. 2
I. Oracle Forms ................................................................................................... 3
Como entrar no Forms .................................................................................. 3
Criar blocos com o Assistente de Blocos...................................................... 4
Criar telas com o Assistente para Disposio de Ecr .................................. 7
Executar uma ficha........................................................................................ 11
Fichas com vrios blocos .............................................................................. 11
Utilizao de Triggers................................................................................... 14
Lista de triggers existentes............................................................................ 16
Introduo manual de itens ........................................................................... 17
Introduo manual de itens da base de dados ............................................... 18
Menus............................................................................................................ 19
Configurao do Oracle Developer 2000...................................................... 23
Janelas MDI .................................................................................................. 24
Blocos Mestre/Detalhe.................................................................................. 25
Listas de Valores........................................................................................... 29
Trigger Post-Query........................................................................................ 32
Mais sobre itens ............................................................................................ 33
Trigger Pre-Query......................................................................................... 34
Comandos de navegao............................................................................... 38
Introduo de Barra de Ferramentas ............................................................. 41
II. Oracle Reports................................................................................................. 42
Como entrar no Reports ................................................................................ 42
Criar um novo relatrio................................................................................. 43
Modelo de dados ........................................................................................... 49
Modelo de Disposio no Ecr ..................................................................... 52
Relatrios com parmetros............................................................................ 56
III. Reports e Forms ............................................................................................ 58
Ligar o Forms ao Reports.............................................................................. 58
Utilizar parmetros enviados pelo Forms ..................................................... 60



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 2
Introduo


O Developer 2000 da Oracle um conjunto de ferramentas que pode ser usado para
gerar as aplicaes de cliente. Aos interfaces gerados para as aplicaes de cliente
d-se o nome de forms ou fichas. Os vrios forms so teis para a introduo de dados e
todos os tipos de requisies de dados feitas pelo utilizador. No mbito do cliente,
importante dispor tambm de ferramentas para gerar relatrios, alm de outras teis ao
desenvolvimento de aplicaes de cliente. O Developer 2000 um package que inclui a
ferramenta Forms 6 para gerar forms e o Reports 6 para gerar relatrios.

O Oracle Forms 6 uma linguagem orientada a objectos, atravs da definio dos
objectos e orientada a eventos, atravs da programao de triggers. A maior dificuldade
no desenvolvimento de aplicaes em Forms 6 est em entender todas as regras que
fazem disparar cada trigger, mas uma vez ultrapassado este problema, possvel
controlar todos os aspectos no comportamento das aplicaes com bastante facilidade.

O Oracle Reports 6 possui caractersticas que permitem desenvolver relatrios de alta
qualidade em pouco tempo. A forma de implementar os relatrios bastante facilitada,
exigindo pouca programao. O programador pode optar por escolher um tipo de
relatrio por defeito, ou desenh-lo ele atravs de cliques com o rato na sua folha de
desenho.



Antes de Comear

Ser necessrio preparar a sua conta para poder efectuar os exerccios deste manual.

No SQL Plus entre na sua conta e execute o ficheiro tabelas_scott.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 3
I. Oracle Forms


Como entrar no Forms

Ligue o oracle em Start Database se estiver a utilizar Personal Oracle

Entre na aplicao Oracle Developer Forms Builder



Para efectuar e ligao base de dados seleccione no menu Ficheiro a opo Ligar
e introduza os dados da sua conta. Efectue a ligao utilizando o nome, password e
base de dados da sua conta.



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 4
Criar blocos com o Assistente de Blocos

Um bloco de dados est normalmente ligado a uma tabela da base de dados e faz parte
de uma ficha.

Clique em cima da palavra blocos e depois no boto e ir aparecer a seguinte
caixa de dialogo.

Nesta caixa de dialogo seleccione a primeira opo para utilizar o assistente de
blocos.



Seleccione novamente a primeira opo (tabela ou vista) e clique no boto
Seguinte.



Clique no boto percorrer para seleccionar a tabela ou vista da base de dados.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 5


Seleccionar a tabela emp.



Seleccione os atributos: empno, job, hiredate, sal e comm.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 6


Na prxima caixa de dialogo opte por terminar o bloco (Apenas criar o bloco).

Pode verificar no Navegador de objectos que j tem um bloco com o nome EMP.

Clique no (+) para expandir o bloco EMP.



Ir verificar que pode introduzir triggers directamente no bloco ou em cada um dos seus
itens (atributos). Os triggers so blocos em linguagem PL/SQL associados aos
objectos do Forms.

Para visualizar as propriedades do bloco ou dos seus atributos clique com o rato duas
vezes em cima do objecto que pretende ver as propriedade ou clique no boto direito do
rato e seleccione Paleta de Propriedades.

Abra a Paleta de Propriedades do item EMPNO. Verifique e tente entender as
propriedades definidas para este item. Utilize a Ajuda se necessrio.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 7




Criar telas com o Assistente para Disposies no Ecr

Verifique que no existem ainda telas criadas.

Clique em cima do bloco EMP e clique depois no boto direito do rato que
desencadear o seguinte menu:

Seleccione a opo Assistente para Disposies no Ecr.



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 8
Seleccione Tela Nova e Contudo e depois prima o boto Seguinte.



Agora seleccione todos os itens do bloco EMP e determine o seu tipo na opo tipo
de item. Neste caso todos os itens sero do tipo texto. Estes so todos os itens que
ir visualizar na tela.



Clique no boto Seguinte.

Defina as etiquetas (labels) que iram aparecer na sua tela. Deixe os valores da altura
e largura dos itens como esto e clique no boto seguinte.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 9



Ir agora ter que optar por um estilo de disposio: Ficha ou Tabular.

Seleccione o tipo de disposio Ficha e prima o boto Seguinte.

No proximo ecr introduza os dados apresentados na imagem seguinte e prima
depois na tecla seguinte.



Prima o boto terminar e ir entrar no editor de telas onde poder alterar a
disposio dos itens.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 10


Dentro deste editor poder introduzir vrios tipos de objectos como pode verificar.
Tente explorar os vrios objectos e as vrias funcionalidades deste editor. Altere a
disposio e/ou etiquetas dos itens para que fiquem mais acessveis para o
utilizador.

Feche a janela do Editor de Telas para visualizar novamente o Navegador de
Objectos.

Ir verificar que foi criada uma nova tela.



Clique duas vezes em cima da nova tela e ir entrar novamente no Editor de Telas.

Saia novamente para o Navegador de Objectos.

Atravs do menu Ficheiro/Guardar, grave agora a sua ficha dando_lhe o nome
EXEMPLO_MANUAL.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 11
Executar uma ficha

Clique uma vez em cima da sua ficha (neste caso ser o MODULE1).

Clique em cima de (executar ficha) ou seleccione a opo do menu
Programa/Executar Ficha.



Tente explorar as vrias opes do menu utilizado por defeito pelo Forms.



Fichas com vrios blocos

Exerccio:
Agora crie na mesma ficha um novo bloco DEPT referente tabela DEPT. Este
bloco dever incluir todos os atributos da tabela DEPT. Opte por Juno
Automtica de Blocos quando lhe for pedia a definio de blocos Mestre Detalhe.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 12


Aps a criao do bloco ente no Assistente para Disposies no Ecr.

Introduza o bloco numa tela nova de contedo.



Seleccione todos os itens e desta vez seleccione a disposio tabular. Introduza
posteriormente os dados apresentados na figura seguinte.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 13


Aps a entrada no editor de telas vai verificar que a disposio agora tabular e pode
visualizar 20 registos de cada vez.

Execute agora a ficha. Ir verificar que cada vez que executar esta ficha, esta ir
sempre entrar no bloco DEPT ignorando agora o bloco EMP.

Grave novamente a sua ficha.

Altere os nomes das telas para empregados e departamentos respectivamente.






Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 14
Utilizao de Triggers

Em cima da palavra Triggers (depois de EXEMPLO_MANUAL) clique no boto
.


Seleccione o trigger WHEN-NEW-FORM-INSTANCE. Este trigger ser
desencadeado cada vez que executado uma nova ficha.



Introduza o seguinte comando em PL/SQL:




GO_BLOCK posiciona o cursor no respectivo bloco.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 15
Outros comandos GO:

GO_FORM posiciona o posiciona o cursor na respectiva ficha;
GO_ITEM - posiciona o cursor no respectivo objecto (atributo);
GO_RECORD - posiciona o cursor no respectivo registo.


Clique no boto Compilar.

Se no existirem erros clique no boto Fechar.

Execute a ficha.

Verifique que quando executa a ficha, o bloco EMP fica logo activo, visto o
trigger WHEN-NEW-FORM-INSTANCE estar a ser executado com o comando
GO_BLOCK(EMP);

Outra alternativa:
SHOW_VIEW(EMPREGADOS); - para apresentar a tela EMPREGADOS.
HIDE_VIEW esconde a respectiva tela.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 16
Lista de triggers existentes

Delete-Procedure
Function Key Triggers
Insert-Procedure
Key-Fn
Key-Others
Lock-Procedure
On-Check-Delete-Master
On-Check-Unique
On-Clear-Details
On-Close
On-Column-Security
On-Commit
On-Count
On-Delete
On-Dispatch-Event
On-Error
On-Fetch
On-Insert
On-Lock
On-Logon
On-Logout
On-Message
On-Populate-Details
On-Rollback
On-Savepoint
On-Select
On-Sequence-Number
On-Update
Post-Block
Post-Change
Post-Database-Commit
Post-Delete
Post-Form
Post-Forms-Commit
Post-Insert
Post-Logon
Post-Logout
Post-Query
Post-Record
Post-Select
Post-Text-Item
Post-Update
Pre-Block
Pre-Commit
Pre-Delete
Pre-Form
Pre-Insert
Pre-Logon
Pre-Logout
Pre-Popup-Menu
Pre-Query
Pre-Record
Pre-Select
Pre-Text-Item
Pre-Update
Query-Procedure
Update-Procedure
User-Named
When-Button-Pressed
When-Checkbox-Changed
When-Clear-Block
When-Create-Record
When-Custom-Item-Event
When-Database-Record
When-Form-Navigate
When-Image-Activated
When-Image-Pressed
When-List-Activated
When-List-Changed
When-Mouse-Click
When-Mouse-DoubleClick
When-Mouse-Down
When-Mouse-Enter
When-Mouse-Leave
When-Mouse-Move
When-Mouse-Up
When-New-Block-Instance
When-New-Form-Instance
When-New-Item-Instance
When-New-Record-Instance
When-Radio-Changed
When-Remove-Record
When-Tab-Page-Changed
When-Timer-Expired
When-Validate-Item
When-Validate-Record
When-Window-Activated
When-Window-Closed
When-Window-Deactivated
When-Window-Resized


Para mais informaes sobre cada um destes triggers consulte o manual de referncia
Forms 60 ou a Ajuda.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 17
Introduo manual de items

Entre dentro do bloco EMP em cima da palavra items clique no boto .

Ir aparecer um novo item numerado. Modifique o seu nome para boto1 e clique
duas vezes em cima do mesmo para abrir a Paleta de Propriedades.

Altere a propriedades tipo de item para boto de opo, etiqueta para Departamentos
e tela para EMPREGADOS.




Verifique todas as propriedades na Paleta de Propriedades dos itens e tente entender
o significado de cada uma delas. Em caso de dvidas utilize as ajudas, manuais ou
pea auxilio ao professor da cadeira.

No trigger WHEN-BUTTON-PRESSED do item BOTAO1 introduza o seguinte
cdigo:



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 18
Agora entre na tela EMPREGADOS e arraste o boto na tela de forma a ficar numa
posio com esttica.

Execute a ficha.

Exerccio:
Introduza no bloco DEPT um boto para entrar no bloco EMP.



Introduo manual de itens da base de dados

Na tela de EMPREGADOS introduza um novo item de texto atravs do boto e
altere o seu nome para MGR.

Na Paleta de Propriedades do item MGR efectue as seguintes alteraes:
Tipo de Dados: Nmero
Tipo de item: item de texto
Tela: EMPREGADOS
Item da base de dados: sim




Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 19
Menus

Adicione um novo menu atravs da opo do menu Fichero/Novo/Menu ou do
boto .

Altere o nome do mdulo do menu para MENU_SCOTT.

Clique duas vezes em cima do menu para entrar no editor de menus.

Crie um menu igual ao da figura seguinte utilizando as ferramentas da barra de
ferramentas localizada no topo do editor de menus.



- estes botes criam nveis de menus para baixo e para a direita
respectivamente.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 20
No navegador de objectos pode verificar que criou um menu com a seguinte
estrutura:



S ser possvel introduzir cdigo nos itens do menu e no nos objectos
hierarquicamente a cima.

Clique duas vezes em cima do item empregados e introduza o seguinte cdigo em
PL/SQL:



No item departamentos introduza o seguinte cdigo:



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 21
OPEN_FORM abre a respective ficha.

Ao abrir a ficha o controlo do programa determinado pela ficha exemplo_manual,
ento ser necessrio entrar no bloco que se pretende.

A soluo criar uma varivel global (neste caso a varivel menu).

Se :global.menu for 1, ento entra no bloco EMP. Se :global.menu for 2, ento entra no
bloco DEPT. Este controlo ser efectuado no trigger
WHEN-NEW-FORM-INSTANCE da ficha EXEMPLO_MANUAL atravs do seguinte
cdigo:



Introduza o cdigo da figura anterior efectuado no trigger
WHEN-NEW-FORM-INSTANCE da ficha EXEMPLO_MANUAL.

Uma varivel global permanece na memria mesmo que se mude de ficha. O seu
sintaxe o seguinte:

:GLOBAL.nome_da_variavl

No necessria a sua declarao, basta inicializa-la.


Ser sempre necessrio introduzir cdigo em todos os itens na ltima hierarquia da
rvore de todos os menus.

Introduza o seguinte cdigo no item sair para sair do programa:


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 22


Como ainda no tem fichas criadas para os restantes itens do menu introduza um
nome temporrio de uma ficha. Nos restantes itens introduza o seguinte cdigo:



Grave a ficha (menu) MENU_SCOTT.

Crie uma nova ficha com o nome EXEMPLO_MENU.

Dentro da ficha EXEMPLO_MENU crie um bloco manualmente e introduza-lhe um
item de nome BOTAO1.

Na propriedade etiqueta do item BOTAO1 introduza Sair.

Introduza o seguinte cdigo para o item BOTAO1:



Crie uma nova tela com nome TELA_INICIAL.

Altere a propriedade tela no BOTAO1 para TELA_INICIAL.

Entre no Editor de Telas e crie a seguinte tela:

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 23


Clique duas vezes em cima do mdulo EXEMPLO_MENU para entrar na paleta de
propriedades para alterar as propriedades do mdulo menu para MENU_SCOTT.



Grave o menu e efectue a sua compilao atravs da opo do menu
Ficheiro/Administrao/Compilar ficheiro.

Grave e compile todas as outras fichas que j criou.

Execute a ficha EXEMPLO_MENU clicando em cima do seu nome e no boto
ou atravs da opo do menu Programa/Executar Ficha.



Configuraes do Oracle e Developer 2000

Para efectuar qualquer configurao relativamente ao Oracle ou ferramentas
doDeveloper 2000 entre no REGEDIT do WINDOWS em
HOT_KEY_LOCAL_MACHINE / SOFTWARE / Oracle.

Para no referir as directorias das fichas e dos menus entre no REGEDIT do
WINDOWS e adicione a directoria do seu trabalho no registo
HOT_KEY_LOCAL_MACHINE / SOFTWARE / Oracle / FORMS60_PATH.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 24
Janelas MDI

Maximize a janela MDI de EXEMPLO_MENU como MDI introduzindo o seguinte
cdigo no trigger PRE-FORM da mesma ficha:



Modifique o nome da janela que foi automaticamente criada para JANELA1.

Altere a propriedade Janela de Consola no paleta da ficha para JANELA1.

Altere as seguintes propriedades da JANELA1:



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 25
Blocos Mestre/Detalhe

Atravs do Forms pode-se fazer a ligao entre dois blocos atravs das suas chaves
primrias e forasteiras. No seguinte exemplo ir ser criada uma ficha onde se pode
visualizar todos os empregados de cada departamento.

Crie uma nova ficha com o nome EMP_DEPT;

Introduza um bloco com todos os atributos da tabela DEPT (com a disposio
tabular);



Crie um bloco para a tabela EMP com os seguintes atributos;



No prximo ecr clique em Criar Relao e opte por Juno Automtica de Blocos;



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 26


Note que o Forms criou a seguinte Condio de Juno:

EMP.DEPTNO = DEPT.DEPTNO
Bloco pai
chave primria chave forasteira



Seleccione uma disposio tabular com as seguintes propriedades para o bloco
empregados:



Execute agora a ficha e efectue algumas consultas aos departamentos. Dever obter
um ecr como o que est apresentado na figura seguinte.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 27


A Condio de Juno poderia ter sido criada manualmente aps a criao dos dois
blocos criando uma nova relao.



E posteriormente definindo as suas propriedades na paleta de propriedades.

Verifique as propriedades da relao DEPT_EMP.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 28


Introduza o comando para aceder ficha EMP_DEPT no item
Consultas_Menu/EmpregadosDepartamentos do menu MENU_SCOTT.

Grave e compile o menu e todas as fichas que foram alteradas.

Execute agora a mesma ficha EMP_DEPT atravs da ficha EXEMPLO_MANUAL.

Exerccio:
Desenvolva as fichas e cdigo apropriado para que a opo do menu
CONSULTAS_MENU/EMPREGADOS/MANAGER possa ser executada.




Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 29
Listas de Valores

Na ficha EXEMPLO_MANUAL, introduza um nome item NOME_MGR no bloco
EMP tela EMPREGADOS na propriedade item da base de dados introduza No.

Introduza tambm um novo boto BOT_LOV no bloco EMP tela EMPREGADOS
com as propriedades apresentadas na figura seguinte.



A sua tela dever agora ter o seguinte visual:



Na ficha EXEMPLO_MANUAL introduza uma nova Lista de Valores (LOV).

Utilize o Assistente para LOVs.

Seleccione Novo grupo de registo baseado numa consulta.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 30
Introduza o seguinte cdigo na Instruo de Consulta SQL:



Seleccione ambas as colunas para o LOV;

Para a coluna EMPNO clique no boto procurar item de retorno e seleccione
EMP.MGR;



Para a coluna ENAME clique no boto procurar item de retorno e seleccione
EMP.NOME_MGR;


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 31
Introduza o seguinte cdigo no boto BOT_LOV do bloco EMP:



Entre na paleta de propriedades do item MGR e defina as propriedades com os
valores que se apresentam na seguinte figura:



Execute a ficha.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 32
Faa um query Ficha, e er verificar que o nome do chefe no ser preenchido.





Trigger Post-Query

O trigger Post-Query permite, aps um query, preencher valores que no pertencem
mesma tabela que os outros valores do bloco.

No trigger Post-Query do bloco EMP da ficha EXEMPLO_MANUAL introduza o
seguinte cdigo:

Select ENAME into :EMP.NOME_MGR from EMP where EMPNO=:EMP.MGR;

Execute novamente a ficha e faa um query ao bloco EMP. Ir verificar que o valor
do nome do chefe j preenchido atravs do trigger Post-Query.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 33

FORD




Mais sobre itens

No bloco DEPT da ficha EXEMPLO_MANUAL introduza o item TOTAL_DEP.



Altere as seguintes propridades do item TOTAL_DEP:
Tipo de dados: Nmero
Item da base de dados: No
Tela: DEPARTAMENTOS

No trigger Post-Query do bloco DEPT da ficha EXEMPLO_MANUAL introduza o
seguinte cdigo:



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 34
A tela DEPARTAMENTOS dever ficar com a seguinte disposio:



Execute novamente a ficha e faa um query ao bloco DEPT. Ir verificar que o
valor do total dos salrios dos departamentos preenchido atravs do trigger
Post-Query.



Trigger Pre-Query

Atravs do trigger Pre-Query pode atribuir valores aos itens. Estes valores iram ser
utilizados como valores de pesquisa na execuo de um query.

Abra as ficha EMP_DEPT e introduza um item do tipo boto no bloco DEPT.
Introduza o seguinte cdigo para este boto:




Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 35


Estes comandos iram abrir uma nova ficha que apresentar dados estatsticos de cada
departamento. Os prximos passos iro dar instrues para a criao desta nova ficha.

Crie uma nova ficha com o nome ESTATISTICA_DEP e com o bloco DEPT
contendo itens ligados tabela DEPT: DEPTNO, DNAME e LOC. A sua
disposio dever ser do tipo ficha. Coloque os itens deste bloco na tela
ESTATISTICA.

Na Paleta de Propriedades da ficha ESTATISTICA_DEP ponha a nulo o mdulo do
menu.



Introduza, ainda, para o bloco DEPT os seguintes itens:

Total_Sal
Tipo de dados: Nmero
Item da base de dados: No
Tela: ESTATISTICA


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 36
Perc_Sal
Tipo de dados: Nmero
Item da base de dados: No
Tela: ESTATISTICA

Max_Sal
Tipo de dados: Nmero
Item da base de dados: No
Tela: ESTATISTICA

Pelo facto do bloco DEPT ser s utilizado para consultas altere as seguintes
propriedades na Paleta de Propriedades:



O aspecto visual da tela ESTATISTICA dever ser o seguinte:



Atribua as seguintes propriedades janela utilizada pela ficha
ESTATISTICA_DEP:

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 37


No trigger Pre-Query do bloco DEPT introduza o seguinte cdigo:



No trigger Post-Query do bloco DEPT introduza o seguinte cdigo:
X number;
begin
Select sum(SAL) into :TOTAL_SAL where
DEPTNO=:ESTATISTICA_DEP.DEPTNO;
Select sum(SAL) into X from DEPT;
Select sum(SAL)/X into :PERC_SAL where DEPTNO=:GLOBAL.DEPTNO;
Select max(SAL) into MAX_SAL from DEPT where DEPTNO=:GLOBAL.DEPTNO;
End;

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 38
No trigger When-New-Form-Instance da ficha introduza o seguinte cdigo:



Grave e efectue a compilao da ficha.

Execute a ficha EMP_DEPT, efectue um query e prima o boto Estatstica.



Comandos de navegao

Os seguintes comandos fazem parte do menu utilizado por defeito pelo forms. O
ficheiro MENUDEFSP.MMB, que se encontra na sua directoria de trabalhos, contem
todos estes comandos e pode ser alterado e utilizado nos seus programas.

Menu Principal


Menu ACCAO


GRAVAR
do_key('Commit_form');

LIMPAR_TUDO
do_key('Clear_form');

IMPRIMIR
do_key('print');

CONFIGURAR_IMPRESSAO
null;

SAIR
do_key('Exit_form');


Menu BLOCO


ANTERIOR
do_key('Previous_block');

SEGUINTE
do_key('Next_block');


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 39
LIMPAR
do_key('Clear_block');

Menu EDITAR


CORTAR
Na paleta de propriedades
Tipo de Menu: Mgico
Item Mgico: Cortar
No ser necessrio introduzir cdigo.


COPIAR
Na paleta de propriedades
Tipo de Menu: Mgico
Item Mgico: Copiar

COLAR
Na paleta de propriedades
Tipo de Menu: Mgico
Item Mgico: Colar

EDITAR
Edit_field;

APRESENTAR_LISTA
do_key('List_values');

Menu CAMPO


ANTERIOR
do_key('Previous_field');

SEGUINTE
do_key('Next_field');

LIMPAR
Clear_field;

DUPLICAR
do_key('Duplicate_field');


Menu AJUDA


AJUDA
do_key('help');

TECLAS
show_keys;

APRESENTAR_ERRO
display_error;

DEPURAR
break;



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 40
Menu CONSULTA


INTRODUZIR
enable_disable_query_items;
do_key('Enter_query');
enable_disable_regular_items;

EXECUTAR
do_key('Execute_query');

CANCELAR
do_key('Exit_form');

ULTIMOS_CRITERIOS
do_key('Enter_query');

CONTAR_OCORRENCIAS
do_key('Count_query');

EXTRAIR_CONJ_SEGUINTE
do_key('Next_set');

INTRODUZIR_CONSULTA
enable_disable_query_items;
do_key('Enter_query');
enable_disable_regular_items;

EXECUTAR_CONSULTA
do_key('Execute_query');

CANCELAR_CONSULTA
do_key('Exit_form');

OCULTAR_BLOCO_ANT
do_key('Previous_block');

OCULTAR_REGISTO_ANT
do_key('Previous_record');

OCULTAR_REGISTO_SEG
do_key('Next_record');

OCULTAR_BLOCO_SEG
do_key('Next_block');

INSERIR_REGISTO
do_key('Create_record');

REMOVER_REGISTO
do_key('Delete_record');

BLOQUEAR_REGISTO
do_key('Lock_record');

AJUDA
do_key('help');


Menu REGISTO


ANTERIOR
do_key('Previous_record');

SEGUINTE
do_key('Next_record');

DESLOCAR_PARA_CIMA
do_key('Scroll_up');

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 41

DESLOCAR_PARA_BAIXO
do_key('Scroll_down');

INSERIR
do_key('Create_record');

REMOVER
do_key('Delete_record');

BLOQUEAR
do_key('Lock_record');

DUPLICAR
do_key('Duplicate_record');

LIMPAR
do_key('Clear_record');


Comando Do_key
Permite utilizar teclas de atalho utilizando o key_trigger correspondente. O utlizador
poder ver as teclas em Ajuda/Teclas.



Introduo de Barra de Ferramentas

Para introduzir o menu na barra de ferramentas introduza as seguintes propriedades na
paleta de propriedades dos itens do menu:



Os ficheiros de icons esto localizadas na directoria definida no registo UI_ICON do
REGEDIT do WINDOWS.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 42
II. Oracle Reports


Como entrar no Reports

Ligue o Oracle em Start Database se estiver a utilizar Personal Oracle

Entrar no Oracle Developer Report Builder.



Efectue a ligao base de dados atravs da opo do menu Ficheiro / Ligar.



Efectue a ligao utilizando o nome, password e base de dados da sua conta.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 43
Criar um novo relatrio


Estilos de Relatrios

Um relatrio Tabular do tipo mais elementar. Cada coluna corresponde a uma coluna
seleccionada da base de dados.

Um relatrio Tipo Ficha mostra um registo por pgina, inserindo os valores dos
campos direita dos ttulos dos campos.

Um relatrio do tipo Etiqueta de Correio imprime etiquetas de correio em colunas
mltiplas em cada pgina. Pode imprimir as etiquetas verticalmente e depois
horizontalmente na pgina, ou horizontalmente e depois verticalmente.

Um relatrio do tipo Carta contem valores da base de dados inseridos dentro do texto
de uma carta. (O texto para a carta importado para o Editor de Relatrios.)

Um relatrio Agrupado Esquerda divide as linhas de uma tabela em "conjuntos,"
baseados num valor comum em uma das colunas. Utilize este tipo de relatrio para
restringir uma coluna de repetir o mesmo valor vrias vezes enquanto os valores das
colunas relacionadas mudam.

Um relatrio Agrupado Acima contem dois ou mais grupos de dados. Para cada valor
do grupo mestre, os valores relacionados do(s) grupo(s) detalhes so rebuscados da base
de dados.

Um relatrio Matriz contem uma linha de ttulos, uma coluna de ttulos, e informao
no formato de uma grelha que relacionada com os ttulos das colunas e das linhas.
Uma das caractersticas que distingue os relatrios em matriz que o numero de colunas
no conhecido at que os dados sejam rebuscados da base de dados.
Para criar um relatrio do tipo matriz, necessrio criar pelo menos quatro grupos: um
grupo de produto-cruzado, dois grupos para fornecerem ttulos ao produto cruzado, e
pelo menos um grupo para fornecer informao para preencher as clulas. Os grupos
podem pertencer a um ou vrios queries.

Um relatrio de Matriz em Grupo um relatrio Agrupado Acima com uma matriz
diferente para cada valor do grupo mestre.


Crie um novo relatrio atravs da opo do menu Ficheiro/Novo/Relatrio ou
clicando no boto com o ocusor em cima do nome do relatrio.

Na prxima caixa de dilogo seleccione Utilizar o Assistente para Relatrios.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 44
Opte pelas seguintes opes na prxima caixa de dilogo:



Pode criar uma consulta base de dados digitando o comando em SQL, utilizando o
criador de consultas Query Builder ou importando uma consulta de SQL (um ficheiro
do tipo SQL).

Digite o seguinte comando para criar uma consulta base de dados:





Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 45
Seleccione os trs campos para serem visualizados no relatrio.



Seleccione calcular a soma, mdia, valor mnimo e valor mximo do campo sal,
como se apresenta no seguinte quadro.




Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 46
Altere as etiquetas da forma que se apresentam na figura seguinte.



Escolha o modelo pr-definido que mais lhe agradar.

Recorde que para a economia de tinteiros de impressora prefervel optar por Sem
Modelo .




Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 47
Uma vez terminada a criao do relatrio, o Reports ir automaticamente entrar no
Previewer.



Antes de mandar imprimir o relatrio poder efectuar as alteraes que achar
necessrias dentro do Previewer. Pode tambm voltar ao Assistente para Relatrios
atravs do boto .

Feche o Previewer.

Grave o relatrio para um ficheiro de relatrios com o nome REL_SCOTT.



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 48


Dentro da estrutura de cada relatrio tem um Previewer, um modelo de dados, um
ficheiro da disposio do ecr e uma ficha de parmetros, como mostra a figura
seguinte.






Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 49
Modelo de dados

Clique duas vezes em cima do modelo de dados e entrar no editor de modelo de
dados.



Utilizando os vrios botes disponveis pode estruturar o modelo de dados do relatrio.

Clique duas vezes em cima do campo SumsalperReport para verificar as suas
propriedades na paleta de propriedades.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 50


Esta Paleta de Propriedades indica que esta coluna de resumo, que a sua funo
soma e que a sua origem o item sal j definido no query Q1. Ou seja, este o
somatrio do item sal da tabela emp. Esta coluna poderia ter sido criada atravs do
boto dentro deste editor.

Clique duas vezes em cima do query Q1 e altere a instruo SQL para a que se
apresenta na figura seguinte.



Note que foi inserido o campo DEPTNO no modelo de dados.

Clique no boto e crie um novo query atravs da instruo em SQL que se
apresenta na figura seguinte.



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 51
Para efectuar a ligao entre a tabela EMP e a tabela DEPT, no modelo de dados
efectue as seguintes operaes:
1. clique no boto
2. clique no campo DEPNO da tabela DEPT
3. arraste o cursor at ao campo DEPTNO1 da tabela EMP

O seu modelo de dados dever ter o seguinte formato:



Atravs das colunas de repositrio de valores podero ser introduzidas variveis a
inclur no relatrio. Estas colunas so criadas atravs do boto e o seu valor pode
ser derivado atravs de uma formula includa numa funo PL/SQL.

A estrutura do seu modelo de dados dever ser a seguinte:



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 52
Modelo de Disposio no Ecr

Clique duas vezes em cima do Modelo de Disposio no ecr. Esta foi a disposio
que tinha sido definida antes das alteraes efectuadas ao modelo de dados.



Pode aqui arrastar campos j definidos no modelo de dados para dentro dos vrios
grupos.

Pode utilizar os botes para alternar entre o cabealho, corpo e rodap do
relatrio respectivamente.

Seleccione o grupo f_empno, f_ename, F_sal



Verifique as suas propriedades na paleta de propriedades:


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 53


Clique no boto direito do rato e opte por seleccionar a moldura pai.

Aumente o tamanho da moldura principal e depois aumente o tamanho da moldura
do grupo f_empno, f_ename, F_sal.



Clique no boto para inserir um novo campo e arraste-o para dentro da moldura
do grupo f_empno, f_ename, F_sal.



Clique duas vezes em cima do novo campo para visualizar a sua Paleta de
Propriedades.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 54


Altere o seu nome para F_DEPTNO e a sua origem para DEPTNO.

Aumente tambm o largura do grupo dos ttulos e introduza para este grupo o ttulo
Departamento.



Saia do Modelo de Ecr e entre no Previewer para ver o aspecto do novo relatrio.

Grave o seu relatrio.

Grave o seu relatrio novamente com um nome diferente (REL_SCOTT2).

Seleccione o relatrio REL_SCOTT2 e entre no Assistente para Relatrios atravs
do boto direito do rato.

Opte pelo estilo de relatrio Agrupado Acima.

Seleccione vertical para a direco de repetio dos registos dos grupos G_deptno e
G_empno.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 55


Seleccione os campos que se apresentam na figura seguinte para serem apresentados
no relatrio.



Altere as etiquetas e tamanhos dos campos da forma como se apresentam na
prxima figura.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 56


Escolha o modelo pr-definido que mais lhe agradar.

Entre no previewer e grave o relatrio.

Explore os seguintes temas atravs da Ajuda:

Quebras de pginas
Cabealhos
Rodaps



Relatrios com parmetros

Grave o relatrio REL_SCOTT2 com o nome REL_SCOTT_P.

No relatrio REL_SCOTT_P introduza um parmetro de utilizador com o nome
P_Deptno.



Altere as propriedades do parmetro P_Deptno com os valores que se apresentam na
figura seguinte.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 57


Entre no Criador da Ficha de Parmetros atravs da opo do menu
Ferramentas/Criador da Ficha de Parmetros.



Entre no modelo de dados e adicione a seguinte condio ao query dos
departamentos:



Execute o relatrio e introduza o valor 10 para o N Departamento.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 58
III. Reports e Forms

Ligar o Forms ao Reports

Entre no Forms e abra o ficheiro EMP_DEPT.

Clique duas vezes em cima de Relatrios para adicionar um relatrio a esta ficha.



Opte por utilizar o ficheiro de relatrios Rel_scott2.RDF que j foi criado atravs do
Reports.



Defina as propriedades do relatrio que adicionou ficha com os valores que se
apresentam na prxima figura.



Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 59
No bloco Dept introduza um item com as seguintes propriedades:




O bloco DEPT dever agora conter os seguintes itens:



Coloque o novo boto num local da tela onde fique esteticamente apresentvel.

Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 60


Introduza o seguinte cdigo para o novo boto:



Atravs deste cdigo o Forms vai ivocar o Reports e executar o relatrio.



Utilizar parmetros enviados pelo Forms

No Forms abra o ficheiro EMP_DEPT.

Pelo facto de existir alguma dificuldade em enviar os valores dos parmetros atravs
dos objectos do tipo relatrio do Forms, ser necessrio correr o Reports atavs do
comando RUN_PRODUCT. Este comando executa aplicaes externas ao Forms.


Oracle Developer/2000 Sistemas de Gesto de Bases de Dados 3 ano IG 61
Introduza outro boto com o label Relatrio 2 na tela (bloco Dept).



Introduza o seguinte cdigo para o novo boto:



Neste cdigo foi definida uma lista de parmetros com os respectivos valores para
enviar ao Reports.

Execute a ficha e efectue um query onde possa vizualizar um departamento
especfico.

Prima o boto Relatrio 2.

Como pode ver o nmero do departamento visvel na ficha foi passado pelo parmetro
para o Reports.