Criando uma aplicação Forms – Parte I
Devido a pedidos, decidi reciclar a minha série de artigos sobre Oracle Developer. Escolhi a versão 6i pelo fato de que o modo client é muito parecido com a das versões anteriores (4.5 e 5.0) em sua essência.
Apesar da tendência em migrar para sistemas baseados na Web, ainda existe um ecossistema gigantesco rodando através das janelas do Forms e Report Builder. Infelizmente, pouco material prático é encontrado sobre como programar nessas versões, portanto, aqui estou eu para ajudá-los nessa tarefa.
Início
Primeiramente, execute o Forms Builder em Oracle Developer Suite>>Forms Developer>>Forms Builder
Eu não vou dar moleza ! Vamos criar uma aplicação do zero,na mão e sem Wizard. Apesar de ser mais trabalhoso, tenho certeza de que assim será mais fácil para fixação do aprendizado.
Criando objetos para aplicação no seu schema
Rode o script abaixo:
create table empresa (
empr_codigo number(03) not null,
empr_razao_social varchar2(500) not null,
empr_nome_fantasia varchar2(500) not null,
empr_cnpj number(14) not null,
empr_insc_estadual varchar2(14) ,
empr_status varchar2(01) not null)
/
alter table empresa add constraint empr_pk primary key(empr_codigo)
/
Essa será a primeira tabela de nossa aplicação. Não se esqueça que este não é um artigo isolado, e sim um de uma série. Todos os que serão escritos posteriormente serão baseados nesse.
Estrutura Básica
Antes de começarmos, devemos entender a estrutura que o Forms utiliza para a criação de uma aplicação. Basicamente podemos dividir em:
CANVAS – É o formulário que conterá os objetos;
WINDOW – É a janela onde o formulário será exibido;
DATA BLOCK – É o bloco onde ficarão os ítens de dados a serem manipulados (Pode estar ou não atrelado a uma tabela do banco de dados);
ITEM – É a menor estrutura de manipulação de dados (Pode estar ou não atrelado a um campo da tabela do banco de dados).
Estes são os 4 ítens básicos para criação de uma aplicação, mas xistem outras partes como TRIGGERS,LOV´S, PROGRAM UNIT,RECORD GROUP,LIBRARIES, etc. Elas serão citadas nos próximos artigos.
CRIANDO A ESTRUTURA
Agora vem o que todos estavam esperando, a criação de uma aplicação. Primeiramente vamos fazer a conexão com o banco de dados, para isso acesse File>>Connect ou pressione CTR+J e a tela de login aparecerá.
MODULES
Vamos iniciar preenchendo as informações básicas do módulo. Para isso clique com o botão direito no módulo e escolha Property Palette, ou simplesmente clique no módulo e pressione F4. Você verá que uma janela com uma série de parâmetros será aberta.
Não vou falar de todos os atributos, apenas das principais para rodarmos a nossa aplicação. Preencha com as infomações em parênteses.
Name (EMPRESA)
É o nome que daremos ao nosso módulo;
Title (Cadastro de Empresas)
É o título do nosso módulo;
Console Window (Deixe o nome default)
É onde definimos o WINDOW principal da aplicação.;
First Navigation Data Block (Quando criarmos o DATA_BLOCK, ele aparecerá na lista)
Ele dá o foco no bloco escolhido. Importante quando se possui vários blocos em uma mesma aplicação.
DATA BLOCKS
Vamos criar o nosso DATA BLOCK, para isso basta dar o duplo clique na opção Data Blocks, que uma janela aparecerá:
Escolha a opção “Build a new data block manually”, pois como eu disse, criaremos tudo MANUALMENTE. Quem quiser testar o Data Block Wizard verá que ele é super prático.
Agora vamos acessar as Properties do bloco. Clique em F4 e preencha de acordo com o definido abaixo:
Em Generals preencha:
Name (BLK_EMPRESA)
Nome do bloco de dados;
Comments (Bloco com as informações da tabela empresa)
Comentários sobre o bloco.
Em Database preencha:
Database Data Block (Yes)
Ao deixá-lo como SIM, o forms interpreta que o bloco está ligado a uma tabela do banco de dados. É o que chamamos de bloco Base Table.
Enforce Primary Key (Yes)
Esta opção faz a validação da chave primária da tabela. Isso é importante para evitar que as validações de registros duplicados sejam feitas no banco de dados, e passem a ser feitas no cliente;
Query Allowed, Insert Allowed, Update Allowed e Delete Allowed (Yes)
Permite que sejam feitas pesquisas, inserções, alterações e exclusões respectivamente no banco de dados através do bloco, mas apenas na tabela que está atrelada ao mesmo.
Query Data Source Name (EMPRESA)
Aqui você especificará o nome da tabela do banco de dados que estará atrelada ao bloco.
Nota: Quando temos uma tabela atrelada ao bloco, o forms a utiliza acessando diretamente o banco de dados. Toda vez que um registro é exibido no formulário a linha correspondente na tabela sofre um row lock.
ITEM
Agora vamos definir todos os ítens do bloco. Como o nosso bloco é base table, vamos criar as colunas da tabela EMPRESA. Para isso dê um duplo clique em Items.
Em General preencha:
Name (CODIGO)
Nome do campo. Não necessariamente o mesmo nome da coluna na tabela.
Em Data preencha:
Data Type (Number)
É o tipo de dado que o ítem receberá;
Maximum Lenght (3)
Tamanho máximo do ítem. De preferência deve ser do mesmo tamanho da coluna referente na tabela;
Required (Yes)
Faz com que o ítem seja de preenchimento obrigatório para gravação.
Em Database preencha:
Database Item (Yes)
Diz que este ítem é ligado a coluna de uma tabela no banco de dados;
Column Name (EMPR_CODIGO)
Nome da coluna na tabela. Lembre-se que a tabela foi definida no bloco;
Primary Key (Yes)
Se o ítem for referenciado a uma coluna primary key, deve ser sempre setado como SIM;
Update e Insert Allowed (Yes)
Permite a alteração de dados deste campo e também que um novo registro seja criado quando o foco estiver neste ítem em específico.
Faça este mesmo procedimento para o restante das colunas.
CANVAS
Agora é hora de criar o formulário onde os ítens serão exibidos. Para isso dê um duplo clique em Canvases. Ao criar o CANVAS, clique em F4 para abrir as propriedades.
Em General preencha:
Name (CNV_EMPRESAS)
Nome do formulário;
Em Functional preencha:
Window (Deixe a WINDOW default)
Nome da WINDOW a qual o CANVAS está atrelado.
Width (540)
Comprimento do Canvas;
Heigth (324)
Altura do Canvas.
WINDOW
Vamos aproveitar a WINDOW default e utilizá-la. Clique nela e pressione F4 para acessar as propriedades da janela.
Em General preencha:
Name (WDW_EMPRESA)
Nome da janela.
Em Functional preencha:
Title (Cadastro de Empresas)
Título da janela;
Primary Canvas (CNV_EMPRESAS)
Nome do CANVAS principal;
CRIANDO A APLICAÇÃO
Com o CANVAS, DATA BLOCK, ITEM e WINDOW criados, agora é hora de montarmos este quebra cabeça.
Primeiramente vamos colocar os ítens do DATA BLOCK dentro do formulário. Para isso acesse a propriedade do ITEM e em Physical preencha o parâmetro Canvas com o nome do CANVAS principal.
Aí você pensa “Tenho que fazer isso um por um…”. Claro que não !
Basta apenas segurar a tecla Shift e selecionar todos os itens que estarão no mesmo formulário e depois clicar em F4 e alterar o parâmetros. Fácil não ?
Agora dê um duplo clique no seu formulário (CNV_EMPRESAS) e veja que todos os campos estão lá, só que um em cima do outro.
Posicione-os de acordo no layout, e agora vamos criar uma descrição para cada um. Observe que no lado esquerdo há uma toolbar, clique na opção Text que é representado por um “A” e escreva o título dos ítens.
Dica: Quando for utilizar várias vezes uma mesma opção da Tool, dê um duplo clique e ela ficará ativa para a criação de vários objetos. Para liberá-la, basta clicar mais uma vez.
Pronto !!! Agora que está pronto, clique em CTRL+R para executar o Forms !!!
Não rodou…ops !!! Esquecemos de algo….Esquecemos de ativar o OC4J ! Mas o que é OC4J ?
Ele é container para implementação J2EE da Oracle e acompanha:
- Web Container;
- JMS Server;
- Enterprise Java Bean Container.
Como uma aplicação baseada em Web e JAVA, o Forms necessita de um container para ser executado. Execute o OC4J através do caminho abaixo:
O resultado deverá ser este:
Agora voltemos novamente ao Forms build, e executemos a aplicação usando CTRL+R.
O browser irá se abrir e solicitará a permissão para instalar um controle Active X, faça a liberação e será instalado o JInitiator. Mas o que é JInitiator ?
Ele é uma JVM feita pela Oracle que permite que aplicações Forms rodem na Web através de um applet. Faça a instalação.
Após ela ser completada….
Congratulações !!! A sua aplicação Forms está pronta !
Por enquanto é isso pessoal, no próximo artigo exploraremos mais opções do forms para criação de uma aplicação mais elaborada.
Dúvidas podem ser enviadas para willians@profissionaloracle.com.br
Abraço