Pular para o conteúdo

Utilizando imagens no Forms 6i

Utilizando imagens no Forms 6i

Olá Pessoal,

Este é meu primeiro artigo e vamos iniciar exemplificando como manipular imagens no Oracle Forms. Para isso, utilizaremos a procedure READ_IMAGE_FILE, nativa do forms.

Sua definição é:

PLSQL
Sintaxe

PROCEDURE READ_IMAGE_FILE (file_name VARCHAR2,file_type VARCHAR2,item_id ITEM);

PROCEDURE READ_IMAGE_FILE (file_name VARCHAR2,file_type VARCHAR2,item_name VARCHAR2);

Parâmetros

file_name Nome do arquivo de imagem, se passado apenas o nome irá buscar o caminho default da Path, também é possível passar o caminho completo.
file_type Tipo do arquivo: BMP, CALS, GIF, JFIF, JPG, PICT, RAS, TIFF, ou TPIC.
item_id Id do item que irá receber um a imagem.
item_name Nome do item que irá receber a imagem.

Bom, vamos aos passos para a construção do form.

1 – Vamos criar um data block, não base table (aquele que não referencia a estrutura de um objeto do banco de dados) com nome de IMAGEM.

2 – Entre na propriedade do data block, altere o valor da opção DATABASE DATA BLOCK para NO. Afinal, este bloco não precisa acessar o banco de dados.

3 – Neste data block, criaremos dois campos.

São eles:

IMAGEM do tipo Image

CAMINHO do tipo TEXT ITEM

4 – Devemos criar um canvas chamado Imagem.

5 – Depois de criado, alterar os campos para que ficam dentro dele.

Para isso entre na propriedade do campo, e na opção canvas escolha IMAGEM.
Faça isso para os dois campos.

6 – Após isso entre no Layout Editor [F2] e posicione os campos da melhor forma

7 – Agora, vamos criar um procedure com o nome de LEIMAGEM.

Com o conteúdo:

PLSQL
PROCEDURE leImagem(p_imagem varchar2) IS

 button_pressed number;
alerta Alert;

begin

:SYSTEM.MESSAGE_LEVEL := 25;

IF(:IMAGEM.CAMINHO IS NOT NULL)THEN

READ_IMAGE_FILE(p_imagem,'BMP','IMAGEM.IMAGEM');

END IF;

IF NOT FORM_SUCCESS THEN
alerta := find_alert('ERRO');
button_pressed := SHOW_ALERT(alerta);
END IF;

:SYSTEM.MESSAGE_LEVEL := 0;

 END;

Esta deverá ser chamada quando houver uma alteração no campo CAMINHO, vamos colocar no WHEN-VALIDATE-ITEM a chamada para esta procedure. Optei de criar nesta trigger pois é apenas quando mudar o conteúdo deste campo que a imagem será recarregada.

8 – Vamos criar a trigger WHEN-VALIDATE-ITEM no campo CAMINHO com conteúdo:

PLSQL
declare

begin
leImagem(p_imagem => :IMAGEM.CAMINHO);
end;

É legal observar que o Oracle possibilita dois tipos de passagem de parâmetros, são eles:

• O habitual posicional onde os parâmetros são passados na mesma seqüência que declarados.

Exemplo: leImagem(:IMAGEM.CAMINHO);.

• E o referenciado onde os parâmetros são passados com a referencia identificada.

Exemplo: leImagem(p_imagem => :IMAGEM.CAMINHO);.

9 – Agora vamos criar um alerta para tratar a exceção, pois é possível que o usuário digite um caminho que não há uma imagem.

Vamos mudar algumas propriedades:

10 – No alert ERRO:

Title: Erro ao Encontrar a Imagem
Message: Imagem não encontrada!

Deixe a propriedade Button 2 Label em branco, utilizaremos apenas o botão OK no alert.

11 – Na Window WINDOW1:

Title: Imagem

No campo CAMINHO:

Maximum Length: 120

12 – Compile todo o form [Ctrl + Shift + K].

13 – Execute o forms [Ctrl + R] e se divirta.

Visão inicial do programa ao ser executado.

Visão do programa com a imagem encontrada.

Visão do programa com a imagem não encontrada.

Assim, concluímos nosso programinha, viram como é simples trabalhar com imagens no Forms?

Abraços

Leonardo Litz

Leonardo Litz

É formado em Análise de Sistemas pela Uniban. Possui 9 anos de experiência em análise, implementação e desenvolvimento de softwares com Oracle Forms/Reports, PL/SQL. Também possui experiência de 5 anos em WebTool Kit, HTML, JavaScript, XML, CSS e APEX, além de conhecimentos em JAVA e Delphi. Possui certificação Oracle Advanced PL/SQL Developer Certified Professional 11g. Em sua experiência profissional teve a oportunidade de participar de diversos projetos, dos quais pode-se destacar migrações de sistemas de arquivos indexados em Cobol para banco de dados Oracle; tunning em camada de aplicações e camada de banco de dados; administração de banco de dados Oracle 9i e 10g; modelagem relacional de dados utilizando Erwin; migração do Forms 6i para Forms IAS 10g; levantamento, análise e desenvolvimento de software em Delphi com Oracle, Oracle WebTool Kit e APEX 4.0.1. Atualmente trabalha em uma empresa petroquimica, na qual atua como Desenvolvedor Oracle EBS (OA 11.5.10), desenvolvendo customizações para todos os módulos, nos padrões e recursos do ERP, utilizando PL/Sql, Forms 6i, Reports 6i, Discover, WorkFlow e APEX.

Comentário(s) da Comunidade

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress