Forms 6i Forms 6i 1 Forms 6i Índice 1 INTRODUÇÃO .................................................................................................................................................. 4 2 PRIMEIROS PASSOS PARA UTILIZAÇÃO DO FORMS BUILDER ............................................................... 5 2.1 ENTRADA ...................................................................................................................................................... 5 2.2 CONEXÃO COM A BASE DE DADOS ORACLE ..................................................................................................... 6 2.3 CRIANDO UMA NOVA APLICAÇÃO..................................................................................................................... 7 2.4 CONFIGURAÇÃO DO AMBIENTE DO BUILDER .................................................................................................... 8 3 INTERFACE DO BUILDER ............................................................................................................................. 11 3.1 JANELA DO ORACLE FORMS BUILDER ........................................................................................................... 11 Barra de ferramentas .................................................................................................................................. 12 3.2 JANELA DE SHOW KEYS ............................................................................................................................... 13 3.3 LINHA DE STATUS ........................................................................................................................................ 13 3.4 MENU FILE .................................................................................................................................................. 14 3.5 MENU EDIT ................................................................................................................................................. 16 3.6 MENU PROGRAM ......................................................................................................................................... 17 4 DESENVOLVIMENTO DE FORMS ................................................................................................................ 18 4.1 OBJETOS COMPONENTES DE UM FORM......................................................................................................... 18 Alerta (Alert) ................................................................................................................................................ 18 Bloco (Data Block) ....................................................................................................................................... 18 Canvas ........................................................................................................................................................ 18 Editor ........................................................................................................................................................... 18 Item.............................................................................................................................................................. 18 Lista de Valores (LOV) ................................................................................................................................ 19 Parâmetro .................................................................................................................................................... 19 Record Group .............................................................................................................................................. 19 Relation ....................................................................................................................................................... 20 Visual Attributes........................................................................................................................................... 20 Windows ...................................................................................................................................................... 20 Program Units e Triggers ............................................................................................................................ 20 Bibliotecas (Attached Library) ..................................................................................................................... 20 4.2 CRIANDO UM NOVO FORM ............................................................................................................................ 21 4.3 PROPRIEDADES DO MÓDULO ........................................................................................................................ 22 4.4 CONFIGURANDO O CANVAS .......................................................................................................................... 24 4.5 CANVAS DO TIPO GUIA (TAB CANVAS) .......................................................................................................... 26 4.6 TAB PAGE ................................................................................................................................................... 27 4.7 CRIANDO BLOCOS PARA ACESSO À BASE DE DADOS ...................................................................................... 28 4.8 PROPRIEDADES DE UM BLOCO...................................................................................................................... 37 4.9 CRIANDO RELACIONAMENTOS ENTRE BLOCOS .............................................................................................. 39 4.10 MANIPULANDO ITENS ................................................................................................................................. 42 Text Item...................................................................................................................................................... 42 Radio Group ................................................................................................................................................ 47 Check Box ................................................................................................................................................... 49 Propriedades ............................................................................................................................................... 50 Botões ......................................................................................................................................................... 51 List Item ....................................................................................................................................................... 53 Lista de Valores (LOV) ................................................................................................................................ 57 Editores ....................................................................................................................................................... 61 Parâmetros .................................................................................................................................................. 62 4.11 MODIFICANDO A APARÊNCIA DE UM FORM .................................................................................................. 63 Ferramentas ................................................................................................................................................ 63 2 Forms 6i Manipulando objetos no Layout Editor ........................................................................................................ 65 Dimensionando Objetos .............................................................................................................................. 67 4.12 CRIANDO ATRIBUTOS VISUAIS NOMEADOS ................................................................................................... 68 5 DESENVOLVIMENTO DE TRIGGERS........................................................................................................... 70 5.1 CRIANDO UM TRIGGER................................................................................................................................. 70 5.2 EVENTOS QUE DISPARAM TRIGGERS ............................................................................................................ 73 5.3 POPULANDO DADOS ATRAVÉS DE TRIGGERS ................................................................................................. 74 5.4 ALTERANDO A FUNCIONALIDADE DO FORM ATRAVÉS DE TRIGGERS ................................................................. 75 5.5 TRIGGERS DISPARADOS POR BOTÕES........................................................................................................... 76 6 COMPARTILHANDO CÓDIGO....................................................................................................................... 77 6.1 CRIANDO FUNCTIONS E PROCEDURES .......................................................................................................... 77 6.2 LIBRARY...................................................................................................................................................... 79 6.3 LIGANDO UMA LIBRARY A UM MÓDULO (ATTACH) ........................................................................................... 80 6.4 CHAMANDO UMA PROCEDURE OU FUNCTION LIGADA AO MÓDULO ................................................................... 80 7 DESENVOLVIMENTO DE MENUS ................................................................................................................ 80 7.1 CRIANDO UM MENU ...................................................................................................................................... 80 7.2 CRIANDO O MENU PRINCIPAL ........................................................................................................................ 82 7.3 CRIANDO OPÇÕES PARA O MENU .................................................................................................................. 82 3 Forms 6i 1 Introdução O Oracle Forms é uma ferramenta de desenvolvimento de aplicações, que permite a criação de telas e menus. É formada por 3 componentes : Designer : Utilizado para a criação de aplicações, compilação e execução, sendo executado em ambiente gráfico de edição. Runtime : Ferramenta utilizada pelos usuários para a execução das aplicações já desenvolvidas. Generate : pelo runtime. Utilizado para compilar uma aplicação e gerar o arquivo executável 4 Forms 6i 2 Primeiros passos para utilização do Forms Builder 2.1 Entrada 5 Forms 6i 2.2 Conexão com a base de dados Oracle A conexão ao banco de dados habilita algumas funções no Designer, como compilação de objetos e geração de executáveis. A conexão pode ser feita através do menu File Connect, ou, quando necessária interação com a base de dados, o Designer pede a conexão. Nos dois casos abre-se a janela de conexão mostrada abaixo. 6 Forms 6i 2.3 Criando uma nova aplicação Através do menu File New, tem-se acesso a criação de um novo módulo, que pode ser de um dos três tipos abaixo: Form Conjunto de objetos e rotinas que apresenta-se como ferramenta on-line para entrada e recuperação de dados. Menu Um menu principal que contém diversos submenus, que compõe o menu da aplicação. PL/SQL Library Conjunto de funções e procedimentos que podem ser utilizados por diversos módulos. Os 3 tipos de módulos são armazenados em formato binário (na base de dados ou no sistema de arquivos). O arquivo executável é criado com base em informações da plataforma em que o Oracle Forms está executando, não sendo portanto portável para outras plataformas. Para portar uma aplicação entre plataformas, deve ser gerado o arquivo texto e então o módulo é portado. Para portar uma aplicação para outra plataforma, utiliza-se o Generate. As seguintes extensões são utilizadas pelo Oracle Forms para identificar os tipos de módulo : Módulo Form Menu Library Binário .FMB .MMB .PLL Texto .FMT .MMT .INP Executável .FMX .MMX .LIB 7 Forms 6i 2.4 Configuração do ambiente do Builder Através da opção “Preferences” do menu “Tools” do Forms Designer, é possível acessar as opções da sua configuração interna. Estas opções são descritas abaixo : Save Before Generate executável. Build Before Runnig Supress Hints Use System Editor Salva o módulo (binário) antes de gerar o Gerar o módulo (executável) antes de rodá-lo. Não mostra o conteúdo da linha de mensagens. Determina qual editor o Oracle Forms usará quando você chamar um editor de campo multi-line em uma propriedade. Opções: 1) On : Mostra o editor definido para o seu sistema. 2) Off : Mostra o editor default do Oracle Forms. 8 Forms 6i Module Access Determina o local de armazenamento utilizado para ler e salvar os módulos. Opções: File Módulos armazenados em disco. Database Módulos armazenados na base de dados. Ask de local Quando houver operação de leitura ou salvamento módulo, o Oracle Forms irá solicitar que se informe o de armazenamento. 9 Forms 6i Debug Messages Array Processing Habilita que durante a execução sejam mostradas as mensagens de debug (nome das triggers no momento em que são disparadas). Opções: 1) Off: Quando é feita uma consulta no banco de dados, o retorno é feito do servidor para o cliente linha a linha. 2) On: O retorno é feito conforme informado na propriedade fetch de cada bloco. Query Only Mode Determina que o form é apenas de consulta. Quiet Mode tempo de Desabilita o beep quando uma mensagem é mostrada em execução. 10 Forms 6i 3 Interface do Builder 3.1 Janela do Oracle Forms Builder A tela básica para trabalho no Designer é mostrada abaixo, composta da janela do Designer e a janela do Object Navigator. barra de menus módulo ativo barra de ferramentas linha de mensagem linha de status 11 Forms 6i Barra de ferramentas Criar novo módulo Abrir um módulo já existente Salvar o módulo ativo Executar tela Client/Server Executar tela Web Ativa o modo de debug Recortar Copiar Colar Criar objeto Excluir objeto Expandir ramificação Reduzir ramificação Expandir todas ramificações Reduzir todas ramificações Como pode ser observado, todas as opções são realizadas sobre o módulo ativo. 12 Forms 6i 3.2 Janela de Show Keys Durante a execução de uma tela, é possível visualizar todas as funções acessáveis em um dado momento e a combinação de teclas para invocar a função. Esta janela é chamada de Show Keys, sendo acessada através da combinação [Show Keys], que no Windows corresponde às teclas Ctrl-F1 pressionadas simultaneamente. 3.3 Linha de Status Mostra as seguintes informações: Mod: Nome do módulo ativo. File: Nome do arquivo do módulo ativo. 13 Forms 6i 3.4 Menu File New Criar novo módulo. Open Abrir um módulo já existente. Close Fechar módulo ativo. Save Salvar o módulo ativo. Save As Revert Salvar o módulo ativo com outro nome. Retorna a situação do módulo para a sua última gravação. Connect Conectar à base de dados. Disconnect Desconectar da base de dados. 14 Forms 6i Administration Opções: 1) Compile File Gerar o arquivo executável. 2) Convert Conversão de arquivo binário para texto e vice-versa. Exit Fechar o Builder 15 Forms 6i 3.5 Menu Edit Undo Cut transferência. Desfaz a última operação. Excluir seleção atual e armazenar na área de Copy Armazenar seleção atual na área de transferência. Paste posição do Copiar o conteúdo da área de transferência para a cursor. Clear: Excluir seleção atual. 16 Forms 6i 3.6 Menu Program Sintax Palette Abre uma janela em que pode ser verificada a sintaxe PL/SQL e também as rotinas built-in do Builder. Find and Replace PL/SQL Procura/substituição de um texto no código PL/SQL da tela. PL/SQL Editor Editor PL/SQL para digitação/compilação do código fonte. 17 Forms 6i 4 Desenvolvimento de Forms 4.1 Objetos Componentes de um form Alerta (Alert) São caixas de diálogo compostas de mensagem para o usuário e botões de opções. Bloco (Data Block) Corresponde à tabela do banco de dados. É composto de itens que correspondem às informações da base de dados e outras informações a critério do desenvolvedor. Os blocos podem ser criados de duas maneiras: - Selecionar a ramificação Blocks no Object Navigator e clicar sobre o botão Criar objeto da barra de ferramentas, - Através do menu Tools | Data Block Wizard Canvas É o conjunto de blocos. Um bloco pode estar somente em um Canvas. Cada canvas corresponde a uma tela visualizada ou parte de uma tela. Editor É um editor de texto mostrado como uma janela, utilizado para digitação de textos extensos em campos de tela pequenos. Item É um objeto que armazena um valor. Um bloco pode conter vários itens. Um item está sempre associado a somente um bloco. Podem estar associados também a um atributo em uma tabela da base de dados. Um item podem ser de um dos vários tipos: text item, radio group, check box, botão, lista. 18 Forms 6i Lista de Valores (LOV) É uma lista que pode servir para auxiliar o preenchimento de um item, quando não se sabe qual o valor que vai ser associado a ele. É possível buscar valores de tabelas da base de dados. Exemplo: Lista de valores para o campo ‘Código do cliente’: Parâmetro É uma variável acessível em todo o módulo, e que pode ser atribuído valor no momento da execução do módulo. Record Group Funciona como tabelas que armazenam os resultados de uma consulta ao banco de dados ou valores fixos. Podem ser utilizados para a criação de listas de valores. 19 Forms 6i Relation Funcionam com os blocos da mesma maneira como funciona o relacionamento entre tabelas. Tomando como exemplo, um form composto de 2 blocos: - o bloco PEDIDO representa a tabela de pedidos que está na base de dados, - o bloco ITEM_PEDIDO representa a tabela de pedidos que está na base de dados. O relacionamento entre a tabela de pedidos e a tabela de itens para pedidos é de 1 para n. Sendo assim existe uma foreign key partindo da tabela de itens para a tabela de pedidos. Para criar a sincronia e a integridade entre os dois blocos, tendo em vista que os itens mostrados passem a ser os correspondentes aos do novo pedido, deve ser criada uma relation entre os dois blocos. Caso não seja criada a relation, a funcionalidade dos blocos será independente. Visual Attributes São conjuntos de características visuais (tipo de fonte, cor de frente, cor de fundo, entre outras) que podem ser associados a diversos objetos, criando assim um padrão visual de estilos. Windows É uma janela de visualização que pode conter vários canvas. Seu formato é gerenciado pelo MS-Windows. Program Units e Triggers Program Unit é o código PL/SQL organizado em um procedimento ou função. Trigger é o código PL/SQL associado a um evento. Este evento poderá ser um início de execução, a entrada de um campo, o pressionamento de um botão, entre outros. Bibliotecas (Attached Library) São módulos do tipo PL/SQL library, que tem suas rotinas utilizadas pelo módulo ativo. 20 Forms 6i Quando um módulo utiliza uma rotina de uma biblioteca, esta necessita ser anexada (“attachada”) ao módulo. 4.2 Criando um novo Form No menu File New, escolha a opção Form. Desse modo aparece uma janela para a criação da tela. Pode ser observado que a linha de status mostra o nome do módulo e o arquivo associado ao módulo criado. 21 Forms 6i 4.3 Propriedades do módulo Name módulo). Nome do módulo (usado também para o arquivo do Title execução. Título da janela do form quando estiver em Console Window Nome da window principal do form. Menu Module form. Nome do módulo de menu usado como menu para o 22 Forms 6i Mouse Navigation Limit Determina o local em que o mouse pode navegar. Opções: Form É o default. A navegação está habilitada em todo o Data Block A navegação está habilitada somente dentro do corrente. Record A navegação pode ser feita somente dentro do corrente. Item A navegação só pode ser feita dentro do item form. bloco registro corrente. First Navigation Data Block Nome do bloco onde o cursor será posicionado no momento da execução ou quando for limpo. Por default, o Oracle Forms utiliza o bloco que aparece em primeiro lugar na ramificação Data Blocks. Validation Unit Especifica o momento da validação das informações inseridas pelo usuário da aplicação. Opções: Default Assume a validação default da plataforma (item). Form A validação é feita somente na saída do form. Data Block A validação é feita na saída do bloco. Record A validação é feita da saída do registro. Item A validação é feita na saída do item. Coordinate System Caracter, Sistema de medidas utilizada no forms. Pode ser Ponto, Polegada ou Centímetro. Form Horizontal Toolbar Canvas Canvas do tipo Toolbar que comanda a barra de ferramentas horizontal do form Form Vertital Toolbar Canvas Canvas do tipo Toolbar que comanda a barra de ferramentas vertical do form 23 Forms 6i 4.4 Configurando o canvas Name Nome do canvas. Canvas-View Type Opções: Content Stacked mesma window. É o default. O canvas é mostrado inteiro dentro da window a que pertence. Usado quando existem vários canvas para uma O canvas stacked é mostrado em segundo plano, sendo posto em primeiro plano quando houver navegação para um item dentro do canvas. Vertical Toolbar O canvas é do tipo barra de ferramentas vertical. 24 Forms 6i Horizontal Toolbar O canvas é do tipo barra de ferramentas Tab O canvas é do tipo Guia. horizontal. Visible Informa se o canvas é mostrado na tela. Window Nome da window a que o canvas pertence Width Largura do canvas expresso em unidades definidas na propriedade Coordinate Information do módulo Heigh Altura do canvas Bevel Determina o modo de apresentação do canvas Opções: Lowered Baixo relevo Raised Alto relevo None Normal Visual Atribute Group Nome do atributo visual a ser usado no canvas Foreground Color Cor de frente Background Color Cor de fundo 25 Forms 6i 4.5 Canvas do tipo Guia (Tab Canvas) São canvas que simulam uma pasta, com várias guias. Na figura abaixo é mostrado um canvas do tipo guia que poderia ser usado para o cadastramento de funcionários, com as guias Dados Pessoais, Formação escolar e Qualificações. 26 Forms 6i Propriedades Além das disponíveis para os demais tipos de canvas, existe a propriedade Tab Attachment Edge, que indica a localização das guias de seleção. Top Indica que as guias ficam na parte superior do Bottom Indica que as guias ficam na parte inferior do canvas Left Indica que as guias ficam à esquerda do canvas Rigth Indica que as guias ficam à direita do canvas canvas 4.6 Tab Page É a página associada à determinada guia. Por exemplo, na figura abaixo são mostradas as propriedades da tab page DADOS_PESSOAIS, que está associada à guia Dados Pessoais 27 Forms 6i Propriedades Caso seja desejável saber em que tab pages o usuário se encontra, basta usar a função get_canvas_property( nome_do_canvas, TOPMOST_TAB_PAGE). No exemplo mostrado acima, para saber de o usuário está na página de dados pessoais, usa-se o comando : if get_canvas_property(‘CADAST_FUNC’,TOPMOST_TAB_PAGE) = ‘DADOS_PESSOAIS’ . . . 4.7 Criando blocos para acesso à base de dados 28 Forms 6i Após configurados windows e canvas, o próximo passo para a criação de uma aplicação é a criação dos blocos. Será usado como exemplo, um módulo para a entrada e consulta de pedidos conforme citado no tópico Componentes de um form - Relation. Primeiramente é criado um bloco para a tabela PEDIDO, como mostrado na figura abaixo, escolhendo inicialmente a opção Use the Data Block Wizard e para tipo de bloco, selecionando a opção ‘Table or View’. Botão Browse Serve para buscar lista de tabelas/views existentes. Available Columns bloco. Colunas da tabela/views disponíveis para incluir no Database items Colunas da tabela/view já selecionadas para serem incluídas no bloco. Selecionar a opção ‘Create data block and then call Layout Wizard’ e em seguida selecione o canvas ao qual o bloco irá pertencer. Nessa janela também pode ser criado um novo canvas, como mostrado na figura abaixo. 29 Forms 6i 30 Forms 6i Em seguida deve-se informar quais colunas serão mostradas na tela, conforme mostrado na figura abaixo. 31 Forms 6i Após, é solicitado o Prompt, que é o label que será mostrado ao lado do campo de tela. 32 Forms 6i Em seguida é definido o estilo de apresentação do bloco: Form do campo Mostra um registro por tela, com o label à esquerda Tabular Mostra no formato planilha, com vários registros por tela e o label posicionado acima do campo. 33 Forms 6i Por fim, deve ser informado o título no bloco no campo Frame Title. Records Displayed Quantidade de registros mostrados na tela Display Scrollbar Disponibiliza barra de rolagem para o bloco Após criar o bloco para a tabela PEDIDO, deve-se criar o bloco para a tabela ITEM_PEDIDO. 34 Forms 6i Os passos são os mesmos que na criação do bloco pedido. Como existe uma foreign key na tabela ITEM_PEDIDO apontando para a tabela PEDIDO, o Forms Builder abre a possibilidade de sincronização entre os blocos, ou seja, a possibilidade de criação de uma relation entre os dois blocos. Ao ser pressionado o botão Create Relationship, uma janela com todas as foreign keys serão abertas, a fim de selecionar o join que deseja implementar a sincronização. 35 Forms 6i Após ser selecionada a foreign key é mostrado de que forma será implementada a relation Este bloco deve ser do tipo Tabular, com 10 linhas e deve possuir barra de rolagem. 36 Forms 6i 4.8 Propriedades de um bloco Number of Records Buffered Quantidade máxima de registros armazenados na memória Number of Records Displayed Quantidade de registros mostrados no bloco Database Data Block Informa se as operações efetuadas no bloco serão refletidas em tabela da base de dados Query Allowed Informa se são permitidas operações de consulta (query) Query Data Source Name Nome da tabela, caso Database Data Block tenha o valor Yes 37 Forms 6i WHERE Clause Cláusula a ser utilizada quando for feita uma consulta (query). Vai criar um comando do tipo : SELECT <colunas usadas> from <Base Table> where <WHERE Clause > order by <ORDER BY Clause> Insert Allowed Informa se são permitidas operações de inclusão (insert) Update Allowed Informa se são permitidas operações de alteração (update) Delete Allowed Informa se são permitidas operações de exclusão (delete) Show Scroll Bar Determina a criação de uma barra de rolagem para navegação entre os registros do bloco Scroll Bar Canvas Nome do canvas onde será posicionada a barra de rolagem Normalmente é o mesmo canvas em que os itens do bloco estão posicionados Scroll Bar Tab Page Nome da tab page onde será posicionada a barra de rolagem Normalmente é a mesma tab page em que os itens do bloco estão posicionados Scroll Bar Orientation Determina a direção da barra de rolagem : vertical ou horizontal 38 Forms 6i 4.9 Criando Relacionamentos entre Blocos Uma relação pode ser criada selecionando-se a ramificação Relations do bloco PEDIDO na janela Object Navigator, e clicando no ícone da barra de ferramentas Criar item. Feito esse procedimento a seguinte janela será mostrada: Detail Block Nome do bloco que será o detalhe do relacionamento (o lado n do relacionamento 1 para n). Master Delete Determina o modo como será tratada a deleção de um registro no bloco master. Opções: registros Cascading Permite deletar o registro mestre, deletando automaticamente os registros detalhe associados. Non-Isolated É o default. Não permite deletar o registro mestre se houverem registros detalhe associados. Isolated Permite deletar o registro mestre, sem afetar os detalhe. 39 Forms 6i Coordination Deferred FALSE mostrados. Deferred TRUE e Auto-Query TRUE quando é feita Determina o modo de população do bloco detalhe quando, no bloco mestre é feita uma navegação para outro registro. Opções: Os registros detalhe são imediatamente Os registros detalhe são mostrados somente a navegação para o bloco detalhe. Deferred TRUE e Auto-Query FALSE Os registros detalhe são mostrados após a navegação ter sido feita para o bloco detalhe, e o usuário da aplicação explicitamente executar uma query. Prevent Masterless Operation Com essa opção desligada, determina que podem ser realizadas operações no bloco detalhe quando não houver registro mestre. Join Condition A condição para join dos blocos, ou seja, as colunas componentes da foreign key entre as tabelas. Após a criação da relation, o Oracle Forms cria automaticamente as triggers: On-Clear-Details, On-Check-Delete-Master e On-Populate-Details, 40 Forms 6i assim como as procedures : Check_Package_Failure, Clear_All_Master_Details e Query_Master_Details, como mostra a figura abaixo. 41 Forms 6i 4.10 Manipulando Itens Text Item Um campo de tela comum, que serve para entrada ou consulta de dados. Propriedades: Enabled Determina que o usuário pode usar o mouse para manipular o item Justification Tipo de alinhamento (à esquerda ou à direita) Multi-Line Habilita o item a receber várias linhas de texto, isto é, quando for pressionado <Enter>, não haverá navegação para o próximo item. O que ocorre é a abertura de uma nova linha para digitacão. 42 Forms 6i Wrap Style Determina como uma linha em um item multi-line será mostrada quando for maior que a largura do item. None O conteúdo excedente não é mostrado Character O conteúdo excedente é mostrado na linha seguinte Word O conteúdo excedente é mostrado na linha seguinte, mas não permitite que uma palavra seja “quebrada”, levando a palavra inteira para a próxima linha Case Restriction Determina o modo como o conteúdo do item é mostrado. Opções: Mixed O texto aparece como foi digitado Upper O texto aparece todo em maiúsculas Lower O texto aparece todo em minúsculas Conceal Data para Não mostra caracteres digitados no item. Usado campos de senha. Automatic Skip Determina que o cursor vai automaticamente para o próximo item quando o item for completamente preenchido Keyboard Navigable navegação Determina que o item está habilitado para Datatype Tipo de dado do item (numérico,char,data, etc) Maximum Length Tamanho máximo do valor armazenado Fixed Length novo Determina que o item deve ser totalmente preenchido, ou seja, deve ter sempre o número de caracteres informado em Maximum Length Valor default do item. O item é preenchido automaticamente com o valor quando é criado um registro Required Determina que a digitação do item é obrigatória. Initial Value 43 Forms 6i Format Mask Máscara para visualização Lowest Allowed Value Valor mínimo aceito Highest Allowed Value Valor máximo aceito Copy Value from Item do item novo O item é preenchido automaticamente com o valor indicado nessa propriedade quando é criado um registro Calculation Mode Utilizado para soma calculada a partir de operações de grupo sobre outros itens Summary Function Operação de grupo utilizada Summarized Block Bloco onde está localizado o item informado em Summarized Item Summarized Item Item sobre o qual a operação de grupo será calculada Database Item Associa o item à coluna Column Name e na tabela associada ao bloco Query Allowed Informa se são permitidas operações de consulta (query) Case Insensitive Query Determina que quando for feita uma query pelo item, não será feita distinção entre maiúsculas e minúsculas. Insert Allowed Informa se são permitidas operações de inclusão (insert) Update Allowed Informa se são permitidas operações de alteração (update) Update Only if Null caso o Determina que o valor do item só pode ser alterado seu valor seja NULL. List of Values preenchimento Nome da lista de valores para auxiliar o List X Position Posição da lista em relação à margem esquerda List Y Position Posição da lista em relação ao topo da tela 44 Forms 6i Validate from List utilizada a Determina que quando o campo é validado, seja lista de valores para consistir o valor Editor Nome do editor usado para digitação do item Visible Determina se o item é mostrado na tela Canvas Nome do canvas em que o item está localizado Tab Page Nome da tab page em que o item está localizado X Position Posição do item em relação à margem esquerda Y Position Posição do item em relação ao topo da tela Width Largura do item Height Altura do item Bevel Determina o modo de apresentação do canvas. Opções: Lowered Baixo relevo Raised Alto relevo None Normal Show Vertical Scroll Bar Para itens multi-line, determina que será criada uma barra de rolagem. Visual Atribute Group Nome do atributo visual a ser usado no canvas Foreground Color Cor de frente Background Color Cor de fundo Prompt Label do item Hint Descrição do item mostrada na linha de mensagens. Display Hint Automatically Se contiver o valor FALSE, a descrição do item não aparece na linha de mensagens, sendo acessada somente pela tecla [Help] 45 Forms 6i Tooltip Texto para ser mostrado como dica quando o mouse for posicionado sobre o item 46 Forms 6i Radio Group É um conjunto de radio buttons, ou seja, botões que representam os diversos valores válidos para a coluna TIPO_PAGTO da tabela Pedido, no bloco Pedido. O radio group mostrado é composto dos radio buttons À Vista, À Prazo, Cartão. Possui as mesmas propriedades que os text itens. 47 Forms 6i Propriedades dos radio buttons Label Texto mostrado ao lado do botão Radio Button Value Valor atribuído ao radio group, caso o botão esteja selecionado 48 Forms 6i Check Box É uma caixa que pode assumir somente dois valores, ligado e desligado. No exemplo abaixo, foi utilizado um Check Box para representar a coluna Ja_Entreg no bloco Pedido, que só pode assumir os valores S e N. Essa coluna não existe realmente na tabela. É somente um exemplo. 49 Forms 6i Propriedades Value When Checked ligado. Valor atribuído ao item caso o checkbox esteja Value When Unchecked desligado. Valor atribuído ao item caso o checkbox esteja Check Box Mapping of Other Values Valor assumido pelo item quando um valor diferente de checked e unchecked for utilizado. Not Allowed mostrados. Check No caso de uma query, os registros não são Assume o valor especificado em checked value. 50 Forms 6i Uncheck Assume o valor especificado em unchecked value. Botões É um objeto que dispara um evento, iniciando uma ação, quando é pressionado. No exemplo abaixo, foram utilizados botões para as ações de incluir pedido, confirmar dados, cancelar alterações, sair. 51 Forms 6i Propriedades Label Texto que aparece na superfície do botão Iconic Determina que será mostrado um ícone na superfície do botão. Icon Filename arquivo). Nome do ícone a ser mostrado (não informar extensão do 52 Forms 6i List Item Uma lista de opções para preenchimento do item. No exemplo abaixo, o item TIPO_PAGTO é representado por uma pop-list. A lista aparece quando a seta é clicada. 53 Forms 6i Abaixo é mostrado o mesmo item como uma lista do tipo t-list. 54 Forms 6i Propriedades List Style Tipo de lista. Poderá assumir os seguintes valores : - PopList - Tlist - Cambo Box 55 Forms 6i List Elements: Opções da lista. Selecionada esta propriedade, é mostrado o botão More. Este botão chama a tela de definição de elementos da lista, que é mostrada abaixo. O texto em List Elements é o que aparecerá na tela e List Item Value é o valor atribuído ao item. 56 Forms 6i Lista de Valores (LOV) Propriedades Record Group Nome do record group que busca os valores para a lista de valores Automatic Display Determina que quando o usuário da aplicação navegar para o item que é associado com a lista de valores, a lista será exibida automaticamente Filter Before Display Usada em casos que a lista de valores contém muitos valores, ocasionando problemas de performance. Determina que antes que a lista de valores seja exibida, seja aberta uma caixa de diálogo, onde o usuário da aplicação possa informar um critério para a lista de valores. 57 Forms 6i Desse modo, diminui a quantidade de valores a serem exibidos pela lista, melhorando a performance. Automatic Skip lista, é feita Determina que após a escolha de um dos valores da automaticamente a navegação para o próximo item. Restrições: - As propriedades Displayed e Enable devem estar setadas com TRUE. -Não é disparada a trigger KEY-NEXT-ITEM. Column Mapping Properties Informações para o mapeamento das colunas da lista de valores. No exemplo abaixo, a coluna COD_FORNEC da lista de valores é mapeada para popular o item COD_FORNEC, com tamanho 26, usando com cabeçalho para a lista a palavra ‘Cliente’. Obs.: Se o campo Return Item for deixado em branco, não popula nenhum item da tela. Ao criar uma lista de valores, é necessário criar um record group, sendo abaixo mostradas suas propriedades. 58 Forms 6i Record Group Type Query Determina que uma query recupere os valores do record group. Os valores são buscados no momento da execução. Static Determina que os valores do record group sejam estáticos. Os valores são informados no Designer e não podem ser alterados. Record Group Query record group. Especifica a query que busca os valores para o Column Specification: Especifica o tipo de dado e tamanho das colunas, como mostrado no exemplo abaixo. 59 Forms 6i 60 Forms 6i Editores No exemplo abaixo, é mostrado um editor para o item OBSERVACAO. Criar coluna na tabela PEDIDO para armazenar observação e associar a um item do tipo text item com propriedade multi-line com o valor Yes. Propriedades Title No exemplo foi utilizado ‘Observação’. Bottom Title clique em No exemplo foi utilizado ‘Após digitar a observação OK’. Show Vertical Scroll Bar vertical. Determina a criação de uma barra de rolagem 61 Forms 6i Parâmetros São variáveis especiais criadas com a finalidade de receber valores externos, vindos de um menu ou uma outra tela. Suas propriedades tem a mesmas funções das propriedades dos text items. 62 Forms 6i 4.11 Modificando a Aparência de um Form Ferramentas Layout Editor 63 Forms 6i Barra de Ferramentas Seleção de objetos zoom desenhar retângulo desenhar elipse desenhar polígono desenhar retângulo arredondado etiqueta de texto botão radio button imagem Objeto OLE Área Bean lista árvore hierárquica Stacked canvas rotação rotaciona objetos desenhar linha desenhar arco desenhar figura poli-linha desenho à mão livre frame checkbox text item gráfico Controle ActiveX display item som Canvas do tipo Guia cor de preenchimento cor de linha cor da fonte de letra 64 Forms 6i Manipulando objetos no Layout Editor Alinhamento de objetos Um conjunto de objetos selecionados pode ser alinhado seguindo as opções abaixo. Acessável através do menu Arrange | Allign Objects. Align to Each Other Alinha os objetos em relação a um objeto Grid Alinha os objetos em relação à grade Horizontally None Não alinha horizontalmente Align Left Alinha pelo lado esquerdo do objeto mais à Align Right Alinha pelo lado direito do objeto mais à direita Align Center Alinha o centro de cada objeto pelo centro do Distribute Torna igual o espaçamento entre os objetos Stack Junta os objetos esquerda conjunto Vertically 65 Forms 6i None Não alinha verticalmente Align Top Alinha pela parte de cima do objeto mais perto do topo Align Bottom Alinha pela parte de baixo do objeto mais perto da borda inferior Align Center Alinha o centro de cada objeto pelo centro do conjunto Distribute Torna igual o espaçamento entre os objetos Stack Junta os objetos 66 Forms 6i Dimensionando Objetos Um conjunto de objetos selecionados pode ter um tamanho padronizado, seguindo as opções abaixo. Acessável através do menu Arrange | Size Objects. No Change (Width/Height) Não altera tamanho Smallest (Width/Height) Tamanho do menor objeto Largest (Width/Height) Tamanho do maior objeto Average (Width/Height) Tamanho médio dos objetos Custom (Width/Height) Assume um valor digitado 67 Forms 6i 4.12 Criando atributos visuais nomeados Um conjunto de atributos visuais pode ser criado, facilitando a padronização visual dos objetos. Propriedades Name Nome do atributo visual Font Name Fonte de letras a ser utilizada Foreground Color Cor de frente dos objetos Background Color Cor de fundo dos objetos 68 Forms 6i Fill Patern Padrão de preenchimento do fundo Font Size Tamanho da fonte Font Weigth Espessura da fonte Font Style Estilo da fonte Font Width Largura da fonte 69 Forms 6i 5 Desenvolvimento de Triggers O que são triggers Trigger é o código PL/SQL utilizado para tratamento de um evento ocorrido. 5.1 Criando um Trigger No exemplo, foi criado um trigger para tratar o evento de pressionamento do botão Confirmar dados. Em outro exemplo logo abaixo, é criado o código necessário para que quando o usuário navegar para o item Observacao, seja aberto o editor para digitação. 70 Forms 6i É utilizado o procedimento show_editor, que tem a seguinte sintaxe: show_editor (<nome do editor>, <mensagem de entrada>, <x>, <y>, <mensagem de saída>, <resultado>); <mensagem de entrada> Texto a ser editado. Normalmente, o item a ser populado pelo editor. <x> Coordenada x na tela (a partir da borda esquerda). <y> Coordenada y na tela (a partir da borda superior). <Mensagem de Saída> Item que receberá o texto editado. Normalmente, o item a ser populado pelo editor. <Resultado> Variável que deve ser criada no bloco PL/SQL, sendo do tipo boolean. True Indica que o usuário acessou o editor False Indica que o usuário cancelou o editor. Nesse caso, <mensagem de saída> retorna o valor Nulo. 71 Forms 6i 72 Forms 6i 5.2 Eventos que disparam Triggers Os eventos podem ser separados em 4 grupos: When Ocorre geralmente após uma navegação, ou outra ação do usuário. Ex.: WHEN-VALIDATE-ITEM, WHEN-BUTTON-PRESSED. On dados. Substitui a operação normal do forms em operações na base de Ex.: ON-INSERT, ON-UPDATE, ON-DELETE, ON-COMMIT. Pre Evento disparado antes da ação normal do forms. Ex.: PRE-INSERT, PRE-FORM. Post Evento disparado após a ação normal do forms. Ex.: POS-UPDATE, POS-BLOCK. Key Evento disparado no pressionamento de uma tecla. Ex.: KEY-COMMIT, KEY-F1, KEY-NXTITM, KEY-ENTER. 73 Forms 6i 5.3 Populando dados através de Triggers No form de exemplo, foi criado um item chamado DSC_RAZAO_SOCIAL. Esse item será populado via trigger no item COD_FORNEC. O código do trigger é mostrado abaixo. O evento WHEN-VALIDATE-ITEM é disparado após ter sido alterado o valor de um item e houver uma navegação para fora do item. 74 Forms 6i 5.4 Alterando a funcionalidade do form através de triggers No exemplo abaixo, a funcionalidade do form foi alterada conforme o valor do item TIPO_PAGTO. Quando o valor for 1 (à vista), é desabilitada a navegação ao item OBSERVACAO. 75 Forms 6i 5.5 Triggers disparados por botões Abaixo, é codificado o tratamento do pressionamento do botão ‘Incluir dados’. É utilizado o evento WHEN-BUTTON-PRESSED. 76 Forms 6i 6 Compartilhando Código O Oracle Forms permite o compartilhamento de código PL/SQL entre os módulos. O objetivo do compartilhamento é evitar que códigos PL/SQL sejam criados uma vez para cada módulo. Com isso, ganha-se tempo com o desenvolvimento e manutenção de código utilizados por vários módulos. Os códigos PL/SQL que serão compartilhados são implementados dentro de uma biblioteca, (chamada de Library). 6.1 Criando Functions e Procedures Após ser selecionada a ramificação Program Units no Object Navigator e clicado o botão Criar item na barra de ferramentas, abre-se a janela mostrada abaixo, para especificação do tipo de estrutura de código. Será criada uma function para retornar o tipo do dia da semana. 77 Forms 6i 78 Forms 6i 6.2 Library Após a criação de todas procedures e functions de uma library, ela pode ser utilizada para o compartilhamento de código. A function implementada acima, será usada para popular o form, criado como exemplo, para o tipo do dia da semana da data de emissão do pedido. Será criado um trigger WHEN-VALIDATE-ITEM para o item DATA_EMISSAO, populando o item TIPO_DIA_SEMANA. 79 Forms 6i 6.3 Ligando uma library a um módulo (Attach) Selecionada a ramificação em Attached Libraries, clicar no botão Criar item. Desse modo é mostrado a janela abaixo, onde é informado o nome da library. Após a library ser “atachada”, todos as suas procedures e functions são visíveis ao módulo. 6.4 Chamando uma procedure ou function ligada ao módulo A chamada de uma procedure ou function atachada não apresenta diferença quanto à chamada de procedure ou function criada dentro do módulo. 7 Desenvolvimento de Menus 7.1 Criando um menu Após todos os form’s de uma aplicação serem desenvolvidos, é necessário a criação de um menu para a aplicação. Isto é feito a partir do menu File | New | Menu. 80 Forms 6i Propriedades Startup Code execução do Código PL/SQL que será executado no ínicio da menu Module Roles Lista de roles que têm acesso ao menu Use Security Com esta opção ligada, utiliza a propriedade Module Roles para verificação de privilégio de acesso 81 Forms 6i 7.2 Criando o menu principal Para criar uma lista de opções de um menu principal, é necessário selecionar a ramificação Menus no Object Navigator, e então clicar no botão Criar item. 7.3 Criando opções para o menu Para criar os itens de um menu, deve ser selecionado a ramificação Itens do Object Navigator, e então clicar no botão Criar item. 82 Forms 6i Propriedades Label Texto da opção do menu Menu Item Type Especifica o tipo do item. Opções: Plain Item de opção comum de menu. Check Item de menu que possui um dos dois valores : ligado e desligado. Magic Item que acessa uma das funções padrão de menu do Windows. Ex. Cut, Copy, Past, Quit, Window. Separator Comand Type Linha que separa um menu em duas áreas. Determina o tipo de comando associado ao item e como o Forms Builder vai interpretar o conteúdo da propriedade Command Text. 83 Forms 6i Null Nenhuma ação associada ao item. Para itens do tipo separator é obrigatório que esteja com valor nulo. Menu O item é um submenu do menu. O nome do submenu está na propriedade Menu Item Code PL/SQL Executa um comando PL/SQL que está na propriedade Menu Item Code Display without Privilege Modo como o item é mostrado caso o usuário da aplicação não tenha acesso ao item. Opções: False O item não é mostrado True O item é mostrado como desabilitado (em cinza) 84 Forms 6i Diagrama Entidade Relacionamento p e P # t* * r t e E D e n T E I N D c D r I * * M Q V D U A e t A O M rT e T _ r _ t e _ T R r p e r t e n c e P E D I D O D _ P E D I D O _ U N I T L _ E E P M N E D I D O I I T S ES M * Q T R E G _ T S D O _ r t t S # * * P # * * R O C D D D p O S S U e C C T r D _ _ O t _ P U D # * e P R N E n R O I P c O D T C D e D A O O S r D U D C U T E D _ O Tt O p I U A A L N D D Oe r p e L O S r e e C M T T I e r t C _ E P e O S M R C L I I T C A C A R C A A O O r r _ _ _ t e n c F O R # C *e D p e r t n c e * N * N * C _ D E P T * O D D E P A R o T A MN o N o N o N o N o D * C * T n c M O E I V e L S I e r N E C O D S C _ r U M U M O D S C _ U E MN T U M U M U M O M A T _ O D I P O r P I S S E D _ F R A _ C _ C _ C E N _ OI _ F _ F _ T _ N A _ T _ O O Z G E I D N O A E C S I F 85 A P D E S X L O C P O R R O C N S A R _ N D E E E E X N C _ O R E C S O