Oracle Forms
Básico
F
FO
ORRMMSS–
–
BÁ
B
ÁSSIICCO OIndice
1. Arquitetura Cliente/Servidor (Oracle Forms Developer) ... 4
2. Arquitetura Web (Oracle Forms Server) ... 5
3. Modelo de dados... 6
4. Variáveis de Ambiente e Preferências... 7
5. Iniciando o Forms Builder... 8
6. Conhecendo a Ferramenta ... 9
7. Navegador de Objetos (Object Navigator) ... 10
8. Menus do Forms Builder ... 11
9. Utilizando o Assistente para criar um Form ... 15
10.Tipos de Blocos... 19 10.Folha de Propriedades ... 20 - Forms ... 20 10.Data Block... 21 10.Text Item... 23 - Relacionamento... 25 10. Classes de Objetos ... 25 11. Dicas de Ferramentas... 25 12. Atributos Visuais ... 25 13. Campos de Cálculo ... 25
14. Windows & Canvas ... 27
- Folha de Propriedade das Windows ... 27
- Window Modal e Window Modless ... 27
- Canvas... 28
- Folha de Propriedade das Windows ... 28
- View... 28
14.Trabalhando com pastas ... 29
- Passos para criar uma página TAB pelo Navegador de Objetos ... 29
- Passos para criar uma página TAB pelo Editor de Layout ... 29
15.Gatilhos e Unidades de Programa ... 30
15. Categoria de Triggers ... 30
16. Triggers de Banco x Triggers de Forms ... 31
- Triggers de Banco ... 31
- Triggers de Forms... 31
17. Classe de Triggers ... 32
18. Rotinas Construídas (Built ins)... 32
19. Tipos de Rotinas ... 32
20. Unidades de Programa (Program Units)... 33
21. Paleta de Sintaxe... 33
22. Variáveis Globais e de Sistema ... 34
23. Manipulando mensagens de erro ... 34
24.Editor de Layout... 35
- Tipos de Itens ... 35
24. Construção de árvores hierárquicas ... 37
25. Preferências ... 38
26. Alertas... 40
- Respondendo a vários Timers ... 40
28. Criando Listas de Valores... 41
- Assistente de Lov ... 41 29. Editores ... 42 30. Parameters ... 42 31.Menus ... 43 31. Menus Popup ... 44 32. Bibliotecas PL/SQL... 45 33. Bibliotecas de Objetos ... 45 34. Assistente de Gráfico... 46
F
F
OORRMMSS6
6
II-
-
B
B
ÁÁSSIICCOO1
1.. AARRQQUUIITTEETTUURRAACCLLIIEENNTTEE//SSEERRVVIIDDOORR((OORRAACCLLEEFFOORRMMSSDDEEVVEELLOOPPEERR))
O Oracle Forms Developer é uma ferramenta de desenvolvimento para construção de aplicações Cliente/Servidor e Web.
Ela é composta por um conjunto de ferramentas que facilitam ao desenvolvedor a construção de Forms (formulários) de dados e aplicações para controle de regras de negócios de modo rápido e eficaz.
O Desenvolvimento se torna produtivo devido à integração entre a ferramenta e o banco de dados. O mesmo código programático funciona tanto em Cliente/Servidor como em um ambiente Web.
Um forms pode ser desenvolvido manualmente ou mesmo gerado pelo Oracle Designer.
2
2.. AARRQQUUIITTEETTUURRAAWWEEBB((OORRAACCLLEEFFOORRMMSSSSEERRVVEERR))
O Oracle Forms Server é um servidor otimizado de aplicações para a publicação de aplicações Oracle Forms na internet. O Oracle Forms Server possui uma estrutura que torna essa publicação possível sem a necessidade de reedição ou reprogramação de códigos de programas.
Essa arquitetura caracteriza-se em três camadas:
A primeira camada (Client tier) é composta pelos clientes leves, ou seja, computadores com web browsers onde as aplicações serão visualizadas e utilizadas. A segunda camada (Middle tier) é onde fica o servidor de aplicações web e também
a lógica de negócios da aplicação
A terceira camada (Database tier) compreende a camada onde se encontra o banco de dados, ou seja, onde os dados da empresa são armazenados.
3
3.. MMOODDEELLOODDEEDDAADDOOSS
Para o desenvolvimento de aplicações durante este curso, utilizaremos as tabelas do modelo abaixo apresentado.
REGIAO # NRO_REGIAO * DES_REGIAO UF # SIG_UF * NOM_UF PAIS # COD_PAIS * NOM_PAIS MUNICIPIO # COD_MUNICIPIO * NOM_MUNICIPIO DISTRITO # COD_DISTRITO * NOM_DISTRITO ITEM # COD_ITEM * NOM_ITEM PED_ITEM * QTD_ITEM * VLR_ITEM CLIENTE # COD_CLIENTE * NOM_CLIENTE PEDIDO # NRO_PEDIDO * DAT_PEDIDO contido conter dividida dividir-se localizado localiza localizado localiza contido conter contido conter contido conter contida conter identificado identifica pertence possuir refere-se referenciado
4
4.. VVAARRIIÁÁVVEEIISSDDEEAAMMBBIIEENNTTEEEEPPRREEFFEERRÊÊNNCCIIAASS
O Oracle Forms possui inúmeras variáveis de ambiente pré-definidas com seus respectivos valores. Existem algumas variáveis que servem para a procura de arquivos em tempo de execução. As principais são:
FORMS60_PATH : Caminho onde o Forms Builder procura seus arquivos em tempo de execução.
UI_ICON : Caminho onde o Forms Builder procura seus ícones em tempo de execução.
ORACLE_PATH : Caminho adicional de procura. O Forms Builder procura neste caminho os arquivos que não encontrou no caminho definido em FORMS60_PATH Para modificar essas variáveis no ambiente windows, utilize o regedit.exe ou regedt32.exe.
Quanto às preferências de usuário, o Forms Builder salva as opções setadas na janela de preferências em um arquivo. Este arquivo é acessado cada vez que o Forms Builder é executado. Em ambiente windows, o arquivo é o cauprefs.ora.
Você pode alterar esse arquivo utilizando um editor de texto padrão ASCII, mas a Oracle recomenda que alterações sejam feitas apenas pela janela de preferências do usuário. (Ver capítulo “Preferências do Usuário”)
5
5.. IINNIICCIIAANNDDOOOOFFOORRMMSSBBUUIILLDDEERR
Quando você iniciar o Forms Builder pela primeira vez, a tela abaixo será exibida. Vale lembrar que o idioma de sua ferramenta é definido durante o processo de instalação, sendo assim, o conteúdo das telas pode variar.
Usar o Assistente de Bloco de Dados: Invoca o assistente de Bloco de Dados para auxiliá-lo na criação de um novo Form.
Desenvolver um novo form manualmente: Inicia um novo form, mas sem a chamada do assistente.
Abrir um form já existente: Abre um forms existente.
Desenvolver um form com base em um gabarito: Cria um novo forms baseado em um modelo.
Executar o Quick Tour: Mostra uma passagem rápida mostrando os conceitos do forms.
6
6.. CCOONNHHEECCEENNDDOOAAFFEERRRRAAMMEENNTTAA
Navegador de Objetos: Browser para navegação entre os objetos existente dentro do Forms Builder.
Editor de Layout: Editor para a elaboração de telas no Form.
Livraria de Objetos: Ambiente para a armazenagem de objetos do Form em livrarias.
Editor PL/SQL: Local para o desenvolvimento de códigos PL/SQL dentro do Forms Builder.
Paleta de :Propriedades: Mostra as propriedades de um objeto previamente selecionado.
7
7.. NNAAVVEEGGAADDOORRDDEEOOBBJJEETTOOSS((OOBBJJEECCTTNNAAVVIIGGAATTOORR))
No Navegador de Objetos, podemos, além de navegar pelos objetos existentes em um módulo, criar Menus, Livrarias PL/SQL, Livrarias de Objeto, conhecer os pacotes embutidos (built ins) do Forms Builder e ainda acessar os objetos do banco de dados.
Na figura abaixo, temos a descrição dos ícones existentes na barra de ferramentas do Navegador de Objetos.
Novo Abrir Salvar
Executar Form Cliente/Servidor Executar Form na WEB
Modo de Depuração Recortar Copiar Colar Criar Objeto Excluir Objeto Expandir nó Contrair nó Expandir tudo Contrair tudo
8
8.. MMEENNUUSSDDOOFFOORRMMSSBBUUIILLDDEERR
Menu Arquivo(File):
Novo
o Form – Cria um novo módulo;
o Formulário usando Gabarito;
o Menu – Cria um novo arquivo de menu;
o Biblioteca de PL/SQL – Arquivo de Biblioteca PL/SQL; o Biblioteca de Objetos – Arquivo de Biblioteca de Objetos;
Abrir – Abre um módulo;
Fechar – Fecha o módulo marcado;
Salvar – Salva o módulo marcado;
Salvar Como – Diferentes opções para salvar um módulo; Salvar Tudo;
Reverter – Desfaz as mudanças do módulo desde a última gravação; Conectar – Abre a tela de conexão com o banco de dados;
Desconectar – Desconecta do banco de dados;
Administração:
o Acesso ao Módulo – Permite acesso a módulos salvos no BD; o Relatório de Lista de Objetos - Relatório sobre o módulo;
o Renomear – Renomeia um modulo no BD;
o Deletar – Remove um modulo do BD;
o Compilar Arquivo – Gera o executável (FMX, MMX, PLX);
o Check in; o Check out;
o Opções do Controle de Origem;
Configuração de Página – Configura a página para impressão;
Imprimir;
Sair;
Menu Editar(Edit):
Desfazer – Desfaz a última operação realizada; Recortar – Recorta o objeto ou texto marcado; Copiar – Copia o objeto ou texto marcado; Colar – Cola o objeto ou texto;
Limpar – Limpa o conteúdo;
Duplicar – Duplica o objeto marcado;
SmartClasses – Cria um objeto dentro da Object Library
Menu Visualizar(View):
View de Propriedades – Mostra todos os objetos; View Visual – Mostra apenas os objetos visuais;
Mostrar apenas PL/SQL – Mostra apenas objetos que possuem PL/SQL.
Menu Navegador(Navigator):
Expandir
Contrair
Expandir tudo
Criar Deletar
Adicionar ao Marcador de Livros Ir para o Marcador de Livros
Colar Nomes Colar Argumentos Menu Programa(Program): Executar Form; o Cliente/Servidor o Web o Depurador Compilar; o Incremental o Tudo
Compilar seleção - compila apenas o objeto selecionado;
Gatilhos Inteligentes - cria os gatilhos a partir dos mais usuais para o objeto; Editor Externo
Paleta de Sintaxe
Localizar/Substituir PL/SQL - localiza e substitui palavras em rotinas PL/SQL;
Editor de PL/SQL - edita PL/SQL;
Importador de OLE - importa propriedades de objetos OLE.
Menu Ferramentas(Tools):
Assistente de Blocos de Dados - assistente para criação de blocos; Assistente de Layout - assistente para criação de layout;
Assistente de Gráfico - assistente para criação de gráfico; Assistente de LOV -
Editor de Layout - edita o Layout;
Navegador de Objetos - aciona o navegador de objetos;
Paleta de Propriedades - aciona a paleta de propriedades do objeto assinalado; Biblioteca de Objetos - invoca a biblioteca de objetos;
Editor de Menu - edita menu;
Report Builder – Invoca o report Buider Preferências ;
9
9.. UUTTIILLIIZZAANNDDOOOOAASSSSIISSTTEENNTTEEPPAARRAACCRRIIAARRUUMMFFOORRMM
Primeiro passo é a escolha da origem dos dados. Estes podem ser recuperados de uma tabela, uma view ou mesmo de um procedimento armazenado no banco de dados.
O Segundo passo é escolher o tipo de layout que se quer montar. Você escolhe o tipo de canvas(tela) a ser utilizado. Pode ser uma nova ou mesmo uma já existente. Se a canvas for do tipo tab(pasta) você deverá selecionar ou criar uma nova página para a pasta.
Agora iremos escolher quais os campos que irão ser exibidos na canvas. Neste momento é possível, também, determinar qual o tipo do item selecionado.
Defina a etiqueta(prompt) para os campos. Nesse momento também é possível definir a largura e a altura dos campos, por default o forms define o tamanho baseado em seu tamanho na tabela/view/procedimento.
Agora definimos o estilo do form. No tipo formulário o prompt se posiciona à esquerda de cada campo, recomendado para forms do tipo ficha. No tipo tabular o prompt se posiciona na parte superior dos campos, recomendado para forms que possuem várias ocorrências dos campos.
No último processo colocamos um título para o quadro que envolve os registros, a quantidade de registros exibidos, a distância entre os registros e se deve ser exibida a barra de rolagem.
1
100..TTIIPPOOSSDDEEBBLLOOCCOOSS
Mestre detalhe: Um bloco(Mestre) com um outro(Detalhe) ligado ao primeiro;
Mestre com detalhe e dependente: Um bloco(Mestre) com um bloco(Detalhe)
dependente do primeiro, com outro bloco(Dependente) dependente ...;
Mestre com detalhe independente: Um bloco(Mestre) com vários blocos dependentes do primeiro e independentes entre si.
Departamento Funcionários Funcionários Departamento Dependentes Departamento Funcionários Projetos
1
100..FFOOLLHHAADDEEPPRROOPPRRIIEEDDAADDEESS
- Forms
General
Name Nome Interno do Objeto Subclass Information Informações de Subclasse Comments Comentários Gerais Sobre o Objeto Help Book Title
Functional
Title Título do forms
Console Window Window onde será mostrada a console do forms (linha de mensagens, linha de status etc...)
Menu Source Localização do arquivo de menu ( Filesystem / Database ) Menu Module Especifica o nome do arquivo de menu a ser usado no forms Initial Menu Qual será o item de menu para inicio.
Menu Style Especifica o modo de exibição do menu, se é em tela-cheia ou pull-down Defer Requerid Enforcement Como “YES”, permite a navegação livre dentro do registro mesmo que um item
esteja como “REQUERID”, validando esse item somente na saída do registro.
Menu Security
Menu Role Utiliza roles para validação do menu
Navigation
Mouse Navigation Limit Define o limite de navegação com o mouse dentro do forms, bloco ou item. First Navigation Data Block Indica qual o primeiro bloco navegável do forms.
Records
Current Record Visual Attribute Group Indica que dentro do forms, qualquer que seja o bloco, a linha corrente será marcada como o “VISUAL ATTRIBUTE” indicado.
Database
Validation Unit Específica a validação de dados
Interaction Mode Em uma pesquisa se modo bloqueio, serão recuperados todos registros antes da liberação da tela para o usuário.
Maximum Query Time Especifica o tempo máximo de uma query
Maximum Record Fetched Indica o numero máximo de linhas que uma query pode retornar Isolation Mode Permite alteração ou não de linhas compartilhadas.
Physical
Coordinate System Indica o sistema de coordenação do layout editor e sua unidade de medida Use 3d Controls Controles tri-dimensionais
Form Horizotal Toolbar Canvas Indica o canvas que será usado como tollbar horizontal Form Vertical Toolbar Canvas Indica o canvas que será usado como tollbar vertical
International
Direction Especifica a direção de orientação dos layouts.
Compatibility
10.Data Block General
Name Nome do Bloco
Subclass Information
Comments Comentários Gerais do Bloco
Navigation
Navigation Style Estilo de navegação, se muda de bloco, registro ou permanece na mesma linha Previous Navigation Data Block Bloco navegável anterior ao atual
Next Navigation Data Block Bloco navegável posterior ao atual
Records
Current Record Visual Attribute Group “VISUAL ATRIBUTE” a ser usado na linha corrente dentro do bloco Query Array Size Numero máximo de registros que o Forms pode retornar do banco de uma vez Number of Record Buffered Especifica o número mínimo de registros armazenados na memória durante uma
pesquisa no bloco.
Number of Record Displayed Numero de linhas a serem mostradas no bloco
Query All Records Indica ao forms builder que ao executar a query deve retornar todos os registros Record Orientation Tipo de orientação do bloco ; horizontal ou vertical
Single Record Em um bloco de controle, indica que ele só pode ter um registro
Database
Database Data Block Indica se o bloco é baseado em uma tabela ou não
Enforce Primary Key Faz consistência de primary key no bloco , antes do banco de dados Query Allowed Habilita pesquisa
Query Data Souce Type Tipo de pesquisa a ser efetuada pelo bloco, (Procedure, Table, Sub-Query...) Query Data Source Name Tabela ou procedure de pesquisa
Query Data Source Columns Colunas a serem recuperadas pela pesquisa
Query Data Source Arguments Propriedade valida somente para blocos com Type procedure, passa as colunas e datatypes a serem pesquisados.
Alias Apelido que pode ser utilizado para o bloco
Include REF Utiliza um campo “virtual” escondido para sincronizar blocos master/detail WHERE Clausule Restringe a pesquisa de acordo com a sentença sql
ORDER BY Clausule Ordena o bloco - sentença SQL
Optimizer Hint String de hint a ser passada para o otimizador do RDBMS na construção da query . Insert Allowed Habilita inclusão
Update Allowed Habilita alteração
Locking Mode Indica o modo de “LOCK” que o “FORMS BUILDER” deve usar Delete Allowed Habilita Exclusão
Key Mode Indica uma maneira do “FORMS” identificar unicamente uma linha do BD (Só para bases NÃO ORACLE )
Update Changed Columns Only Faz update no banco, somente das colunas que foram alteradas
Enforce Columns Security Obrigatoriedade de verificação dos privilégios de alteração do usuário col-a-col Maximum Query Time Tempo máximo que uma query pode demorar
Maximum Records Fetched Numero máximo de registros que uma query pode retornar Advanced Database
DML Data Target Type Indica o alvo do DML do bloco, pode ser tabela, procedure DML Data Target Name Nome do alvo do DML do bloco
Insert Procedure Name Nome da procedure de “INSERT”
Insert Procedure Result Set Columns Quando procedure, determina os nomes e tipos das colunas a serem inseridas Insert Procedure Arguments Quando procedure, determina os nomes e tipos das colunas passadas para inclusão Update Procedure Name Nome da procedure de “UPDATE”
Update Procedure Result Set Columns Idem a inclusão, só que para a procedure de alteração Update Procedure Arguments Idem a inclusão, só que para a procedure de alteração Delete Procedure Name Nome da procedure de “DELETE”
Delete Procedure Result Set Columns Idem a inclusão, só que para a procedure de exclusão Delete Procedure Arguments Idem a inclusão, só que para a procedure de exclusão Lock Procedure Name Nome da procedure de “LOCK”
Lock Procedure Result Set Columns Idem a inclusão, só que para a procedure de lock Lock Procedure Arguments Idem a inclusão, só que para a procedure de lock
DML Array Size Número do array usado para inclusão, exclusão e alteração de registros no banco de dados.
Um array maior, diminui o tempo de processamento da transação pois diminui o trafego na rede.
Precompute Summaries Especifica que as summary columns são atualizadas antes da query normal. O Forms Builder monta uma query especial para atualiza-las
Scrollbar
Show Scroll Bar Especifica se o campo terá ou não uma scroll bar Scroll Bar Canvas Canvas em que será mostrada scrollbar
Scroll Bar Tab Page Tab em que será mostrada scrollbar Scroll Bar Orientation Vertical / Horizontal
Scroll Bar X Position Posição Horizontal Scroll Bar Y Position Posição Vertical Scroll Bar Width Largura Scroll Bar Heigth Altura
Reverse Direction Se ao chegar ao fim ela terra efeito reverso
Font & Color
Visual Attribute Group Visual Atributo para barra de rolagem Foreground Color Cor de frente
Background Color Cor de Fundo Fill Patern Textura de fundo
Caracter Mode Logical Attribute Visual atributo para modo caracter White on Black Específica o modo monocromático
Caracter Mode
Listed in Data Block Menu Se o bloco deve aparecer no menu de blocos Data Block Description Descrição para o menu de blocos.
International
10.
Text Item GeneralName Nome do item
Item Type
Subclass Information Comments
Functional
Enabled Item ativado Justification Alinhamento do item
Implementation Class Classe de implementação (Java beans) Multi-Line Se o item tem várias linhas
Wrap Style Estilo de salto da linha Case Restriction Maiúscula, Minúscula, mista Conceal Data Mostra asteriscos na digitação
Keep Cursor Position Mantém cursor na ultima posição digitada Automatic Skip Salto automático de campo
Popup Menu Nome do menu popup
Navigation
Keyboard Navigable Navegável com teclado Previous Navigation Item Item anterior para navegação Next Navigation Item Item posterior para navegação
Data
Data Type Tipo de dado Maximum Length Tamanho máximo Fixed Length Exige tamanho fixo Initial Value Valor inicial Required Ë obrigatório Format Mask Máscara de formato Lowest Allowed Value Valor mínimo Highest Allowed Value Valor máximo Copy Value From Item Copiar valor do item Synchronize With Item Manter espelho do item
Calculation
Calculation Mode Modo de cálculo
Formula Especificação para formula do campo Summary Function Função de sumarização
Summarized Block Bloco do item para sumarizar Summarized Item Item para sumarizar
Records
Current Record Visual Attribute Group Atributo visual corrente Distance Between Records Distância entre registros Number of Records Displayed Número de registros mostrados.
Database
Database Item Faz parte do banco de dados Column Name Nome da coluna referenciada Primary Key Faz parte da primary-key Query Only Coluna apenas para consulta Query Allowed Pesquisa permitida Query Length Tamanho da consulta
Case Insensitive Query Busca tanto maiúscula quanto minúscula na pesquisa Insert Allowed Inserção permitida
Update Allowed Alteração permitida
Update Only If Null Permite alteração apenas se campo nulo
Lock Record Reserva a linha da tabela simultaneamente a alteração do text item
List of Values (LOV)
List of Values Nome da lista de valores List X Position Posição X da LOV List Y Position Posição Y da LOV
Editor
Editor Nome do editor Editor X Position Posição X do editor Editor Y Position Posição Y do editor
Physical
Visible Visível na Canvas
Canvas Nome do canvas onde aparece. Tab Page Nome da Pasta do canvas onde aparece X Position Posição X
Y Position Posição Y
Width Largura
Heigth Altura
Bevel Efeito de profundidade Rendered Modo rendered
Show Vertical Scroll Bar Mostra barra de rolagem para item de várias linhas
Visual Attribute
Visual Attribute Group Atributo visual do campo Prompt Visual Attribute Group Atributo visual do prompt Caracter Mode Logical Attribute Atributo para caracter White on Black Monocromático
Color
Foreground Color Cor de frente Background Color Cor de fundo Fill Pattern Preenchimento
Font
Font Name Nome da fonte
Font Size Tamanho
Font Weigth Largura Font Style Estilo Font Spacing Espaço
Prompt
Prompt Título do prompt Prompt Display Style Estilo
Prompt Justification Justificação
Prompt Attachment Edge Onde deve aparecer no item Prompt Alignment Alinhamento
Prompt Attachment Offset Deslocamento da conexão do prompt Prompt Alignment Offset Deslocamento do alinhamento do prompt Prompt Reading Order Direção
Prompt Color
Prompt Foreground Color Cor da escrita
Prompt Font
Prompt Font Name Fonte Prompt Font Size Tamanho Prompt Font Weigth Largura Prompt Font Style Estilo Prompt Font Spacing Espaço
Help
Hint Linha de dica
Display Hint Altomatically Dica deve ser mostrada
Tooltip Dica quando mouse passa pelo item Tooltip Visual Attribute Group Atributo visual do tooltip
International
Initial Keyboard State Estado inicial do teclado Reading Order Ordem de leitura Keyboard State Estado do teclado
- Relacionamento
Functional
Detail Block property Nome do bloco detalhe Join condition Condição de join
Delete record behavior Modo de exclusão de mestre e detalhe Prevent Masterless Operation Permissão de pesquisa no detalhe sem mestre.
Coordination
Defered Pesquisa detalhe após o mestre
Automatic query Pesquisa automática quando navega para o detalhe.
1
100..CCLLAASSSSEESSDDEEOOBBJJEETTOOSS
Uma classe pode ser definida para utilizar uma ou mais propriedades comuns para vários itens, sem a necessidade de especificar essas propriedades para cada item escolhido. Uma vez definidas as classes, basta fazer as atribuições.
1
111..DDIICCAASSDDEEFFEERRRRAAMMEENNTTAASS
São pequenas mensagens exibidas quando o mouse é posicionado sobre um item. São definidas nas propriedades do item.
1
122..AATTRRIIBBUUTTOOSSVVIISSUUAAIISS
São criados para facilitar a padronização do visual dos itens. É possível definir as cores, fontes, texturas entre outras propriedades para os atributos visuais, depois é só atribuir aos campos, prompts ou quadros.
Eles podem ser de três tipos:
Comum – São utilizados para os campos do forms. Prompt - São utilizados para os prompts dos campos.
Título – São utilizados para os títulos dos quadros que envolvem os campos. 1
São itens capazes de efetuar operações de cálculos baseando-se em uma ou mais variáveis. São atualizados a cada instrução DML e podem ser:
Summary : recebem funções diretas;
Formula : são cálculos através de fórmulas;
Lembre-se que para estas funções serem realizadas, a propriedade consultar todos os registros do bloco deve estar marcada.
O campo de soma deverá estar no mesmo bloco do campo somado. Se necessário deverá ser alterado o número de registros exibidos.
1
144..WWIINNDDOOWWSS&&CCAANNVVAASS
Windows são janelas nas quais são acomodados os objetos dentro de pelo menos um canvas. Podem ser Documento(Ocupa a tela inteira, sobrepondo qualquer outra) ou Caixa de Diálogo(Aparece sobreposta a outras janelas.).
Canvas é o local onde os objeto visuais estarão posicionados. Um Canvas está contido dentro de uma única window, mas uma window pode conter um ou mais Canvas.
- Folha de Propriedade das Windows
Funcional
Titulo Titulo da window Canvas Principal Canvas principal da janela Canvas da Barra de rolagem Horizontal Canvas horizontal Canvas da Barra de rolagem Vertical Canvas vertical
Estilo da Janela Estilo da janela – documento ou caixa de diálogo Modal Indica se janela modal
Ocultar na saída Quando saí da janela ela é oculta. Fechamento permitido Permite fechar a janela
Movimentação permitida Permite movimentar a janela Redimensionamento permitido Permite redimensionar a janela Maximização permitida Permite maximizar
Minimização permitida Permite minimizar
Título minimizado Título da janela quando minimizar Nome do arquivo de ícones Ícone quando for minimizado Herdar menu Mostra o menu da janela principal
- Window Modal e Window Modless
Modal Modless
Só é exibida se ativada Exibida enquanto não for fechada Apenas uma por vez Mais de uma ao mesmo tempo Não navega para outra Exibida se não ativa
Requer um método para encerrá-la Navega de uma para outra Expande e contrai
- Canvas
Content - toda tela
Stacked - parte da tela
Vertical toolbar - barra vertical de botões
Horizontal toolbar - barra horizontal de botões
Tab - Pastas
- Folha de Propriedade das Windows
Funcional
Aumentar na entrada Mostrar apenas esta canvas escondendo as outras
Físico
Visível Canvas deve iniciar visível Janela Janela onde esta ancorada a canvas
Bevel Estilo
Estilo de Tab Estilo de pasta
Limite de conexão da tab Onde vai aparecer as orelhas da tab.
- View
Controla parte da canvas que será exibida na window definindo uma visão para a canvas.
14.Trabalhando com pastas
Utilizado para melhor organizar visualmente as informações, aproveitando os espaços da tela, agrupando as informações em pastas que ficam visíveis individualmente sendo as demais acessadas com um clique em sua aba.
- Passos para criar uma página TAB pelo Navegador de Objetos
1. Clique no nódulo do Canvases no Object Navigator. 2. Clique no ícone de criação
3. Abra as propriedades do canvases (paleta de propriedade) 4. Ajuste a propriedade tipo de canvases para Tab
5. Expandir o nódulo do canvases para mostrar a pagina de Tab 6. Clique no ícone de criação
7. Ajuste as propriedades da Tab através da paleta de propriedade 8. Crie páginas Tab adicionais repetindo os passos seis e sete
- Passos para criar uma página TAB pelo Editor de Layout
1. No Object navigator de um duplo clique no ícone do canvases conteúdo
2. No editor de Layout clique no botão de ferramenta de canvases, e arraste o mouse até o canvases.
3. Abra a paleta de propriedade do canvases ajuste as propriedades 4. Crie no object navigator páginas adicionais se necessário
5. Configure as propriedades de acordo com a necessidade.
15.
GGAATTIILLHHOOSSEEUUNNIIDDAADDEESSDDEEPPRROOGGRRAAMMAATriggers: Gatilhos disparados por eventos, executando a instrução PL/SQL escrita ali ou em uma program unit.
Program Units: Unidades de programas escritas em PL/SQL para
manipulação de dados.
Variáveis Globais: Variáveis que podem ser usadas entre forms na mesma sessão.
System Variables: Variáveis que indicam situações do forms.
1
155..CCAATTEEGGOORRIIAADDEETTRRIIGGGGEERRSS
When - Atende complementando o form
Exemplos: When_ new_form_instance – quando entra no forms; When_ mouse_double_click – mouse com duplo click; When _validate_item – para validar um item;
When _button_pressed – quando um botão e pressionado
On - Atende substituindo o normal
Exemplos: On_insert – Substitui a inclusão; On_update – Substitui a alteração.
Pre - Atende imediatamente antes
Exemplos: Pre_form – antes de iniciar a form;
Pre_textitem – antes de navegar pelo o item; Pre_insert – antes da inclusão;
Pre_query – antes da pesquisa. Post - Atende imediatamente após
Exemplos: Post_block – após sair do bloco; Post_query – após a pesquisa; Post_update – após uma alteração.
Key - Atende substituindo a função
Exemplos: Key_next_item – vai para o próximo item; Key_entqry – entra em modo consulta; Key_listval – aciona a lista de valores;
Key_down – Movimenta um registro abaixo.
1
166..TTRRIIGGGGEERRSSDDEEBBAANNCCOOXXTTRRIIGGGGEERRSSDDEEFFOORRMMSS
- Triggers de Banco
Executada por ação de qualquer ferramenta ou aplicação Disparados por manipulação de dados
Tratamento diferenciado por comando ou por linha Quando falha, dispara rollback
Independente do trigger do forms
Executa no momento do commit
- Triggers de Forms
Executado apenas pelo forms
Disparado por navegação de itens ou por teclas ou qualquer outra ação Não faz distinção entre comando ou linha
Quando falha, permite confirmar parte do trabalho ou continuar Independente do trigger de banco
Executa durante a operação
1
177..CCLLAASSSSEEDDEETTRRIIGGGGEERRSS
Processo interno: Atende a ocorrências de um evento que ocorreu durante o processo;
Processo externo: Disparado pela ação do operador;
1
188..RROOTTIINNAASSCCOONNSSTTRRUUÍÍDDAASS((BBUUIILLTTIINNSS))
Mover o ponto de entrada (Previous_item, Go_block)
Operações de dados (Execute_query, commit)
Exibir objetos (Show_lov, show_alert) Mudar características (Set_item_property)
Exibir mensagens (Message)
Chamar outros objetos (New_form, Run_product)
Êxito na execução de função(Form_Success)
1
199..TTIIPPOOSSDDEERROOTTIINNAASS
Restritas: Afeta a tela ou a navegação (Go_item) ou processo do banco de dados (Commit).
Irrestritas: Não afeta a tela nem a navegação ou processo do DB(Show_lov) ou (Message).
2 200..UUNNIIDDAADDEESSDDEEPPRROOGGRRAAMMAA((PPRROOGGRRAAMMUUNNIITTSS)) Procedures Functions Packages 2 211..PPAALLEETTAADDEESSIINNTTAAXXEE
Esse recurso está disponível no editor de PL/SQL.(Através da barra de menu no item Programa > Paleta de Sintaxe).
Na paleta de sintaxe você tem duas pastas.Na primeira (PL/SQL) você tem um pop-list o tópico que você quer verificar a sintaxe, logo abaixo existe um caixa de texto com os sub-itens .Após a seleção do sub-item na parte inferior será mostrada a sintaxe. Na segunda pasta (Predefinidos) o pop-list corresponde aos pacotes pré-definidos. A primeira caixa de texto contém as built-ins e a segunda a sintaxe.
2
222..VVAARRIIÁÁVVEEIISSGGLLOOBBAAIISSEEDDEESSIISSTTEEMMAA
Global variables : Váriaveis que podem ser criadas através da atribuição de valor para a variável ou com a rotina default_value. Esta variável possui seu valor no modo caracter.
System Variables : Mostram vários valores de variáveis do sistema como por exemplo qual o registro em que você está posicionado system.trigger_Record, etc.
2
233..MMAANNIIPPUULLAANNDDOOMMEENNSSAAGGEENNSSDDEEEERRRROO
Para manipularmos os erros dentro de um forms utilizamos os gatilhos On-error e On-message. A variável SQLERRM é utilizada para recuperar os erros na sua forma completa, ou seja, o tipo do erro, o código e a mensagem.
Também é possível recuperarmos cada parte da mensagem de erro utilizando ERROR_TYPE, ERROR_CODE e ERROR_TEXT respectivamente.
Exemplo:
DECLARE
errnum NUMBER := ERROR_CODE; errtxt VARCHAR2(80) := ERROR_TEXT; errtyp VARCHAR2(3) := ERROR_TYPE; BEGIN
IF errnum = 40301 THEN
Message('Sua pesquisa não encontrou nada, tente de novo.'); ELSIF errnum = 40350 THEN
Message('Nada foi encontrado.'); ELSE
Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt); RAISE Form_Trigger_Failure;
END IF; END;
24.EEDDIITTOORRDDEELLAAYYOOUUTT
No editor de layout você poderá alterar o visual de sua tela, podendo incluir qualquer um dos itens que estão disponíveis na paleta de ferramentas à esquerda.
Ali nós temos ferramentas de desenho, inclusão de itens e canvas. Nos menus superiores temos ferramentas para correção visual dos campos.
- Tipos de Itens
Button - É um retângulo com um label ou um ícone. Usado para iniciar ações;
Radio Button - Um radio group é um conjunto de dois ou mais radio button, onde apenas um pode estar marcado;
Image item - Mostra imagens armazenadas no BD ou em arquivos;
Ole container - É uma área que armazena objetos OLE;
Display item - São itens que podem ser assinalados, mas não editados pelo operador;
Check box - Um label que pode ser assinalado, tendo apenas dois valores; Text Item - Normalmente usado no forms, são campos editáveis;
Chart item - Mostra gráficos gerados através do Graphics Builder; OCX - Usa objetos Active X ;
List item - Mostra uma lista de alternativas para escolha de uma. Bean Area – Usado para Java beans.
Hierarchical tree – Árvores hierárquicas.
Vamos ver nesta demonstração o exemplo destes campos.
Crie um novo forms chamado ANC002, criando um bloco chamado “BL” e vá para o editor de layout.
Crie os seguintes campos : Nome: text item;
Sexo: Radio Group;
Estado civil: list item;
Esportes preferidos: check Box (Futebol, Natação, Voleibol, Basquete, Judô)
Foto: imagem
Busca imagem: botão (utilize a rotina abaixo) DECLARE
filename VARCHAR2(256) BEGIN
filename := GET_FILE_NAME(File_Filter=> 'BMP Files (*.BMP)|*.BMP|');
READ_IMAGE_FILE(filename, 'BMP', 'bl.foto'); END;
2
244..CCOONNSSTTRRUUÇÇÃÃOODDEEÁÁRRVVOORREESSHHIIEERRÁÁRRQQUUIICCAASS
Os campos em Árvores Hierárquicas mostram os dados no padrão do navigator do Oracle Developer ou Windows Explorer.
Você pode popular Árvores Hierárquicas com valores contidos em Record Group ou Textos de Pesquisa.
Utilizando programação você pode adicionar, remover, modificar ou validar elementos da sua Árvore Hierárquica em tempo de execução.
Exemplo :
Criar um novo form chamado SIF004.
Criar um record Group denominado NIVEL com a seguinte estrutura:
SELECT -1, LEVEL, DES_REGIAO, NULL, TO_CHAR(NRO_REGIAO) FROM REGIAO
CONNECT BY PRIOR NRO_REGIAO = NRO_REGIAO_SUP START WITH NRO_REGIAO_SUP IS NULL
Criar um bloco manualmente e denominá-lo B1.
Inserir um novo item do tipo árvore hierárquica com o nome de
ARVORE e definir seu tamanho em 150 x 150.
Inserir um novo Canvas e colocar o Item visível no canvas.
Criar um gatilho WHEN-NEW-FORM-INSTANCE em nível de Forms e
dentro de seu conteúdo colocar o procedimento:
DECLARE
X NUMBER; BEGIN
X := POPULATE_GROUP ('NIVEL');
FTREE.SET_TREE_PROPERTY ('B1.ARVORE',FTREE.RECORD_GROUP, 'NIVEL'); END;
2
255..PPRREEFFEERRÊÊNNCCIIAASS
General – Gerais
Wizards - Assistentes
2
266..AALLEERRTTAASS
Servem para explodir no meio da tela uma caixa de aviso. Podem possuir até 3 botões de ação que podem ser controlados pelo usuário. Veja o exemplo abaixo:
DECLARE
al_id Alert; al_button NUMBER; BEGIN
-- Localiza o alerta com dois botões al_id := Find_Alert('Meu_alerta'); -- Testa se ele existe
IF Id_Null(al_id) THEN
Message('Este alerta não existe'); RAISE Form_Trigger_Failure;
ELSE
-- Aguarda o botão escolhido al_button := Show_Alert(al_id); IF al_button = ALERT_BUTTON1 THEN
-- Verifica se foi o botão 1 Message(‘Botão número 1’); ELSE Message(‘Botão número 2’); END IF; END IF; END; 2 277..CCOONNTTAADDOORREESS((TTIIMMEERRSS))
Contadores ou timers são temporizadores, ou seja, processos que disparam de tempo em tempo, de acordo com a definição do desenvolvedor. Um timer serve, por exemplo, para executar um refresh de tela ou criar um aviso piscante, etc...
/* Criando um timer de repetição disparado a cada hora */
-- Pode ser criado no when_new_form_instance DECLARE hour_timer TIMER; one_hour NUMBER(7):=3600000; BEGIN hour_timer := CREATE_TIMER('alarm',one_hour,REPEAT); END;
Criar no trigger When-Timer-Expired
DECLARE
expired_timer CHAR(20); BEGIN
expired_timer:=GET_APPLICATION_PROPERTY(TIMER_NAME); -- buscando o nome do timer
IF expired_timer='T1'
THEN /* handle timer T1 */; ELSIF expired_timer='T2'
THEN /* handle timer T2 */; ELSE
/* handle all other timers */; END IF;
END;
2
288..CCRRIIAANNDDOOLLIISSTTAASSDDEEVVAALLOORREESS
Record Group: É um conjunto de registros retornados por uma query armazenada em sua definição. Muito utilizado para criar os valores para uma Lov. Um record group pode ser alterado programaticamente em tempo de execução.
List of Values (Lov’s): Uma lista é associada a campos para entrada de valores válidos ou auxílio de campos codificados.Toda lista é baseada em um recordgroup. Uma lista só pode ter um record group, mas um record group pode ter várias lov’s associadas a ele.
- Assistente de Lov
Escolha na Barra de Menu : Ferramentas > Assistente de LOV
Você pode escolher um Grupo de Registro já existente ou criar um novo. Escreva sua instrução SELECT manualmente, você também pode fazer isso
através do query builder ou importar um arquivo com a instrução já pronta. Escolha as colunas que vão aparecer na sua lista
Você pode informar o titulo, largura e valor de retorna da coluna. você também tem a opção de dimensionar a coluna automaticamente. (OBS : Para selecionar a coluna de retorno clique em valor de retorno e no botão pesquisar item de retorno).
Informe o Titulo, largura e posicionamento automático ou atual.
Você pode configurar quantidade de linha que serão retornadas, renovação da Lista automática e filtro automático.
Escolha a coluna que a LOV vai ser ativada. Tela de encerramento
2
299..EEDDIITTOORREESS
Servem para editar campos. Formata de uma maneira mais bem elaborada campos que necessitam de edição. Depois de definido um editor ele deve ser atribuído a um campo.
3
300..PPAARRAAMMEETTEERRSS
São variáveis locais de forms muito utilizadas para trocar parâmetros entre forms, reports ou graphics. Também são muito úteis como variáveis para armazenamento de informações dentro do forms.
3
311..MMEENNUUSS
O Forms desde as primeiras versões já tinha o editor de menus, mas agora além disso você tem a praticidade de criar menus com barra de Botões sem a necessidade de criar canvas e blocos de controles para alocar esses botões.
Como criar:
No Object Navigator clique no nódulo de Menus e no botão criar.
Dentro da Hierarquia de menu clique em Menus e novamente no botão criar. No item anteriormente criado clique com o botão direito e escolha editor de
menu.
O primeiro item do menu é o que vai aparecer na barra de ferramentas. De o nome de Primeiro Item de Arquivo.
Crie um item abaixo que daremos o nome de sair, para isso clique no botão criar abaixo.
De o nome desse item de Sair. De um duplo clique nesse item.
Aparecerá a Paleta de Propriedade desse item do Menu.
Na opção Funcional no item Etiqueta está o nome que aparecerá no menu de ferramentas. Para criar uma tecla de acesso no menu, basta colocar um & atrás do item que você quer utilizar. Por exemplo no &Sair.
Na opção Código do item de menu escreva o comando exit_form;
Na opção Visível no menu escolha Sim.
Na opção Visível na Barra de Ferramentas do menu Horizontal escolha Sim.
Na opção Ícone no Menu escolha Não
Na opção Nome do Arquivo de Ícone escreva EXIT.
Salve o menu com o nome de MENUPRI e gera o executável do menu.
Para testar crie um Forms simples e nas propriedade do Módulo altere o Módulo de Menu para menupri
3
311..MMEENNUUSSPPOOPPUUPP
Menus para os itens que podem ser acionados através do botão direito do mouse. Para criá-los basta utilizar o editor de menu, incluindo a instrução para cada item do menu.
3
322..BBIIBBLLIIOOTTEECCAASSPPLL//SSQQLL
São bibliotecas de PL/SQL as quais podem ser reutilizadas em vários objetos, como forms, reports, graphics ou outras bibliotecas.
Vamos criar uma biblioteca chamada curso a qual tenha uma PL/SQL chamada titulo.
Nesta função montaremos em um campo de retorno o nome de sua empresa, a data de hoje e qual usuário esta conectado.
Vamos atribuí-la ao forms SIF003 e no trigger WHEN-NEW-FORM-INSTANCE utilize a sintaxe abaixo:
Declare Novo_titulo varchar2(50); Begin Novo_titulo := titulo; Set_window_property(‘minha_janela’,title,novo_titulo); End; 3 333..BBIIBBLLIIOOTTEECCAASSDDEEOOBBJJEETTOOSS São bibliotecas de
objetos reutilizáveis, as quais podem ser subdivididas em pastas.
3
333.Chamando outros Objetos .
Para invocar outros componentes do Developer como por exemplo um Reports, um graphics ou mesmo um outro Forms, podemos utilizar o comando RUN_PRODUCT.
Abaixo temos um exemplo de chamada de objeto utilizando RUN_PRODUCT:
DECLARE
pl_id ParamList; BEGIN
pl_id := Get_Parameter_List('tmpdata'); IF NOT Id_Null(pl_id) THEN
Destroy_Parameter_List( pl_id ); END IF;
pl_id := Create_Parameter_List('tmpdata');
Add_Parameter(pl_id,'EMP_QUERY',DATA_PARAMETER,'EMP_RECS'); Add_Parameter(pl_id, 'PARAMFORM', TEXT_PARAMETER, 'NO');
Run_Product(REPORTS, 'empreport', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
END;
3
344..AASSSSIISSTTEENNTTEEDDEEGGRRÁÁFFIICCOO
a. Você pode escolher o assistente de Gráfico pela Barra de Menu (Ferramentas - Assistente de gráfico) ou pelo ícone de Assistente de gráfico.
b. Aparecera a primeira tela de apresentação
c. Informe o Titulo, escolha o tipo e subtipo do gráfico. d. Selecione o bloco
e. Escolha o campo que será o eixo X f. Escolha o campo que será o eixo Y
g. Escolha o nome do arquivo do gráfico e encerre o gráfico.