sexta-feira, 18 de março de 2011

Oracle Forms for Dummies – Part 5

Olharemos os objetos Data Blocks do Object Navigator:
Data Blocks servem para Armazenar informações que posteriormente serão salvas no banco de dados, ou não.
Primeiramente, vamos dar uma olhada nas propriedades principais de um bloco de dados:


• Name: o nome do bloco dentro da sua aplicação.
• Number of Records Displayed: Número de linhas que o seu bloco terá. Se maior que um, seu bloco será um multiline.
• Database Data Block: Propriedade muito importante, pois dirá se seu bloco será baseado em algo do banco de dados ou um bloco controlado pelo aplicativo
• Query allowed: Diz se o bloco irá permitir pesquisa
• Query Data Source Type: Somente será usado se o Database Data Block for ‘YES’. Ele diz se seu bloco será baseado numa tabela, num SQL ou outro objeto de banco de dados.
• Query Data Source Name: Somente será usado se o Database Data Block for ‘YES’. Ele é quem diz o nome da tabela usada pelo bloco, ou o sql que dará origem ao bloco.
• Where Clause: clausula where do seu bloco, se o mesmo for um bloco “base table”.
• Order by Clause: clausula order by do seu bloco, se o mesmo for um bloco “base table”.
• Insert Allowed: Diz se o bloco irá permitir inserção
• UpdateAllowed: Diz se o bloco irá permitir atualização
• Delete Allowed: Diz se o bloco irá permitir deleção
Bom , estes são os principais... Até o próximo...

terça-feira, 28 de dezembro de 2010

Direcionar vários oracle home para um único

Coloque nos arquivos tnsnames.ora dos outros homes a seguinte linha:

ifile = (local do home principal)\tnsnames.ora

onde (local do home principal) é o local onde está o tnsnames que você quer que seja utilizado.

sexta-feira, 26 de novembro de 2010

Oracle Forms for Dummies – Part 4

Iremos agora explorar os objetos Alerts do Object Navigator:

Alerts (Alertas), como o nome diz, servem para mostrar mensagens de alertas com opções de escolha para o usuário.
Primeiramente, para criar o alert, utilize o botão de + do object Navigator como foi feito na criação da trigger. Ele irá criar um objeto do tipo alert. Pressione F4 para mostrar a property palette.
Buenas, das propriedades listadas, as importantes neste caso são as da parte Functional:
• Title: Titulo da janela do alerta
• Message: Mensagem do alerta que será exibida para o usuário
• Alert Style: Estilo do Icone da mensagem do alerta, pode ser Stop, Caution ou Note. (troque elas no seu teste para ver a diferença no ícone)
• Button 1 label: texto do primeiro botão da tela do alerta, você poderá ter no máximo 3 botões de opção para o usuário
• Button 2 label: idem Button 1 label
• Button 3 label: idem Button 1 label (ps: só serão exibidos os botões que tiverem o label informado, portanto, se vc informar apenas o label 1, então seu alert terá apenas um botão)
• Default Alert Button: indica qual dos botões fica como default para o usuário

Para chamar o alert, você precisa criar um código para isso. Por exemplo, criei um item do tipo botão em um bloco e coloquei ele em um canvas, como abaixo: Selecione o botão e pressione f11, para abrir a tela de edição de trigger (iremos criar uma trigger a nível de item chamada When-Button-Pressed, que dispara quando o botão é pressionado)
Escreva na janela de código o seguinte código de exemplo:
Begin
if show_alert('ALERT_SIM_NAO') = ALERT_BUTTON1 then
message('Você pressionou sim!');
message('Você pressionou sim!', no_acknowledge);
else
message('Você pressionou não!');
message('Você pressionou não!', no_acknowledge);
end if;
End;
O show alert irá mostrar o alert que você informou o nome, e irá retornar qual botão o usuário pressionou, ou seja ALERT_BUTTONn, onde n é um número entre 1 a 3.
Rode sua aplicação: Ctrl+R – atalho para rodar a aplicação
OS: Ele vai pedir para você conectar caso ainda não tenha feito, neste momento você pode informar o usuário/senha e database do seu banco de dados
Pressione o botão da sua tela e confira o resultado:

sexta-feira, 30 de abril de 2010

Formatar intervalos de datas

Quem trabalha com Oracle sabe, que se você subtrair dois campos de data, o resultado será um number, como no exemplo abaixo:

SQL> select sysdate-to_date('11/11/2009','dd/mm/rrrr')
2 from dual
3 /

SYSDATE-TO_DATE('11/11/2009','DD/MM/RRRR')
------------------------------------------
170,651424

Mas existe uma função criada a partir da versão 10g do banco, para formatar este resultado em algo que faz mais sentido para o usuário, demonstrada abaixo:

SQL> select NUMTODSINTERVAL(sysdate-to_date('11/11/2009','dd/mm/rrrr'),'day')
2 from dual
3 /

NUMTODSINTERVAL(SYSDATE-TO_DATE('11/11/2009','DD/MM/RRRR'),'DAY')
---------------------------------------------------------------------------
+000000170 15:38:07.999999999

Ou seja, existem 170 dias, 15 horas, 38 minutos e 7 segundos entre os dois intervalos de data.

A função NUMTODSINTERVAL exige o segundo parâmetro, que é a escala que o número está sendo informado, que pode ser day, hour, minute ou second. Teste com vários intervalos e verá os resultados...

quinta-feira, 25 de fevereiro de 2010

Colocar imagem de campo blob no Oracle Reports

Para colocar uma imagem que esteja em um campo blob de uma tabela, selecione este campo no select do reports, e no modo de visualização, no campo procedente, sete a propriedade file format para imagem, como demonstrada no print abaixo:

quarta-feira, 13 de janeiro de 2010

Oracle Forms for Dummies – Part 3

Iremos agora explorar os objetos Trigger do Object Navigator:

Triggers (Gatilhos) servem para executar trechos de código escritos pelo programador quando determinados eventos ocorrem (muito útil). Clicando no botão de adicionar, ele já abre a lista de opções de triggers que podem ser usadas, como se pode ver na figura abaixo:


Assim que você escolher o tipo de trigger, será aberta a janela de edição de código, como na imagem abaixo:


Nesta Janela, você irá digitar o código que deverá ser executado quando o evento originário da trigger acontecer. Lembre-se sempre de escrever no seu bloco PL/SQL um bom tratamento de exceções, com no mínimo as clausulas colocadas neste exemplo.
PS: Se você ainda não sabe PL/SQL, é uma boa hora para aprender antes de continuar lendo este tutorial... :P

As triggers podem ser colocadas em três níveis basicamente:
• Nível de forms: Como as do exemplo acima, disparam quando a ação ocorre a nível de forms
• Nivel de Bloco: Disparam quando a ação ocorre no bloco em que ela está Associada.
• Nivel de campo: Ocorre quando a ação ocorre no campo em que ela está associada.

terça-feira, 29 de dezembro de 2009

Oracle Forms for Dummies – Part 2

Iremos comentar a estrutura hierarquica de uma tela de uma aplicação Oracle Forms:

Basicamente, temos a unidade de programa, que nada mais é que um arquivo fmb(código fonte) e/ou fmx (código executável). Este é o primeiro nível da hierarquia

Logo abaixo, temos as Windows (janelas), que como o nome diz, serão as janelas de sua aplicação.

Exemplo da parte superior de uma window padrão do Oracle Forms

Cada window irá conter um ou mais canvas, que são onde os objetos serão posicionados dentro. Lembra da visão do canvas??? É lá onde irão ficar os objetos.

Dentro da aplicação, teremos também os blocos, que geralmente correspondem a uma tabela do seu modelo de dados (nem sempre é uma tabela, irei explicar melhor quando chegar no item Bloco).

Dentro dos blocos, temos os itens, que correspondem a um objeto que geralmente está relacionado a uma coluna do Banco de Dados


Estes itens do bloco, serão posicionados dentro de um canvas, para dar origem a parte visual da sua aplicação


Resumindo:

Uma aplicação pode ter várias Windows

Uma window pode ter vários canvas

Um canvas pode ter vários itens

Um bloco tem vários itens.