Oracle Forms
Oracle Forms é um ambiente de desenvolvimento de aplicativos da Oracle Corporation que permite a criação de aplicativos de interface de usuário para o sistema de gerenciamento de banco de dados Oracle. Ele fornece uma plataforma para a criação de aplicativos de banco de dados com interface gráfica do usuário (GUI) e suporte a vários tipos de plataformas, incluindo Windows, Linux e Mac.
O Oracle Forms permite aos desenvolvedores criar aplicativos que podem se conectar ao banco de dados Oracle e realizar tarefas como inserir, atualizar e excluir dados, bem como executar consultas e processar transações. Ele também oferece uma série de ferramentas de desenvolvimento, como um editor de formulários visual, um editor de relatórios e um depurador, para ajudar os desenvolvedores a criar e testar os aplicativos rapidamente.
O Oracle Forms é amplamente utilizado em aplicativos de banco de dados empresariais, como sistemas de gerenciamento de recursos humanos, sistemas de gerenciamento de finanças e sistemas de gerenciamento de vendas e marketing. Ele também pode ser usado para criar aplicativos de desktop ou aplicativos web que se conectam ao banco de dados Oracle.
O objetivo principal do tutorial é dar uma visão geral do desenvolvimento utilizando o Oracle Forms Developer, com foco em exemplos práticos e tentando ser o mais didático possível. A medida do possível serão incluídos pequenos arquivos (fmb) com exemplos de utilização, servindo inclusive como repositório de soluções.
Selecionando Multiplos Arquivos utilizando WEBUTIL
O método Webutil_File.FILE_MULTI_SELECTION_DIALOG() é uma função da biblioteca Webutil que exibe uma caixa de diálogo para seleção de arquivos múltiplos. Você pode usá-lo em seu formulário Oracle Forms para permitir que o usuário selecione vários arquivos para upload.
Para usar o Webutil_File.FILE_MULTI_SELECTION_DIALOG(), siga os seguintes passos:
Certifique-se de que a biblioteca Webutil está adicionada ao seu formulário Oracle Forms. Você pode adicionar a biblioteca clicando em "Bibliotecas" na barra de ferramentas do Oracle Forms Builder e selecionando "Webutil" na lista de bibliotecas disponíveis.
Declare uma variável do tipo Webutil_File.FILE_LIST , que é uma tabela PL/SQL ( array) para armazenar o(s) caminho(s) dos arquivos selecionados pelo usuário.
Chame a função Webutil_File.FILE_MULTI_SELECTION_DIALOG(), essa função possui alguns parâmetros, como diretório inicial, filtro, título da janela, etc.
OBS : Webutil_File.FILE_LIST é um tipo do WEBUTIL que na verdade se comporta como uma tabela PL/SQL ( array ), que pode ser acessado utilizando procedimentos padrões. É possível contar quando elementos existem utilizando o COUNT e retornar o elemento utilizando a posição do elemento dentro da lista.
Exemplo:
DECLARE
v_files Webutil_File.FILE_LIST;
BEGIN
--v_files := Webutil_File.FILE_MULTI_SELECTION_DIALOG();
--v_files := webutil_file.file_multi_selection_dialog ('c:\',NULL,'All Files|*.*|Gif Files|*.gif|JPEG Files|*.jpg|','Selecione os Arquivos');
v_files := webutil_file.file_multi_selection_dialog ('c:\',NULL,'CSV Files|*.csv','Selecione os Arquivos');
for i in 1..v_files.count loop
:BL_TESTES_001.TI_LISTA := :BL_TESTES_001.TI_LISTA || v_files(i) ||chr(13)||chr(10);
end loop;
END;
Recuperar nome do forms que chamou form atual - Nome do form, nao do arquivo
DECLARE
v_form_origem varchar2(20);
BEGIN
v_form_origem := GET_APPLICATION_PROPERTY(CALLING_FORM);
END;
Incluir itens de Lista de Valores
Control+Shift+>
Excluir itens de Lista de Valores
Control+Shift+<
Controle Exibicao de Itens
-- Mostra / Esconde itens
set_item_property('NOMEITEM',visible,property_true); -- Mostra
set_item_property('NOMEITEM',visible,property_false); -- Esconde
-- Habilita / Desabilita itens
set_item_property('NOMEITEM',enabled,property_true); -- Habilita
set_item_property('NOMEITEM',enabled,property_false); -- Desabilita
Dica 1:
Não é possível esconder/desabilitar itens que estejam em foco, nesse caso , mudar foco para outro item via GO_ITEM quando possível
Dica 2:
Ao esconder e voltar a mostrar um item , o mesmo fica desabilitado, para corrigir, setar outras propriedades
set_item_property('NOMEITEM',visible,property_true); -- Mostra
set_item_property('NOMEITEM',enabled,property_true); -- Habilita
set_item_property('NOMEITEM',navigable,property_true); -- Navegavel
Controle Timers
-- Criando Timer. Pode ser criado em qualquer trecho de plsql. Triggers/Program Units
DECLARE
timer_id Timer;
tempo_timer NUMBER(5) := 5000; -- 5 segundos ( tempo em milisegundos )
BEGIN
timer_id := Find_Timer( 'NOMETIMER' );
IF NOT Id_Null(timer_id) THEN
Delete_Timer(timer_id);
END IF;
timer_id := CREATE_TIMER('NOMETIMER', tempo_timer,REPEAT);
END;
-- Trigger para tratar timer
WHEN-TIMER-EXPIRED
DECLARE
expired_timer CHAR(30);
BEGIN
expired_timer := GET_APPLICATION_PROPERTY(TIMER_NAME);
if rtrim(ltrim(upper(expired_timer))) = 'NOMETIMER' then
--
--
end if;
END;
Sintaxe :
CREATE_TIMER(timer_name VARCHAR2, milliseconds NUMBER, iterate NUMBER);
timer_name : Nome do Timer
milliseconds : Especifica a duração do Timer em milisegundos.
Limites : 1 to 2147483648. Valores maiores que 2147483648 serão "arredondados" para 2147483648
Somente númros positivos
iterate : Especifica se o cronômetro deve repetir ou não após a expiração e usa as seguintes constantes como argumentos:
REPEAT : Indica que o timer deve repetir a cada expiração do tempo. Default.
NO_REPEAT Indica que o timer somente irá disparar uma única vez quando da expiração do tempo.
Controle de abas
-- Exemplo WHEN-TAB-PAGE-CHANGED
DECLARE
-- Recupera nome da aba ativa
NM_ABA VARCHAR2(30) := GET_CANVAS_PROPERTY('NOMEDAPASTA',TOPMOST_TAB_PAGE);
BEGIN
IF NM_ABA = 'NOMEABA1' THEN
---
---
ELSIF NM_ABA = 'NOMEABA2' THEN
---
---
END IF;
END;
-- Esconde / Mostra aba
SET_TAB_PAGE_PROPERTY('PASTAS.ABA',VISIBLE,PROPERTY_TRUE); -- Mostra Aba
SET_TAB_PAGE_PROPERTY('PASTAS.ABA',VISIBLE,PROPERTY_FALSE); -- Esconde Aba