Você está na página 1de 55

Manual Forms

Sumrio
1. Oracle Forms................................................................................................................... 4 1.1 Tipos de Mdulos ..................................................................................................... 4 1.2 Mdulo Form ............................................................................................................ 4 1.3 Abrindo uma sesso Oracle Forms Builder .............................................................. 5 1.4 Criando um novo mdulo form................................................................................. 6 1.5 Conectando-se ao banco ........................................................................................... 6 1.6 Trocando o nome de um mdulo form ..................................................................... 7 2. Blocos ............................................................................................................................. 7 2.1 Criando um bloco...................................................................................................... 8 2.2 Especificando a criao de um bloco de controle..................................................... 8 2.3 Especificando a criao de um bloco baseado em uma origem de dados, usando a Data Block Wizard.......................................................................................................... 8 2.4 Escolha do tipo de origem de dados ......................................................................... 9 2.5 Especificao da origem dos dados do tipo Table or View .................................... 10 2.6 Etapa final da criao do bloco de dados................................................................ 11 2.7 Usando o Layout Wizard para especificao dos itens do bloco............................ 12 2.8 Funcionalidades da criao de um bloco Base Table ............................................. 17 2.9 Removendo um bloco ............................................................................................. 18 2.10 Propriedades de um bloco..................................................................................... 18 2.11 Salvando um mdulo form.................................................................................... 20 2.12 Executando um mdulo form................................................................................ 20 3. Relacionamento entre Blocos ....................................................................................... 22 3.1 Criando um relacionamento entre dois Blocos ....................................................... 22 3.2 Construindo um mdulo form mestre detalhe ........................................................ 22 3.3 Executando um mdulo form mestre detalhe ......................................................... 23 3.4 Propriedades de relacionamento ............................................................................. 23 4. Frames........................................................................................................................... 25 5. Itens tipo Texto ............................................................................................................. 26 5.1 Criando um item tipo texto ..................................................................................... 26 5.2 Propriedades de um text item.................................................................................. 26 5.3 Alterando cores e fontes.......................................................................................... 26 5.4 Controlando os dados em um text item................................................................... 27 5.5 Formatando itens..................................................................................................... 27 5.6 Alterando o comportamento de navegao............................................................. 28 5.7 Alterando o relacionamento do item com o banco de dados .................................. 28 5.8 Adicionando funcionalidades a um item................................................................. 29 5.9 Adicionando funes de grupo e frmulas a um item ............................................ 29 5.10 Labels associados do item..................................................................................... 30 6. LOVs e Editores............................................................................................................ 31 6.1 Conceito de Lista de Valores (LOV) ...................................................................... 31 6.2 Utilizando uma LOV em momento de execuo.................................................... 31 6.3 Definindo uma Lista de Valores (LOV) ................................................................. 31 2

6.4 Criando uma Lista de Valores (LOV)..................................................................... 32 6.5 Propriedades da LOV.............................................................................................. 33 6.6 Mapeamento colunas da LOV para itens do bloco ................................................. 34 6.7 Associando uma LOV a um item tipo texto............................................................ 34 6.8 Conceito de Editor .................................................................................................. 34 6.9 Utilizando um Editor em momento de execuo.................................................... 35 6.10 Associando um Editor a um item tipo texto.......................................................... 35 7. Outros tipos de Itens ..................................................................................................... 36 7.1 Check-box ............................................................................................................... 36 7.2 Passos para criar um item tipo Check-box no Layout Editor ................................. 36 7.3 Propriedades especficas de um item tipo Check-box ............................................ 37 7.4 Tratando valores nulos em itens tipo Check-box.................................................... 37 7.5 List .......................................................................................................................... 37 7.6 Criando um item tipo List ....................................................................................... 38 7.7 Propriedades especficas de um item tipo List........................................................ 38 7.8 Tratando valores nulos em itens tipo Lista ............................................................. 39 7.9 Radio Groups .......................................................................................................... 39 7.10 Propriedades especficas de um item tipo Radio Groups...................................... 40 7.11 Tratando valores nulos em um Radio Groups....................................................... 40 8. Itens tipo No Input ...................................................................................................... 42 8.1 Itens tipo Display .................................................................................................... 42 8.2 Itens tipo Button...................................................................................................... 42 9. Windows, Canvas e Viewport....................................................................................... 44 9.1 Propriedades de uma Window ................................................................................ 44 9.2 Conceito de content canvas..................................................................................... 44 9.3 Stacked canvas ........................................................................................................ 45 9.4 Canvas Toobar ........................................................................................................ 45 9.5 Tab Canvas.............................................................................................................. 45 10. Triggers ....................................................................................................................... 46 10.1 Trigger Type ......................................................................................................... 46 11. Produzindo Triggers.................................................................................................... 47 11.1 Criando uma Trigger pelo Object Navigator ........................................................ 47 11.2 Suplementando validaes.................................................................................... 47 13. Executando um Form no modo Debug ....................................................................... 49 14. Respondendo a interaes com itens .......................................................................... 50 15. Triggers de Consulta ................................................................................................... 51 15.1 Trigger PR-QUERY ........................................................................................... 51 15.2 Trigger POST-QUERY......................................................................................... 51 15.3 POST-QUERY e WHEN-VALIDATE-ITEM ..................................................... 52 16.Validaes.................................................................................................................... 52 16.1 Utilizando LOVs para validaes ......................................................................... 53 16.2 Utilizando Triggers para Validaes .................................................................... 53 17. Aplicaes Multi-Form............................................................................................... 54 17.1 Buit-in OPEN_FORM .......................................................................................... 54 17.2 Built-in CALL_FORM ......................................................................................... 54

1. Oracle Forms
Oracle Forms o principal produto do Developer/2000. Com o Form Builder possvel: Criar aplicaes que utilizem diversos de dados, e principalmente o banco de dados Oracle. Construir aplicaes rapidamente utilizando os Wizards. Construir aplicaes que so portveis para vrios ambientes. Facilmente copiar ou mover objetos e suas propriedades entre os componentes e as aplicaes. Usar tipos familiares e comuns de ferramentas Developer/2000, como editor de layout, navegador abjetos e ambiente PL/SQL de desenvolvimento.

1.1 Tipos de Mdulos


Uma aplicao Oracle Forms pode ser composta de muitos mdulos. Podem ser criados quatro tipos de mdulos: Mdulo Descrio Form Apresenta os objetos e os dados que os usurios podem ver ou interagir. Itens de dados em um Form so organizados em registros. Telas (janelas) com blocos pertencentes ou no a tabelas do Banco de Dados que proporcionam consultas, inseres, atualizaes e deleo de linhas. Menu composto por uma hierarquia de menus, cada qual com itens selecionveis. Interface hierrquico com o objetivo de prover um mtodo simples de emitir comandos para a aplicao. Library o conjunto de subprogramas PL/SQL armazenados centralizados, proporcionando reutilizao. Object Libraries um conjunto de diferentes objetos armazenados pelo desenvolvedor para assim referenciar ou copi-los em um mdulo forms. Biblioteca de objetos, armazena objetos criados pelo desenvolvedor, para serem copiados ou referenciados mdulos forms.

1.2 Mdulo Form


Mdulos Forms consistem no corpo principal de uma aplicao Oracle Forms. Consistem de vrios tipos de objetos e alguns desses objetos so visveis ao usurio no momento da execuo. So eles: Itens - So objetos que apresentam valores de dados ao usurio ou, dependendo do tipo de item, permitem ao operador interagir com o form. Itens esto logicamente agrupados em blocos e visivelmente arranjados em canvas. Bloco - o dono lgico de um item. Em um bloco os itens esto logicamente relacionados. Eles podem, por exemplo, pertencer a colunas de uma mesma tabela ou fazer parte de um mesmo ciclo de navegao.

Canvas - a superfcie onde os objetos visuais esto arranjados. Um mdulo Form pode ter vrios canvas. Por default todos os canvas ficam na mesma janela, mas podemos alocar janelas separadas para cada canvas.

Quando um form executado, a navegao feita atravs dos seus contedos por meio de itens e blocos, no por canvas. Cada item tem uma posio seqenciada dentro do bloco, e cada bloco tem uma posio seqenciada no form. Para mover para o prximo item do bloco, o foco ser mudado para o prximo item da seqncia, esteja ele onde estiver. Se o prximo item est em um canvas diferente, ento este canvas ser mostrado automaticamente. Similarmente, podemos mover para o prximo bloco (ou bloco anterior). Se o primeiro item neste bloco reside em um outro canvas, ento aquele canvas mostrado automaticamente. Se j sabes o item que vai ser movido, ento a aplicao pode permitir que voc clique diretamente com o mouse. Tambm pode-se programar comandos dentro da aplicao para permitir a navegao em outros modos.

1.3 Abrindo uma sesso Oracle Forms Builder


5

Para abrir uma sesso, siga os seguintes passos: Clicar Iniciar/Programas/Oracle Forms/Form Builder

1.4 Criando um novo mdulo form

1.5 Conectando-se ao banco

1.6 Trocando o nome de um mdulo form

2. Blocos
Bloco o dono lgico de um tem , os armazena e contm propriedades que afetam ao funcionamento dos quais. Um bloco pode ser de controle, sem ser baseado uma origem de dados ou ser Base Table, baseado uma tabela, view ou array.

2.1 Criando um bloco

2.2 Especificando a criao de um bloco de controle


Siga os passos para a criao de um bloco... Selecione a opo Build a new data block manually. Clique OK. Um Control Block um bloco que no est associado a nenhuma tabela base. Em outras palavras a propriedade Base Data Block NULL. Use um bloco de controle para colocar botes que podero ser colocados em um canvas ou em um toolbar.

2.3 Especificando a criao de um bloco baseado em uma origem de dados, usando a Data Block Wizard
Tela de boas vindas do Data Block Wizard

Um dilogo avisando que o Wizard ir criar um bloco com especificaes que devem ser preenchidas nos prximos dilogos.

2.4 Escolha do tipo de origem de dados


Table or View: Tabela ou View do banco;

Store Procedure: Array em forma de record retornado de uma procedure de banco.

2.5 Especificao da origem dos dados do tipo Table or View

10

1. Escolha o tipo da origem de dados do bloco, tabela ou view, caso no saiba, pressione o boto Browse e escolha uma opo da lista; 2. Mova as colunas que deseja incluir no bloco, as arrastando ou atravs dos botes; 3. Marque o CheckBox Enforce data integruty, para quando criar um bloco, tambm criar triggers relativas as constraints de controle de banco; 4. Clique no boto Next para seguir para a prxima pgina do Assistente, ou Finish para concluir as opes at aqui.

1 3 2

2.6 Etapa final da criao do bloco de dados


Na seguinte pgina do Assistente selecione uma das opes: 11

Create the data Block, then call the Layout Wizard: aps criar o bloco executa o Assistente de criao de Layout; Just create the data block: no executa o Assistente de Layout, deixando para que o usurio faa mais tarde.

2.7 Usando o Layout Wizard para especificao dos itens do bloco


Seleo do canvas no qual ser adicionado os itens do bloco. 12

Selecione em qual canvas deseja posicionar os dados do bloco: Selecione um Canvas j existente na lista; Ou (New Canvas: criar um novo canvas

13

Seleo dos itens do bloco que sero includos no layout

Acerto dos pronpts e tamanho dos itens

Seleo do estilo dos prompts em relao aos itens Form: Label esquerda do Item; 14

Tabular: Label cima do item.

Especificao do scrollbar e argumentos de agrupamento de tela Frame Titler: Descrio ddo frame envolvendo os dados do bloco. Records Displayed: Nmero de records mostrados no bloco. 15

Distance Between Records: Espaamento entre os records do Item. Display Scrollbar Check Box: Se o bloco deve possuir uma barra de rolagem dos registros.

Concluso das especificaes de gerao de itens do bloco E finalmente e mostrada um pgina de concluso bastando pressionar o boto Finish.

16

2.8 Funcionalidades da criao de um bloco Base Table


Na criao de um bloco base table e forms arranja e modifica as propriedades de canvas, frames e itens, automaticamente conforme as especificaes da origem dos dados e de Layout Wizard setadas ao criar o bloco, facilitando e agilizando ainda mais na construo de uma aplicao. Algumas tarefas efetuadas pelo forms ao criar o bloco: Cria um bloco e seta suas propriedades para as definies defoult da tabela, view ou array. Cria um item tipo Text para cada coluna da tabela base marcada para incluso. Seta as propriedades para cada Text item de acordo com a especificao da coluna correspondente. Cria um prompt tipo label para cada item, o default o nome da coluna. Arranja os itens da tabela base no frame especfico do canvas de acordo com as propriedades de layout. possvel programar um bloco no base table para acessar dados originados de vrias tabelas escrevendo triggers, mas um bloco base table pode ter semente uma tabela base. Para a tabela base, o Oracle Forms automaticamente: Cria itens em um bloco para corresponder a colunas em uma tabela. Produz cdigos em um form para empregar regras das constraints da tabela. 17

Gera SQL no momento de execuo (SQL implcito) para inserir, atualizar, apagar e pesquisar linhas na base table, baseada nas aes do usurio. No momento de execuo pode ser usado chaves de funo padro, botes, ou opes de menu para iniciar pesquisa, inserir, atualizar ou apagar dados na tabela base, e as subseqentes de transao.

2.9 Removendo um bloco


Selecione o bloco desejado no Object Navigator. Clique no cone Delete no Object Navigator. Um alert box solicita a confirmao. Clicar em Yes.

2.10 Propriedades de um bloco


Atravs das propriedades de um bloco pode-se controlar o comportamento e a aparncia dos blocos. Para acessar a paleta de propriedades, selecione o bloco no navegador, clique com o boto direito sobre o mesmo e escolha a paleta de propriedades. Segue a definio das principais propriedades do bloco: General Properties Descrio Especifica o nome interno do objeto. Todo objeto deve ter um nome vlido que seja compatvel com as convenes de nomenclatura do Oracle. Aplica-se a todos os Objetos. Subclass Information Durante a existncia de uma aplicao, pode ser necessrio atualizar informao sobre a origem de um objeto de sub-classe. Por exemplo, se o nome do objeto de origem mudou, Form Builder estar incapacitado de localizar o objeto quando voc compila um mdulo que se refira a ele. Similarmente, mover um mdulo de origem a partir do sistema de arquivos para o banco de dados, invalidar referncia a aquele mdulo. Voc pode atualizar a informao sobre objetos de origem sub-classe, definindo a Propriedade Subclass Informatiom. A definio de um objeto sub-classe inclui informao sobre objetos de origem no qual ele baseado, incluindo o nome do objeto de origem, o nome do mdulo de origem e o local de armazenamento. Nota: Tomar cuidado quando modificar essa propriedade. Se digitar o nome ou o local de origem do objeto incorretamente, as propriedades herdadas do objeto iro se reverter aos valores padro para o tipo de objeto. Name

18

Navigation Navigation Style

Descrio Determina como uma operao Next Item ou Previous Item, processada quando o foco est no ltimo item navegvel ou no primeiro item navegvel no bloco respectivamente. Aplica-se a blocos. Descrio

Records Properties

Current Record Especifica o atributo visual nomeado usado quando um item parte Visual Attribute do registro atual. Aplica-se a form, block e item. Group Number of Records Especifica o nmero mnimo de registros em buffer de memria Buffered durante uma pesquisa em um bloco. Default = NULL; que indica que o mnimo valor permitido o valor definido para a propriedade Records Displayed + 3. Number of Records Especifica o nmero mximo de registros que um bloco pode Displayed mostrar de uma vez. O padro 1. Definir o nmero mximo de registros exibidos para mais de 1, cria um registro multi-bloco. Especifica se todos os registros seguindo o critrio de pesquisa, Query All Records devero ser trazidos para o data block quando uma pesquisa executada. Aplica-se a blocos. Database Properties Descrio

Database Data Block Define se o bloco baseado em tabela, procedure, transactional trigger ou sub-query Define se aplicaes e usurios finais podem fazer pesquisas no Query Allowed bloco. Query Data Source Especifica o nome da origem de dados para pesquisa no bloco. Essa Name propriedade vale quando o tipo tabela, sub-query ou procedure. WHERE clause As propriedades padro WHERE Clause e ORDER BY Clause ORDER BY clause especificam clusulas standard SQL clauses para o comando padro SELECT associado a um data block. Essas clusulas so automaticamente incorporadas ao comando Select que o Form Builder constri e emite sempre que o operador da aplicao executa uma pesquisa no bloco. Define se registros podem ser inseridos no bloco. Insert Allowed Update Allowed Delete Allowed Define se registros podem ser atualizados no bloco. Especifica se registros podem ser apagados do bloco.

Scroll Bar Properties Show Scroll Bar

Descrio Define se deve ser criada uma scroll bar para o bloco que est 19

Scroll Bar Canvas Scroll Bar Tab Page

sendo criado. Canvas no qual a Scroll Bar deve ser exibida. Tab Canvas onde a scroll bar aparece.

2.11 Salvando um mdulo form


Duas formas para salvar um mdulo: Selecionando File -> Save As ou Clicando no cone Save As duas opes causam o aparecimento do dilogo File para o salvamento inicial. Ento deve entrar com o nome do arquivo e clicar em OK.

2.12 Executando um mdulo form


Pode-se executar um mdulo sem sair do Form Builder: Selecionando Program -> Run Form <CTRL + R> ou Clicando no cone Run. Quando voc termina a sua sesso Runform, retorna ao Oracle Forms Buider.

20

21

3. Relacionamento entre Blocos


Relacionamento uma relao entre dois blocos atravs de uma chave primria e uma chave estrangeira das tabelas nas quais os blocos esto baseados. Para suportar relacionamentos entre blocos e suas tabelas bases, pode ser definido um bloco com detalhe (detail) do outro. Isso permite usar valores de chave primria e chave estrangeira para conectar os blocos e sincronizar os dados que eles mostram. O bloco Mestre aquele baseado na tabela que possui a chave primria e o bloco detalhe aquele baseado na tabela que possui a chave estrangeira. O relacionamento Mestre Detalhe equivale a um relacionamento 1:M no diagrama Entidade Relacionamento. Um bloco detalhe pode ser um bloco mestre em relao a outro bloco. Um bloco mestre pode ter mais de um bloco detalhe.

3.1 Criando um relacionamento entre dois Blocos


O Oracle Forms Application consiste em mais de um bloco. Isso pode ser para: Separar o ciclo de navegao de um grupo de itens do outro. Mapear cada bloco em uma tabela de banco de dados diferente (voc pode ter uma tabela base por bloco). Produzir um form master-detail, com um master block e blocos de detalhe correspondente que so relacionados com o master. Existem duas formas de criar relacionamentos: - Implcita: quando voc cria um mdulo form com blocos associados Mestre Detalhe o objeto tipo Relao (Relation) criado implicitamente. - Explicita: se a relao no estabelecida na criao dos blocos voc pode criar a relao posteriormente. Alguns pontos a serem considerados quando agrupa-se blocos em uma aplicao: Blocos no mesmo Mdulo Form Podem ser diretamente conectados em um relacionamento Mster-Detail Navegao entre blocos manuseada por funcionalidade padro Blocos em diferentes Mdulos Forms No podem ser conectados por relaes inter-bloco padro Navegao entre blocos de diferentes forms so programadas pelo designer

3.2 Construindo um mdulo form mestre detalhe


Criar o bloco mestre normalmente. Criar o bloco detalhe setando as opes de relacionamento: o Clique no boto Create Relationship; 22

o Ao mostrar lista de blocos selecione o bloco mestre; o Se necessrio corrija a condio de join.

3.3 Executando um mdulo form mestre detalhe


Caractersticas de execuo Consultando o bloco mestre, automaticamente so consultados os registros correspondentes no bloco detalhe. Inserindo um registro no bloco detalhe automaticamente, ele estar associado ao registro mestre corrente. A tentativa de deleo de um registro mestre impedida caso um registro detalhe associado exista. As caractersticas de um relacionamento mestre detalhe podem ser alteradas atravs das propriedades.

3.4 Propriedades de relacionamento


23

Ao alterar as propriedades de uma relao o comportamento das delees e das coordenaes afetado. Segue as principais propriedades: Master Deletes Propriedade Non Isolated Cascading Uso Previne a deleo do registro do bloco mestre quando registros detalhes para esse mestre existem. Deleta os registros detalhes em cascata quando o registro mestre deletado. Obs.: a mensagem de Commit mostra somente o nmero de registros deletados do bloco mestre, embora os registros detalhe tambm sejam deletados. Deleta somente o registro mestre.

Isolated

Coordenao de consultas Propriedade Default Uso

Fora a coordenao dos blocos de maneira a sempre que o registro mestre for trocado os correspondentes registros detalhes sero apresentados. Deferred with Auto Adia a consulta dos registros detalhes associados ao registro mestre Query de maneira que eles sejam consultados automaticamente no momento em que o cursor se posicionar no bloco detalhe. Deferred winhout Adia a consulta dos registros detalhes associados ao registro mestre Auto Query de maneira que eles sejam consultados no momento em que o cursor se posicionar no bloco detalhe e for executada uma consulta no bloco detalhe. Provent Masterless Garante que um bloco detalhe no pode ser consultado ou utilizado Operations para insero de registros quando no existe um registro mestre. Join Condition Propriedade Condio de join Uso Condio de ligao entre blocos. Obs.: utilize nomes de blocos e itens ao invs de nomes de tabelas e colunas na expresso de condio

24

4. Frames
Frames o dono lgico de um grupo de itens do bloco, no canvas, onde pode-se referenciar os itens deste bloco diretamente pelo frame, podendo assim dimensiona-los, e preenche-los automaticamente na rea do mesmo. Tambm possvel setar algumas propriedades comuns nos itens do mesmo, pelo frame.

Frame

4.1 Propriedades de um frame Propriedade Name Update Layout Nome do frame. Forma de controle do frame com os itens englobados por ele: Automatically: dimenciona e controla os itens automaticamente, ao setar propriedades no frame, repassado aos itens e bloco; Manually: o frame passa a no mais fazer efeito nos respectivos itens e bloco, mas o Layout Wizard consegue alter-lo; Locked: o frame passa a no mais fazer efeito nos respectivos itens e bloco, e o Layout Wizard no consegue altera-lo. Estilo de Layout: Form: Label esquerda do item; Tabular: Label cima do item. Descrio

Layout Style

25

5. Itens tipo Texto


Um item de texto ou text item um objeto de interface que permite consultar, inserir, atualizar e deletar dados. Um item de texto geralmente corresponde a uma coluna na tabela de banco de dados. O tipo de item determina as propriedades disponveis na paleta de propriedades que usada para definir, alterar ou examinar as caractersticas dos itens.

5.1 Criando um item tipo texto


Pode-se criar um item do tipo texto de quatro formas: Convertendo um item existente em Item de texto. Usando a text item tool no editor de layout. Usando o cone Create no Object Navigator. Criando um novo bloco Base Table , usando o wizard e selecionando a opo para layout, os respectivos Text Itens sero criados implicitamente. Para criar um item tipo Text, deves seguir os passos seguintes: Entre no Layout Editor. Selecione Tools/Layout Editor Clique no cone Text Item do Toolbar no layout editor Clique no Canvas, e o Text Item deve aparecer. D um duplo clique no Text Item, e o Property Palette deve aparecer. Defina as propriedades conforme sua necessidade.

5.2 Propriedades de um text item


Propriedade Item Type Canvas Visible Visual Atribute Group Number of Itens Displayed Descrio Define o tipo de item que voc deseja criar Determina em qual canvas o item dever ser mostrado Determina se o item deve ou no ser mostrado Especifica o nome de um atributo visual previamente definido Define o nmero de ocorrncias de um item

5.3 Alterando cores e fontes


Utilize a propriedade Visual Attribute Group para selecionar cores e fontes para o item de texto. Um atributo visual uma seleo de propriedades de display que voc pode aplicar a um objeto Oracle Forms. H trs diferentes tipos de atributos visuais: Default 26

Custom Named

5.4 Controlando os dados em um text item


Use as seguintes propriedades de dados de um item de texto para controlar o modo como os dados sero mostrados e inseridos: Data Properties Descrio Synchronize with Item Especifica o nome de um item a partir do qual este item copia seu valor. Esta propriedade significa que pode ter dois itens em um bloco que simultaneamente representam o mesmo valor. Data Type Determina o tipo de dado Oracle permitido como entrada para este item. Maximum Length Define o nmero mximo de caracteres permitidos para este item. Geralmente corresponde a largura da coluna da tabela base. Required Determina se o item obrigatrio. Format Mask Define o formato da mscara para o item. Initial Value Especifica o valor default para o item a cada novo registro. Copy Value from Item Especifica o bloco e o item utilizado como fonte para o valor deste item. Utilizado quando da existncia de relaes entre blocos.

5.5 Formatando itens


A propriedade de formato de mscara permite especificar o formato no qual o usurio v o valor do item. Utilize o formato de sintaxe padro de SQL para datas e nmeros, por exemplo DD/MM/YY e 99,999.99. Para definir um valor default para cada item utilize uma das seguintes opes: Tipo Valor Varivel de sistema Descrio e exemplo Valor simples. Exemplo:340. Exemplo de utilizao de variveis de sistema: $$DATE$$ - data do sistema operacional no formato DD-MON-YY $$DATETIME$$ - data do sistema operacional no formato DD-MON-YYYY hh:mi:[ss] $$TIME$$ - hora do sistema operacional no formato hh:mi:[ss] $$DBDATE$$ - data do Banco de dados no formato DD-MON-YY $$DBDATETIME$$ - data do Banco de dados no formato DD-MON-YYYY 27

Item do Form Sequence

hh:mi:[ss] $$DBTIME$$ - hora do Banco de dados no formato hh:mi:[ss] Exemplo de utilizao de itens do mdulo form: :PEDIDOS.CODIGO Exemplo de utilizao de valores de seqncias: :SEQUENCE.PEDIDOS_CODIGO_SQ.NEXTVAL

5.6 Alterando o comportamento de navegao


Pose-se alterar a seqncia de navegao dos itens no Object Navigator. Como as entradas de itens so mostradas na ordem de navegao basta selecionar o item e arrastalo para a posio desejada na seqncia de navegao. Propriedades: Navigation Enabled Keyboard Navigable Next Navigation Item Descrio Determina se possvel navegar e manipular o item com o mouse Determina se possvel navegar para o item com as teclas de funo ou itens de menu Especifica o nome do item que definido como previous navigation item a respeito do item atual. Por padro esse o item com a prxima menor seqncia no form como indicado pela ordem dos itens no objeto navegador. Entretanto pode definir essa propriedade para redefinir o item anterior para finalidades de navegao. Especifica o nome do item que definido como next navigation item a respeito do item atual. Por padro esse o item com a prxima maior seqncia no form como indicado pela ordem dos itens no objeto navegador. Entretanto pode definir essa propriedade para redefinir o prximo item para finalidade de navegao.

Previous Navigation Item

5.7 Alterando o relacionamento do item com o banco de dados


Pode-se alterar a maneira como o item interage com a coluna correspondente na tabela base do Banco de dados, setando as seguintes propriedades: Database Properties Descrio Database Item Indica o item corresponde a uma tabela do banco de dados Column Name Estabelece que um item corresponde a uma coluna na tabela associada ao data block. Primary Key Indica que o item um item de tabela base em um data block e que corresponde a uma coluna de chave primria na tabela base. Form Builder exige que os valores das chaves primrias sejam nicos. 28

Insert Allowed Query Allowed Update Only if NULL

Determina se o item permite a insero de valores. Esta propriedade se aplica somente para novos registros. Determina se o item permite a utilizao de critrios de consulta sobre ele. Determina se o item permite atualizao somente quando o valor corrente nulo (NULL). Esta propriedade se aplica somente a registros j existentes.

5.8 Adicionando funcionalidades a um item


Adicione funcionalidade padro de um item de texto, introduzinho algumas das caractersticas adicionais: Funcional Properties Descrio Justification Determina o critrio de alinhamento do item Multi-Line Determina se o item pode armazenar mais de uma linha de texto. Urtilizado para colunas VARCHAR2 e LONG Wrap Style Determina se um item multi-line continua na prxima linha. None: no continua Character: continua normalmente Word: continua sem truncar Cancel Data Determina se o valor do item digitado deve ser vosvel ao usurio Automatic Skip Determina se o cursor automaticamente pula para o prximo item ao completar o item

5.9 Adicionando funes de grupo e frmulas a um item


possvel adicionar funes e frmulas a um item, usando as seguinte propriedades: Calculation Properties Calcalation Mode Descrio Especifica o que ser adicionado ao item: Fomula: Habilita uma frmula ao item Summary: Habilita uma funo de grupo ao item Especifica a frmula do item Relao das funes de grupo que ser assimilada ao item: Avg: mdia Count: quantidade Max: Valor mximo 29

Formula Summary Function

Summarized Block Summarized Item

Min: Valor mnimo Stddev: Desvio padro Sum: Soma Variance: Varincia Especifica o bloco no qual ser executada a funo de grupo Especifica o item no qual ser executada a funo de grupo

Para sumarizar um item deve-se seguir o seguinte critrio: O item sumarizado deve estar no bloco do sumarizados O item sumarizado deve estar em um bloco de controle, o qual deve possuir a propriedade Single Record para Yes, e o bloco sumarizado deve estar com a propriedade Query All Records como Yes

5.10 Labels associados do item


Pronpt Properties Prompt Prompt Justification Descrio Denscrio do label do item Estabelece que um item corresponde a uma coluna na tabela associada ao data block.

30

6. LOVs e Editores
LOVs e Editores so objetos em um mdulo form que cada um abre sua prpria janela quando ativados no momento de execuo. Eles so definidos em nvel form, o que significa que podem ser usados para suportar itens em qualquer bloco do mdulo form.

6.1 Conceito de Lista de Valores (LOV)


Uma LOV oferece ao operador do form, uma LOV dinmica. O operador pode reduzir as linhas exibidas na lista por simples tcnicas de auto-reduo ou por strings de busca. Cada linha em uma LOV pode apresentar vrios valores de campo, com cabealhos de colunas acima. As LOVs podem ser: Dinmicas as entradas da lista de valores podem refletir os valores disponveis, axatamente no momento em que se solicitou a lista; Independentes pode-se chamar uma mesma lista de vrios itens, desde que a mesma lista esteja associada a esses itens; Flexveis pode-se usar a mesma LOV para suportar vrios itens, se apropriando; Eficiente pode-se definir LOVs que utilizem valores j carregados anteriormente, evitando vrios acessos ao Banco de Dados. Esta opo somente deve ser utilizada quando os valores da lista so estticos.

6.2 Utilizando uma LOV em momento de execuo


Posicione o cursor no item que possui a lista de valores associada. Pressione a tecla [List] ou selecione a opo Edit-> Display List do menu ou clique no boto que aciona a lista de valores, se houver algum definido para esta funo Escolha um dos valores oferecidos pela lista. Pode-se digitar caracteres para auto-reduzir a lista ou entrear com um argumento de pesquisa no campo Find Clique em OK ou d duplo clique na opo escolhida para recuperar o valor da lista

6.3 Definindo uma Lista de Valores (LOV)


Existem trs objetos envolvidos na criao de uma LOV: Record Group objeto utilizado para armazenar o array de valores representados pela lista. Pode ser criado antes ou fazer parte do processo de criao da LOV.

31

LOV lista de valores propriamente dita. Apresenta os valores, a partir do Record Group, que podero ser selecionados e passados para os itens do form. Text Itens item tipo texto do form associado a lista de valores (LOV), a partir do qual a lista de valores poder ser chamada.

6.4 Criando uma Lista de Valores (LOV)


Selecione a entrada LOVs no Object Navigation e clique no cone Create. A janela de dilogo para a criao de um LOV dever ser apresentada. Elemento Radio Gruop Descrio Indica a origem dos dados que comporo a lista de valores: Existing Record Group se o Record Group base para este LOV j foi criado anteriormente. V2-Style TABLE COLUMN Values raramente utilizado, esta opo existe para manter compatibilidade com SQL*Form V2. New Record Group based on the Query bellow normalmente a mais utilizada, ser criado um Record Group baseado no texto da Query definido para este LOV. Boto utilizado para ver a lista de record Groups, no caso de se optar por utilizar um Record Group j existente. rea multi-line onde se entra com o comando SQL (SELECT) para compor os valores do Record Group que ser criado para este LOV. Utilize esta opo na criao de uma LOV baseada em um novo Record Group associado a uma consulta (SELECT).

Select (Button) Query Text

32

6.5 Propriedades da LOV


Aps a criao da LOV importante definir outras prioridades importantes. Propriedade Name Title Column Mapping Properties Automatic Select Automatic Display Automatic Refresh Descrio Define um nome apropriado para a LOV Define um ttulo Clicando no boto More apresentada a janela Column Mapping Determina se a LOV deve fechar e retornar valores automaticamente quando s existe uma entrada Determina se a LOV deve ser chamada automaticamente quando o cursor entrar no item associado ao LOV Yes: o Record Group re-executa a consulta toda vez qua a LOV chamada. No: o Record executa a consultas somente na primeira vez que a LOV chamada No retorno da LOV o cursor se posiciona automaticamente no prximo Item. Tenta posicionar a LOV prximo ao item Determina se ser apresentado um dilogo que permite entrar

Automatic Skip Automatic Position Filter Before Display

33

com um critrio de pesquisa antes da LOV ser chamada. Este critrio utilizado como restrio adicional na primeira coluna da clusula SELECT

6.6 Mapeamento colunas da LOV para itens do bloco


Pode-se montar a lista de valores e especificar que o valor de uma ou mais colunas da LOV retornem em um item especificado no forms, setando as seguintes propriedades: Propriedade Column Name Return Item Descrio Coluna a ser mapeada Define o valor a ser retornado, podem ser: Bloco.item (item do form) GLOBAL.nome_varivel (varivel global) PARAMETER.nome_parametro (parmetro do form) <Em Branco> (nenhum valor retornado) Largura da coluna na janela LOV. O valor () determina que a coluna fique invisvel enquanto o valor fica disponvel para ser retornado. Cabealho para a coluna na janela LOV.

Display Width

Column Title

6.7 Associando uma LOV a um item tipo texto


Aps a criao de uma LOV, deve-se associ-la a um item, especificando o nome da LOV nas propriedades do item. Passos para associar uma LOV a um Item: Selecione o item no Object Navigator No Properties Palette do item selecione a propriedade LOV Escolha a LOV para este item a partir da lista apresentada Para apresentar a LOV em coordenadas diferentes determine: List X Position List Y Position Para no permitir valores digitados que no estejam na lista, deve-se setar a propriedade Validate from List como Yes.

6.8 Conceito de Editor


34

Um Editor um tipo de objeto utilizado para prover ao operador um editor customizado para itens multi-line, ou seja, um editor permite que o operador veja mltiplas linhas de um item de texto simultaneamente, search-and-replace (busca e modifica) texto no item, e geralmente, modifica um valor de um item a partir desta janela separada. Todo item de texto tem o editor padro disponvel, mas possvel desenhar o seu prprio editor para modifixaes para aqueles itens que tem requisitos especiais. Prevalecendo o editor padro para um item de texto pode-se: Prover uma janela de edio grande para itens com valores textuais potencialmente grandes; Pcionalmente usar um sistema editor externo.

6.9 Utilizando um Editor em momento de execuo


Para acionar o Editor: Posicione o cursor no item que possui o editor associado; Pressione a tecla [Edit] ou selecione a opo Edit ->Edit do menu ou clique no boto que aciona o editor, se houver algum definido para esta funo; Edite o texto na janela do Editor; Clique em OK para salvar suas mudaas no item tipo texto.

6.10 Associando um Editor a um item tipo texto


Depois de criar um Editor pode associ-lo a um item especificando o nome do Editor nas propriedades do item. Passos para associar um Editor a um Item: Selecione o item no Object Navigator; Na properties Palette do item selecione a propriedade Editor; Escolha o Editor para este item a partir da Lista; Null o item utiliza o editor default do Oracle Forms; SYSTEM_EDITOR o item utiliza o editor do sistema operacional; <nome_editor> - o item utiliza um editor criado pelo Oracle Forms Builder. Para apresentar o Editor em coordenadas diferentes determine: Editor X Position Editor Y Position

35

7. Outros tipos de Itens 7.1 Check-box


um objeto de interface de dois estados que indica se um certo valor est ON ou OFF. O estado display de uma Check Box sempre ou Checked ou Unchecked (checado ou no checado). Pode usar as Check Boxes para aumentar a interface com o usurio convertendo itens existentes que tem dois possveis estados.

7.2 Passos para criar um item tipo Check-box no Layout Editor


Acesse o Layout Editor; Clique no cone Check Box na tool bar do Layout Editor; Clique no canvas na posio que deseja que o Check Box seja mostrado; D um duplo clique no item tipo Check Box que voc criou para acessar o Property Pallete; Entre com um valordefault para o item; Entre com um label para o Check Box; Entre com os valores para os estados Checked e Unchecked; Defina a propriedade Check Box Mapping of Other Values.

36

7.3 Propriedades especficas de um item tipo Check-box

Propriedade Item Type Label/Prompt Value when Checked

Descrio Determina o tipo de dado do item. Define o label e o Prompt adjacente ao item Check Box. Especifica o valor que est associado ao estado checked do item. O valor deve ser compatvel com a Data Typo especificado. Value when Especifica o valor que est associado ao estado Unchecked Unchecked do Item. O valor deve ser compatvel com o Data Type especificado. Check Box Mapping of Determina como outros valores so processados em uma Other Values consulta, quando os registros forem diferentes dos valores associados Checked e Unchecked: Not Allowed so ignorados. Checked so associados a Checked e se forem salvos convertidos para este valor. Unchecked so associados a Unchecked e se forem salvos sero convertidos para este valor.

7.4 Tratando valores nulos em itens tipo Check-box


Se a coluna em que o item est baseado permite nulos, podem ser tratados: Setando a propriedade Check Box Mapping of Other Values; Setando o estado Checked ou Unchecked. Para representar nulo (NULL), basta permitir que o valor no seja preenchido; Ignorando o Check Box no modo Enter Query.

7.5 List
Um List Item um objeto de interface que exibe uma seleo de opes prdefinidas, cada uma correspondendo a um valor de dados especfico. Usa-se o item da lista em tempo de execuo para selecionar um valor simples. Escolha da Lista ou elementos so mutuamente exclusivos, um e somente um selecionado por vez. Os trs estilos de List Itens so: Estilo Pop List Descrio Item com um boto icnico conjugado do lado direito. Clique no Pop List para ver a lista de elementos pr-definidos. No

37

T-List Combo Box

permitida a digitao de valores. Item com um scroll bar conjugado ao lado direito. Utilize o scroll bar para ver a lista de elementos. Item com um boto icnico ao seu lado direito, mas no conjugado. Clique no boto para ver a lista de elementos. Permite a digitao de valores.

7.6 Criando um item tipo List


Um List Item pode ser criado: Convertendo um item existente; Usando a ferramenta Check Box no editor de Layout; Usando o cone Create no Object Navigator. Para converter um item para List Item, basta seguir os passos: Acesse o Property Pallete para o item que voc deseja converter; Altere o tipo de item para List Item; Selecione a propriedade Elements in List. Clique em More..., o dilogo List Elements ir aparecer; Entre com o primeiro elemento que deseja que aparea na lista; Entre com o valor para o elemento corrente selecionado na lista de elementos na propriedade List Item Value; Entre com um valor default para o Item; Defina a propriedade Mapping of Other Values. Para criar um tipo List Item no Layout Editor, basta seguir os passos: Acesse o Layuot Editor; Clique no cone List Item na tool bar do Layuot Editor; Clique no canvas na posio que voc deseja que o List Item seja mostrado; D um duplo clique no item tipo List que voc criou, para acessar o Property Pallete; Selecione a propriedade Elements in List. Clique em More..., o dilogo List Elemensts ir aparecer; Entre com o primeiro elemento que deseja que aparea na lista; Na propriedade List Item Value, entre com o valor para o elemento corrente; Entre com os outros elementos e valores repetindo os dois passos anteriores. Entre com um valor default para o item; Defina a propriedade Mapping of Other Values.

7.7 Propriedades especficas de um item tipo List


38

Propriedade Item Type List Style

Descrio Determina o tipo de dado do item. Determina o estilo de interface da lista. Escolha entre PopList, T-List ou Combo-Box. Mapping of Other Determina como os outros valores so processados. Escolha Values entre: Deixar o valor em branco ignora outros valores alm dos definidos na lista. No processamento de consultas, os registros com valores diferentes dos associados lista so ignorados. Associar com o um dos elementos da lista ou definir um valor no processamento de consultas, os registros com valores diferentes dos associados lista so associados ao elemento da lista especificado. Se forem salvos os valores sero convertidos para o valor associado. Elements in List Clique no boto More... para abrir o dilogo List Elements. List Elements especifica o label do elemento da lista. List Item Value especifica o valor associado ao elemento corrente da lista de elementos.

7.8 Tratando valores nulos em itens tipo Lista


Se a coluna em que o item est baseado permite nulos pode-se trat-los criando explicitamente um elemento da lista associado ao valor nulo (NULL). Se este no for criado, o Oracle Forms criar implicitamente um elemento para representar os nulos. Pop List mostra um elemento vazio. T-list mostra a lista sem nenhum elemento vazio. Combo-Box mostra um elemento vazio.

7.9 Radio Groups


Radio Groups so um conjunto de radio buttons. Cada radio button apresenta um valor diferente. Os radio buttons pertencentes a um Radio Group so mutuamente exclusivos. Os benefcios de um Radio Goup so: Mostrar mais do que dois valores estticos; Prover uma alternativa aos itens tipo List com dois ou trs escolhas; Prover uma alternativa aos itens tipo Check Boxes diferentes de SIM/NO, ON/OFF, YES/NO, etc. 39

7.10 Propriedades especficas de um item tipo Radio Groups

Miscellaneous Descrio Properties Data Type Determina o tipo de dado do item. Mapping of Other Determina como os outros valores so processados. Escolha Values entre: Deixar o valor em branco ignora outros valores alm dos definidos na lista. No processamento de consultas, os registros com valores diferentes dos associados aos Radio Buttons so ignorados. Associar com o nome de um Radio Button ou definir um valor no processamento de consultas, os registros com valores diferentes dos das lista so associados ao Radio Button especificado. Se forem salvos sero convertidos para o valor associado ao elemento da lista..

7.11 Tratando valores nulos em um Radio Groups


40

Se a coluna em que o item est baseado permite velores nulos voc pode trat-los: Criando explicitamente um elemento da lista associado ao valor nulo (null); Deixando a propriedade Ignore Mapping of Other Values no preenchida; Associando Ignore Mapping of Other Values com um dos Radio Buttons pelo seu nome ou pelo valor especificado.

41

8. Itens tipo No Input 8.1 Itens tipo Display


Display um tipo de item similar ao item tipo Text com exceo de que no pode ser editado ou navegado em momento de execuo. Um item Display utilizado somente para leitura (consulta). Seu valor deve ser atribudo por programao. Os itens tipo Display so usados para: Mostrar informaes adicionais baseadas em dados no existentes na tabela base do bloco; Mostrar valores derivados; Conservar valores em memria.

8.2 Itens tipo Button


Button um objeto de interfaces que pressionado para iniciar uma ao. Um boto geralmente apresentado como um retngulo com um label ou um cone.

42

43

9. Windows, Canvas e Viewport


Window - similar a uma moldura de um quadro. O gerenciador de janelas do sistema operacional prov os controles para janelas possibilitando funcionalidades como scroll, movimentao e redimensionamento. Canvas Similar a uma tela em branco sobre o qual um desenho ser pintado. a rea sobre a qual so colocados itens, boilerplates textos e boilerplates images. Viewport a rea do canvas que visvel em momento de execuo. O mtodo utilizado para determinar o tamanho da view depende do tipo de canvas. Um canvas sempre mostrado na janela a qual ele est associado.

9.1 Propriedades de uma Window


Physical Property Propriedade Width Heigth GUI Hint Property Propriedade Close Allowed Move Allowed Minimize Allowed Minimize Title Functional Property Propriedade Primary Canvas Window Style

Descrio Determina a largura da janela. Determina a altura da janela.

Descrio Habilita o boto close da janela, mas, para execut-lo necessrio. Determina se o usurio pode mover a janela em momento de execuo. Determina se o usurio pode minimizar a janela. Especifica o ttulo da janela quando minimizadas.

Modal

Descrio Especifica o nome do canvas a ser mostrado na janela quando esta chamada por programa. Determina o estilo da janela. Escolha entre: Document a janela deve estar sempre dentro da MDI parent Window. Dialog a janela pode ser movimentada ou ser redimensionada para fora da MDI parent Window. Determina se a janela do tipo Modal, caso contrrio esta ser do tipo Modeless.

9.2 Conceito de content canvas


44

Um Content Canvas um canvas que a base para uma janela, ocupando todo o seu contedo. Geralmente criado pelo menos um Content Canvas para cada janela em sua aplicao. Somente um content canvas pode ser mostrado em uma janela por vez, em momento de execuo.

9.3 Stacked canvas


Um Stacked Canvas um canvas que no base para uma janela, compartilhando a janela com um content canvas e qualquer nmero de outros stacked canvas. Geralmente menos que a janela em que ele parece.

9.4 Canvas Toobar


Um Toobar um tipo especial de Canvas que utilizado para criar e possuir botes e outros objetos GUI utilizados freqentemente como uma barra de ferramentas.

9.5 Tab Canvas


Um Tab canvas tambm um tipo especial de canvas que utilizado para melhor organizar e mostrar informaes separadas por pginas. Como os Stacked canvas tipo Tab mostrado em cima de um canvas do tipo content

45

10. Triggers
Uma Trigger uma unidade de programa que executada (disparada) quando ocorre um evento. O Oracle Forms permite a contruo de poderosas facilidades sem a necessidade de escrever cdigo. Uma Trigger permite adicionar e modificar a funcionalidade de um mdulo de uma forma procedural de maneira que processos datalhados de aplicao possam ser definidos. Toda trigger est associada a um evento especfico. O Oracle Forms possui uma grande variedade de eventos que associam-se a uma trigger. As Triggers so escritas em PL/SQL como nas demais ferramentas do Developer/2000. Componentes de um Trigger. Componentes Trigger Type Trigger Code Trigger Scope Descrio Tipo de Triggers: especifica o evento que far com que a trigger dispare. Corpo de Trigger: bloco PL/SQL que define a ao a ser executada pela trigger. Escopo da Trgger: determina o escopo sobre o qual os eventos sero detectados pela trigger. Nvel em que a trigger est definida.

10.1 Trigger Type


Caracteriza o evento que faz com que a trigger dispare A primeira parte do nome da trigger (prefixo) segue um padro que permite a identificao do tipo de trigger. Todas as built-in triggers so associadas a um evento e seus nomes sempre contm um prefixo seguido de hfens _. O tipos so PRE- : A trigger disparada quando ocorre um evento antes de uma ao. POST- : A trigger disparada quando ocorre um evento depois de uma ao. WHEN- : A trigger disparada em edio ao processamento padro, permite aumentar a funcionalidade. ON- : A trigger disparada em substituio ao processamento padro, permite aumentar a funcionalidade. KEY- : Atrigger dispara em substituio ao processamento padro de uma tecla de funo, permite aumentar a funcionalidade.

46

11. Produzindo Triggers 11.1 Criando uma Trigger pelo Object Navigator
No Navigator, selecione a entrada Triggers embaixo do Form, do Bloco ou do Item que a trigger deve estar associada. O objeto que voc escolher determinar o escopo da trigger e os tipos de triggers disponveis. Clique no cone Create, ou selecione o menu Program -> SmartTriggers, dever mostrar um lista das triggers apropriadas para o objeto corrente. Escolha o tipo de Trigger de uma lista de valores. Para ajudar a selecionar o tipo de Trigger tambm pode utilizar alm da LOV o recurso de auto reduo teclando as letras iniciais dos nomes da trigger. Entre com o cdigo PL/SQL da trigger no Source Pane do Editor.

11.2 Suplementando validaes


WHEN-VALIDATE-ITEM Trigger Esta trigger disparada quando o Oracle Forms valida um item que esta marcado como changed. Isto acontece se o operador altera o item ou se outra trigger altera o valor deste item. A trigger disparada imediatamente aps as validaes padro do Oracle Forms para o item alterado. Esta validao geralmente ocorre quando o cursor navega para fora do item. Usos da Trigger Whem-Validate-Item: Incrementar a validao de um item para validaes complexas que no podem ser implementadas pelas propriedades de um item. Popular outros itens como: itens no base table e display itens Exemplo: Trigger WHEN-VALIDATE-ITEM para o item QUANTIDADE no bloco ITENS do form PEDIDOS. DECLARE v_ quanto NUMBER; BEGIN SELECT SUM (quantidade_em_estoque) INTO v_quant FROM estoque WHERE codigo_do_produto = : itens.codigo_do_produto; IF : itens.quantidade > v_quant THEM : itens.quantidade : = v_quant; 47

MENSAGE (No possui estoque !); END IF; END;

48

13. Executando um Form no modo Debug


Passo 1 Ligue o Debug Mode no Builder. Clique no cone Debug Mode no Toolbar do Navigator ou selecione Porgram -> Debug Mode do Menu. Outra alternativa setar Debug Mode em Runtime Options selecionando Tools -> Preferences -> Pasta Runtime. Passo 2 Gere o mdulo form. Por Default a opo Built Before Running est setada, bastando executar o mdulo. Clique em Run. Passo 2.1 Quando inicia o form PL/SQL Debugger mostrado. Passo 2.2 Selecione a trigger que voc deseja depurar e entre com as aes de Debug, definindo os pontos de Break (duplo clique na linha desejada). Saia do Debugger clicando no boto Close e continue a execuo do form. Passo 3 A cada break point atingido o debugger invocado de modo que possa monitorar e interagir com o form, executando linha a linha a trigger depurada.

49

14. Respondendo a interaes com itens


Existem alguns tipos de GUI Itens que o operador pode interegir clicando com o mouse ou pressionando uma tecla de funo. A maioria destes itens possui uma funcionalidade default. Por exemplo, clicando em um Radio Button o operador pode alterar o valor para um item tipo Radio Group. Voc pode customizar funcionalidades, por exemplo: Executrar testes e aes apropriadas to logo o operador clique em um Radio Button, Uma Lista ou um Check Box. Mostrar a foto de um produto quando o operador clica no quadro (item do tipo Image). Definir a funcionalidade de um boto. Trigger Evento que dispara a trigger WHEN-BUTTONSeleo de um boto , atravs de um simples clique com o PRESSED mouse ou por uma tecla de funo. WHEN-CHECKEDTroca do estado de um item tipo checkbox com o mouse CHANGED ou com uma tecla de funo WHEN-RADIOSeleo de um boto diferente ou do corrente em um CHANGED Radio Group WHEN-IMAGE-PRESSED Um clique simples ou dublo clique em um item tipo Image WHEN-IMAGEExecuo de um duplo clique em um item tipo Image. ACTIVATED WHEN-LIST-CHANGED Troca o valor de um item tipo List WHEN-LIST-ACTIVATED Execuo de um duplo clique em um elemento de uma TList.

50

15. Triggers de Consulta 15.1 Trigger PR-QUERY


Deve ser definida em nvel de bloco ou superior. disparada para consultas irrestritas ou restritas. Em uma trigger PRE-QUERY pode: Testar condies para a consulta e falhar o processo caso as condies no sejam satisfatrias; Adicionar um critrio para a consulta, atribuindo um valor para itens base table. Exemplo: A trigger PRE-QUERY abaixo, no bloco PEDIDOS, possui uma restrio de modo que a consulta s pode ser realizada se os itens CODIGO, DATA_DO_PEDIDO ou DATA_PREVISAO_DE_ENTREGA forem fornecidos. Isto evita consultas muito grandes. IF NAME_IN (PEDIDOS.CODIGO) | | TO_CHAR (:pedidos.dta_do_pedido) | | TO_CHAR (:pedidos.data_previsao_da_entrega) IS NULL THEN MESSAGE (O nmero ou a data do pedido devem ser preenchidos); RAISE FORM_TRIGGER_FAILURE; END IF;

15.2 Trigger POST-QUERY


Deve ser definida a nvel de bloco ou superior. disparada para cada registro retornado para o bloco como resultado da consulta. Utilize a trigger POST-QUERY para: Popular itens no base table a partir dos registros retornados por uma consulta; Calcular estatsticas. Exemplo: A trigger POST-QUERY abaixo para o bloco ORDER, seleciona a contagem do nmero de itens para o pedido consultando e mostra o nmero em um item no base table :Lineitem_count. 51

SELECT COUNT (*) INTO :pedidos.total_de_itens FROM itens WHERE codigo_do_pedido = :pedidos.codigo;

15.3 POST-QUERY e WHEN-VALIDATE-ITEM


Quando a trigger POST-QUERY popula um item efetuada, causando, caso tenha sido definida, o disparo da trigger WHEN-VALIDATE-ITEM. Exemplos: A seguinte procedure deriva o nome do produto a partir do cdigo do produto ITENS.CODIGO_DO_PRODUTO. O nome colocado no item ITENS.DESCRIO. PROCEDURE Busca_Descricao_Produto IS BEGIN SELECT nome INTO :itens.descricao FROM produtos WHERE codigo = itens.codigo._do_produto END; A procedure Busca_Descricao_Produto chamada pela trigger WHENVALIDATE-ITEM para o item ITENS_CODIGO_DO_PRODUTO que falha a validao se o produto no for encontrado. Busca_Descricao_Produto; EXCEPTION WHEN NO_DATA_FOUND_THEN MESSAGE(Cdigo do produto invlido); RAISE FORM_TRIGGER_FAILURE; A procedure Busca_Descricao_Produto tambm chamada pela trigger POST-QUERY para o bloco ITENS. Se o produto no for encontrado a trigger no gerar falha pois a exceo est sendo tratada na trigger e no est sendo forada a exceo FORM_TRIGGER_FAILURE, portanto como a POST-QUERY no gerar falha o registro ser mostrado (porm sem o valor para a descrio do produto ITENS.DESCRICAO). Busca_Descricao_Produto EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE (Este produto foi excludo);

16.Validaes

52

16.1 Utilizando LOVs para validaes


Quando associa uma LOV a um item atravs da propriedade LOV, pode opcionalmente utilizar o contedo da LOV para validar os dados entrados para o item. Faa isto setando a propriedade LOV for Validation para Yes. No momento de validao o Oracle Forms automaticamente utiliza o valor do item como um string de pesquisa no sensitivo ao case para o contedo da LOV. com certeza que na LOV criada tenha a coluna de validao como a primeira mostrada e com o Display Width maior que 0. Por motivos de performance no utilizar LOV for Validation em LOVs muito grandes.

16.2 Utilizando Triggers para Validaes


WHEN-VALIDATE-ITEM Esta trigger disparada quando o Oracle Forms valida um item que est marcado como changed. Isto acontece se o operador altera o item ou se outra trigger altera o velor deste item. A trigger disparada imediatamente aps as validaes padro do Oracle Forms para o item alterado. Esra validao geralmente ocorre quando o cursor navega para fora do item. WHEN-VALIDATE-RECORD Esta trigger disparada aps a validao padro do registro quando o operador navega para outro registro. Assim que o Oracle Forms checa se todos os itens obrigatrios do registro esto com status vlido a trigger disparada permitindo checks adicionais envolvendo mais do que um dos itens do registro.

53

17. Aplicaes Multi-Form 17.1 Buit-in OPEN_FORM


Esta uma built-in restrita e no pode ser chamada em modo Enter Query. A Built-in OPEN_FORM permite iniciar outro form em uma janela Modeless, de modo que o operador possa trabalhar em ambos os forms ao mesmo tempo, alternando as janelas. Esta built-in normalmente a maneira mais utilizada em aplicaes Multi-Form. Pode iniciar outro form atravs de OPEN_FORM sem passar o controle para ele imediatamente. Voc tambm tem a opo de iniciar uma outra sesso para o novo Form. Sintaxe: OPEN_FORM (nome_do_form, ACTIVATE_MODE , SESSION_MODE , DATA_MODE , lista_de_parmetros); Argumentos: Parmetro Descrio Nome_do_form Nome do arquivo executvel do mdulo (sem o sufixo .FMX). O Path default do Oracle Forms utilizado, a menos que fornea como parte do string de caracteres. ACTIVE_MODE ACTIVATE: default, torna o mdulo iniciado ativo. NO_ACTIVATE: mantm o mdulo chamador ativo, no passa o controle para o outro mdulo imediatamente. SESSION_MODE NO SESSION (default): no inicia nova sesso. SESSION: inicia nova sesso. DATA_MODE NO_SHARE_LIBRARY_DATA: (default) no usa library do chamador. SHARE_LIBRARY_DATA: permite usar library do chamador Lista_de_parmentros Nome do parmetro entre aspas ou ID interno de um parmetro de uma lista de parmetros.

17.2 Built-in CALL_FORM


Esta uma built-in inrestrita e pode ser chamada em modo Normal ou Enter Query. A Built-in CALL_FORM passa o controle imediatamente o form chamador dica suspenso at que o form chamado seja fechado, neste momento o controle retornado para o form chamador.

54

A Built-in CALL_FORM emite um SAVEPOINT antes de passar o controle para o form chamado, de modo a preservar os Locks no form chamado causar um Rollback. CALL_FORM til para iniciar outro form quando a ao tem que ser completada antes que o form chamador possa continuar. Opcionalmente o form chamado pode ser iniciado em modo Query Only. Sintaxe: CALL_FORM (nome_do_form, DISPLAY , SWITCH_MENU , QUERY_MODE , lista_de_parametros); Argumentos: Parmetro Descrio Nome_do_form Nome do arquivo executvel do mdulo (sem o sufixo .FMX). O Path default do Oracle Forms utilizado, a menos que fornea como parte do string de caracteres. DISPLAY HIDE: default, define que o form chamador deve ser escondido enquanto o form chamado estiver executando. NO_HIDE: define que o form chamador no deve ser escondido enquanto o form chamado estiver executando. QUERY_MODE NO_QUERY_ONLY: default. QUERY_ONLY: define que o form chamado deve executar em modo Query Only. SWITCH_MENU NO_REPLACE: o forms chamado deve usar o seu prprio menu. DO_REPLACE: o forms chamado deve usar o menu corrente.

55

Você também pode gostar