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 é:
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:
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:
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
… [Trackback]…
[…] Read More: profissionaloracle.com.br/blogs/litz/2009/07/07/utilizando-imagens-no-forms-6i/ […]…