Anda di halaman 1dari 102

Oracle Developer Tutorial

Bases de dados Neste tutorial usando o Oracle Developer para prticas que
conduzem sero explicados 2. Oracle Developer uma ferramenta visual para
facilitar a criao de aplicativos que funcionam na base de dados Oracle.
Dentro Oracle Developer, principalmente nos distinguir duas partes:

1. Forms Developer : nos permitir construir formas com as quais podemos


acessar o banco de dados. Nestas formas podemos fazer consultas, modificaes,
inseres e delees de itens de banco de dados.
2. Relatrios de Desenvolvedor : nos permitir construir relatrios que
arquivamos e imprimir dados de uma forma ordenada e com um formato
visualmente agradvel.

Neste tutorial pargrafos seguintes destacam-se:

Instalao : Esta seocomoinstalar o banco de dados Oracle e / ou Oracle


ferramenta de desenvolvedor no nosso computador pessoal. Isso no
necessrio porque as prticas podem ser realizadas dentro das prticas partio
usando ORAG , mas pode ser til para uma melhor compreenso das
ferramentas ou para organizarforma personalizada.
Forms Developer Tutorial : Neste tutorial veremos comocriar diferentes tipos
de formas e com diferentes opes
Relatrios desenvolvedor Tutorial : Neste tutorial veremos comocriar
diferentes tipos de relatrios e comoconectarcom formulrios criados com o
Forms Developer.
FAQ : Jogo de perguntas com suas perguntas respostas que muitas vezes
aparecem com freqncia no uso de Oracle Developer.

Se voc quer para ampliar o seu conhecimento sobre o uso de Oracle Developer pode
consultar o tutorial Farm The Brave Piglet , que tem sido utilizado em anos
anteriores e seo de perguntas freqentes .
Base de dados

Neste tutorial que vai continuar com o exemplo da Escola de Estudos


Avanados com foco em uma parte dele. Diagrama Entidade / Relacionamento que
so deixados com a seguinte parte para ilustrar o uso de Oracle Developer:
A partir do qual obtemos as seguintes tabelas:

Pessoa : PID , nome, apellido1, Surname2, endereo, cp, cidade, provncia,


telefone, email, lugarNacimiento, data de nascimento, NIF, sexo, nacionalidade
Estudante : PID , login, senha, familiaNumerosa, centroProcedencia, acesso,
notaAcceso
Professor : PID , login, senha, categoria, FechaAlta, departamento, escritrio,
telefonoDpcho
Matrcula : IDMatricula , IDAlumno, tipo, numeroPlazos, fechaExpedicion,
claro, PID
Pagamento : PaymentId , valor pago, DataPagamento, IDMatricula
Assunto : nome , creditosTeoricos, creditosPracticos, tipo, trimestre
DetalleMatricula : IDMatricula, nome

Para o projeto fsico do banco de dados, temos trs arquivos:

CreaBD.sql : Arquivo contendo o conjunto necessrio para criar as instrues


SQL banco de dados.
DatosBD.sql : arquivo contendo o conjunto de instrues SQL que inicializar o
banco de dados com alguns exemplo tuplas.
BorraBD.sql : arquivo contendo o conjunto de instrues SQL que excluir o
banco de dados.

Agradecimentos

Eu gostaria de agradecer a Juan Miguel Medina Rodrguez e Mara Amparo Vila


Miranda concluso do tutorial Farm The Brave Piglet e Fernando Berzal Galiano
por seu exemplo da Escola de Estudos Avanados .

instalao

introduo

Nesta parte do tutorial ir explicar como instalar o Oracle 9i Personal Edition e


Oracle Developer 6i (Forms Developer e Reports Developer) ter essas ferramentas
disponveis em nosso computador pessoal.
Em princpio, voc no precisa de instalar qualquer software no PC, porque as
prticas so definidos e cronometrado para implementao nas instalaes do ETSII
No entanto, os estudantes que desejam aprofundar seus conhecimentos dessas
ferramentas ou organizar o seu trabalho personalizado, eles podem ter livre acesso a
elas para fins de ensino.
Instalao 1 Opes
Primeiro temos de decidir que tipo de sistema que queremos fazer, por isso temos
diferentes possibilidades:

1. Instale apenas desenvolvedor Oracle e servidor Oracle para acessar o ETSII Para
fazer isso vamos precisar de uma conexo com a Internet. Isto recomendado
para computadores com opo de baixo poder / memria, mas tm uma ligao
Internet
2. Instalar o Oracle 9i Personal Edition e Oracle Developer 6i, portanto, no
precisamos fazer uma conexo e prticas do espectculo no depender de
qualquer tempo de inatividade de rede ou servidor. Tenha em mente que seria
desejvel ter uma mquina com pelo menos 256 MB ou 512 MB de RAM, 1
GHz de velocidade do microprocessador e um 8GB de espao livre no disco
rgido.
3. Se temos algum poderoso computador (menos de 1 GHz) ou memria baixa
(menos de 256 Mb) e sem conexo Internet, podemos optar por instalar outras
verses do Oracle, pois ir consultar o Guia de instalao do Oracle utilizado em
anos anteriores .

Dessa forma, se voc deseja para instalar os dados de Desenvolvedor da Oracle e


Oracle ter que seguir todos os passos deste tutorial, exceto talvez a ltima ( 7 ), que
serve para usar o servidor de banco de dados da escola (se disponvel conexo com a
Internet seria interessante que tanto o servidor de banco de dados local como a
escola) devem ser testados.
Se voc tiver uma conexo Internet e s quer para resolver baixo e usar o Oracle
Database Developer da escola tem que executar as etapas 3 , 4 e 7 .
2 Instalar o Oracle Database 9i Personal Edition

As instrues dadas foram testados usando o Windows XP SP2 verso do sistema


operacional de 32 bits.
Primeiro temos que verificar no Painel de Controle (conexes de rede SUBPARTE)
que tiver instalado o protocolo TCP / IP (se acessar a Internet e t-lo instalado)
Para evitar problemas so aconselhados a seguir um por um os passos
escrupulosamente, estes passos so:

Desafogar Oracle9i lanamento de banco de dados 2 Enterprise / Standard /


Personal Edition para Windows NT / 2000 / XP do site da Oracle. Observe que,
para isso, devemos aceitar os termos da licena e ser descarregada anteriormente
no site da Oracle .
Criamos trs diretrios nomeados Disk1 , Disk2 e Disk3 e baixado trs arquivos
l no site:
o 92010NT_Disk1.zip (612,802,971 bytes)
o 92010NT_Disk2.zip (537,604,934 bytes)
o 92010NT_Disk3.zip (254,458,106 bytes)

cada armazenamento de arquivos no diretrio correspondente.

Descompactar cada arquivo baixado para cada um dos diretrios. Dentro Disk1 ,
execute Setup.exe . Boto Congratulamo-nos com tela aparecer,
pressione Seguinte
Ns tela Local de origem Arquivos e destino aparece, ele no aconselhvel
para mudar nada, deixando -nos com o padro (c: \ oracle \ ora92 \) e se
ns mudado por qualquer motivo (por exemplo, falta de espao) teremos em
respondem ao interpretar o tutorial. Clique sobre o boto Avanar
Mais tarde, ele mostra o tipo de instalao tela de seleo, ns escolhemos
Personal Edition e pressione o boto Avanar
Pedimos o tipo de banco de dados de configurao como o uso que damos,
escolha Geral Use e pressione o boto Avanar
Pedimos para o porto para ser utilizado pela Oracle MTS servio de
recuperao, deixamos o padro ( 2030 ) e pressione o boto Avanar
Mais tarde iremos perguntar o nome do banco de dados global e SID (Oracle
System Identifier), que utiliza os valores mostrados na imagem
( progBD2.localhost e progBD2 ) e pressione o boto Avanar .
Pedimos para a localizao dos arquivos de dados, deixe o padro e pressione o
boto Avanar
Permite-nos a mudar o carter, usaremos o conjunto de caracteres padro e
pressione o boto Avanar
Finalmente nos um pouco resumo das opes de instalao aparecer, clique no
boto Instalar
Depois de um tempo perguntamos se estabelecer e configurar senhas de
superusurios do banco de dados ( SYS e SYSTEM ). Note-se que estas senhas
no deve esquecer -los . Podemos usar o mesmo para ambos os superusurios.
Se no foram quaisquer problemas que tela de instalao Completa aparece,
clique no boto Exit
3 Instalao desenvolvedor Oracle Forms

Ns desafogar Oracle Forms Developer / Servios 6i Release 2 para Windows 98


/ NT / 2000 / XP do site da Oracle. Observe que, para isso, devemos aceitar os
termos do contrato e ser descarregada previamente no site da Oracle (Para aqueles
que querem a verso Linux ser baixado do Oracle Forms Developer / Servios 6i
Release 2 para Linux . ou experimentar com as ltimas verses de formulrios e
relatrios do Oracle Application Server. ).
Uma vez baixado, voc tem um arquivo compactado chamado 6i_rel2_xp.zip (se
voc no tiver alterado o nome para baixar). I descompacte e execute setup.exe. Ns
siga estes passos:

A primeira coisa que aparece para ns uma janela para introduzir alguma
instalao definies, tomamos os mesmos valores como na imagem e dar Ok .
Pedimos que ferramenta de instalao, selecione Oracle Developer Forms e dar
o boto OK / OK .

Quando perguntado sobre o tipo de instalao que voc escolha tpica


Quando perguntado se voc deseja para instalar o Forms Server, selecione No

Damos OK um par de vezes e j instalou o Oracle Developer Forms.

4 Instalao Oracle Reports desenvolvedor

Usando o mesmo arquivo Setup.exe obtidos a partir de descompactar o


arquivo 6i_rel2_xp.zip tambm pode instalar o Oracle Reports Desenvolvedores

A primeira coisa que aparece para ns uma janela para introduzir algumas
definies de instalao do Oracle, tomamos os mesmos valores como na
imagem e dar Ok .
Pedimos que as ferramentas para instalar, selecione "A Oracle Reports
Desenvolvimento" e dar o boto OK.

Quando perguntado sobre o tipo de instalao que voc escolha tpica


Quando perguntado se voc deseja para instalar Reports Server, selecione No

Damos OK um par de vezes e j tiver instalado Oracle Reports Developer.

5 Criando usurios

Vamos criar um usurio sem privilgios para trabalhar sem complicaes em nosso
banco de dados, para este usar a ferramenta SQL Plus, que pode ser encontrada no
grupo de programas da Oracle-OraHome92 na Aplicao Desenvolvimento-> SQL
Plus
Pedimos para identificar a ns mesmos, como a raiz do sistema ea senha que voc
deu durante a instalao. Pressione o boto OK .

Uma vez identificado em SQL Plus ir criar um usurio, recomendvel que a conta
de usurio tem o mesmo nome que voc tem na Escola BD e trabalhar sobre ela. Isso
pode ser feito com as seguintes afirmaes:
criar usurio <ALUMNO> IDENTIFICADOS PELO <senha>
padro
tablespace usurios tabela temporrio contingente
temperatura 4M em
usurios 1M em temperatura contingente;
conceder connect, recurso para <x9999999>;
Por exemplo:
Se tudo correr bem ele vai nos dizer que o primeiro usurio foi criado e que a
concesso foi encerrada corretamente.
6 Conexo Developer com Oracle Database instalado no seu
computador

Para acessar o servidor Oracle faremos por adio de um nome de servio (ou alias)
para este aplicativo usando o Oracle Net8 Easy Config , que pode ser encontrada no
grupo de programas Oracle para Windows NT-desenvolvedor

Os passos a seguir so:

Adicionar um novo servio, por exemplo, voc pode ligar para casa e ao lado
premente

O protocolo utilizado TCP / IP (Protocolo Internet) .


O nome do host localhost e o nmero da porta 1521 (o padro, sem
alterao)

O identificador do sistema (SID Banco de Dados) que ns introduzimos na


instalao, ou seja, PROGBD2

E precisamos apenas provar que a conexo funciona perfeitamente, vamos usar o


usurio recm-criado
Assim, para se conectar ao banco de dados (com diferentes ferramentas Developer),
voc vai precisar do usurio criado, a senha ea cadeia de ligao colocar o alias
criado (neste exemplo, casa ). Por exemplo, usando SQL Plus verso que vem com o
desenvolvedor e voc pode encontrar o grupo de programas Oracle para Windows
NT-desenvolvedor ter que colocar como uma seqncia de conexo, por exemplo:
Talvez algum firewall (firewall) nos problemas usando a porta 1521, se for esse o
caso, devem ser autorizados a usar essa porta no firewall.
7 Conexo com o Oracle Database Developer ETSII

Para acessar o servidor Oracle faremos por adio de um nome de servio (ou alias)
para este aplicativo usando o Oracle Net8 Easy Config , que pode ser encontrada no
grupo de programas Oracle para Windows NT-desenvolvedor

Os passos a seguir so:

Adicionar um novo servio, por exemplo, voc pode chamar UGR e prximo
pressionando
O protocolo utilizado TCP / IP (Protocolo Internet) .

O nome do host ser oracle0.ugr.es . Ele seria aconselhvel para verificar antes
voc pode acessar esse servidor, pois a partir do MS-DOS (prompt de comando)
poned "ping oracle0.ugr.es" se nenhuma resposta provvel que tenha cado o
servidor.
O nmero da porta 1521 (o padro, sem alterao)

O identificador do sistema (SID Banco de Dados) PRACTBD


E ns s precisa provar que a conexo funciona perfeitamente, vamos usar o
nosso nome de usurio e senha que temos na base de dados ETSII

Assim, para se conectar ao banco de dados (com diferentes ferramentas Developer),


voc vai precisar do usurio para a escola, sua senha e a seqncia de conexo
colocar o alias criado (neste exemplo, UGR ). Por exemplo, usando SQL Plus verso
que vem com o desenvolvedor e voc pode encontrar o grupo de programas Oracle
para Windows NT-desenvolvedor ter que colocar como uma seqncia de conexo,
por exemplo:
Talvez algum firewall (firewall) nos problemas usando a porta 1521, se for esse o
caso, devem ser autorizados a usar essa porta no firewall.
oracle Forms

Pessoas Formulrio 1-alunos


Vamos fazer uma primeira forma que nos permite introduzir novos alunos no banco
de dados, alm de visualizar, editar e excluir os existentes. Para fazer isso vai levar
uma srie de passos:

1. Criar a pessoa bloco de dados mostrando uma nica pessoa


2. Criar bloco detalhada associada com cada aluno

1.1 Bloco Pessoa Mestre


Run Form Builder , que a ferramenta para construir formas

A primeira coisa que vai ser uma tela de boas-vindas com vrias opes, vamos optar
por utilizar o assistente de blocos de dados e dar o boto OK.

Temos outro bem-vindo, ignor-lo e clique no boto Avanar, onde pedimos o nosso
tipo de bloco de dados, usamos sempre tabela ou exibio, pressione Avanar
Pedimos agora a tabela ou exibio que deseja usar, para selecionar dar o boto
procurar, neste momento, vamos pedir-nos para se conectar ao banco de dados,

Para fazer isso colocar o nosso nome de usurio, senha e banco de dados de alias que criamos
na fase de instalao ( casa ao banco de dados local, UGR para a escola banco de dados e se
estamos nas prticas de sala de aula deixamos em branco). Por exemplo:
Se tivermos identificado corretamente, vamos obter uma lista de tabelas do usurio e
vista com o qual temos conectadas, selecione a tabela Pessoa e clique em OK. Na
coluna da esquerda temos os atributos da tabela selecionada e os atributos certos que
queremos para usar. Inicialmente, a coluna da direita est vazia, ento pegamos todos
os atributos para a coluna da direita e dar o boto Finish.

Ns terminar de usar o Assistente de bloco de dados e iniciar o assistente de projeto


que vai nos receber, ns damos-lhe o boto Next. Fomos convidados pelo tipo da
lona e lona, ns ignor-lo e dar o boto Next. Ns don duas colunas aparecem uma
janela para selecionar os atributos que deseja ver. Em princpio, ns vamos mostrar
tudo para que os levou a todos para a coluna direita.

Agora vamos pedir o Prompt (que a cadeia que aparece sob a forma), a largura e
altura para cada atributo. Deixe os valores de largura e altura que nos deixam com
exceo de PID, colocamos uma largura de 20 e parte do prompt, altere
"Lugarnacimiento" "Local de nascimento" e "BirthDate" para "Data de nascimento"
e dar o boto Concluir.
Como resultado temos o nosso primeiro bloco de dados.

Uma vez que os assistentes de dados e projeto completou dois subjanelas que
aparecem em formas Builder, o localizador de objectos uma janela com estrutura
de rvore que mostra todos os elementos da nossa forma e Editor de Layout que
nos permite ver o aspecto da nossa forma e, mais importante, mudar isso .

Se no aparecer em algum momento, tanto o localizador de objectos como o Editor


do projeto, sempre que podemos chamar a partir do menu Ferramentas. Dentro do
editor de projeto que vai mudar o prompt "Surname1" com "Nome" e "Surname2"
por "Second Name". Tambm mudamos o tamanho da entrada PID, que muito
grande para armazenar apenas um nmero. Ns podemos fazer todas as mudanas
que julgar necessrias no projeto para ser deixada para o nosso gosto. (Note-se que
para desfazer as teclas CTRL + Z usados)

Podemos ver que, quando ns escolher algo no editor de layout altera a posio no
navegador de objeto, de modo que ele deixa o item selecionado. Se voc clicar duas
vezes em qualquer item no editor vamos projetar os paleta de propriedades do
elemento. paleta de propriedades de um elemento , como o prprio nome sugere, as
diferentes propriedades que podem ter um item que j veremos gradualmente.
Agora vamos executar nossa forma de fazer isso clique no cone para a luz
verde (aparece em tanto o editor de design e objeto de navegao ou o menu-
Programa> Executar Display-> Cliente / Servidor). O que ele faz chamar o Oracle
Forms Runtime responsvel por executar o formulrio.
Diferentes botes Oracle Forms Runtime queremos destacar so:

Guardar : Este boto permite-lhe para guardar as alteraes feitas em um registro,


novas tuplas criados e excludos mensagens. como uma cometem no banco de
dados.
Sair : Este boto deixamos a execuo do formulrio.

Executar consulta : Este boto executa uma consulta no banco de dados com base
no contedo do formulrio, se eles no tm valor, permite-nos para verificar todos os
registros.
Digite consulta : Permite que voc inserir uma consulta para trazer essas tuplas
no banco de dados que atendem a uma determinada condio.
bloco anterior : Utilizado para ir para o bloco de dados anterior, quando no
mais do que um.

Registro anterior : Ns podemos ir para o recorde anterior, quando no mais do


que um.

Prximo Registro : Permite que voc para ir para o prximo registro, quando no
mais do que um.
Prximo bloco : Podemos ir para o prximo bloco de dados, quando no mais do
que um.
Inserir registro : Este boto usado para adicionar um novo registro tabela.
Excluir registro : Com este boto voc pode excluir o registro exibido.

Tente dar o boto Run Query, percorrer os registros, criar um novo, modificar
qualquer um dos acima criado e exclui o ltimo que voc criou. Para ver as
alteraes no banco de dados, fazer perguntas sobre a tabela pessoa de SQL Plus
Agora tudo o que precisamos para salvar o formulrio para usar no futuro, por isso,
dar a opo Arquivo-> Salvar menu e dar o nome, por exemplo, persona.fmb. Note
que se voc continuar na unidade C nas prticas de sala de aula no pode reutilizar
este formulrio.
Se voc modificar o valor do Sexo atribuir qualquer recorde, por exemplo, um X e
dar o boto salvar. Na barra de status (abaixo) Oracle Forms Runtime teremos um
erro dizendo que a Oracle no pode atualizar o registro, isso porque campo s
pode ter dois valores H ou M , para criar o banco de dados que forar por
clusula CHECK IN -lo dessa forma. Para evitar problemas, desde que o usurio
pode no saber so permitidos valores quw, vamos usar uma gota - lista para baixo
para este atributo.

Para fazer isso no navegador do objeto vamos para o bloco de dados pessoais e,
portanto, o elemento Sex, selecione -o com o mouse e dar o boto direito do mouse,
o menu de contexto, selecione Propriedades Paleta (Outra forma de acesso elemento
paleta Propriedades Sex est pressionando -o duas vezes no editor de design como
voc sabe). Vamos mudar o atributo de tipo de elemento para elemento da lista eo
atributo de correspondncia com outros valores que colocamos M (seria o padro).
Agora vamos alterar a propriedade elementos da lista , onde teremos um sub com
duas partes, a primeira ser cada um dos valores na lista exibida, e o campo abaixo
para cada um desses valores para os valores mostraram que so armazenadas na base
de dados, assim, na lista de valores mostrados ir homem e mulher e os valores
armazenados correspondentes so logicamente H e M

EXERCCIO : Faa uma forma que permiteverificar, inserir, excluir e


modificar os temas
detalhe 1.2 Bloco de Student
Cumprindo com o formulrio de pessoa com a qual temos trabalhado
antes. Selecionado no navegador de objeto, o bloco de dados Pessoa e clique no
boto do navegador para criar objetos . Assim que criar um novo bloco de dados
(detalhe) associado com o bloco de dados selecionado (Pessoa - Master)

Vamos pedir-lhe como voc deseja criar o novo bloco de dados, dizemos ns
queremos usar o bloco de dados assistente

Estudante vai escolher a mesa e que so deixados com todos os seus atributos, depois
de clicar em Avanar uma janela onde voc criar o relacionamento mestre-detalhe
aparecer. Vai dar o boto Criar Relacionamento (o tipo de relacionamento ser
baseado em uma condio de juno), vamos escolher o (a nica que parece na lista)
mesa Pessoa e dar OK. Como elemento de detalhe e como um elemento mestre
vai escolher o atributo PID. marcar automaticamente os blocos de dados caixa de
mesclagem.
Damos Finish para iniciar o projeto assistente. Os atributos que so exibidos sero
todos, mas o PID, uma vez que j nos mostra na tabela de pessoa. O tamanho de cada
campo, modificar a nota acesso, colocamos um tamanho 20. Vamos dar o boto
Finish.

Uma vez que o projeto acabado assistente, a partir de editor de design ir adaptar o
aspecto visual do formulrio para o nosso gosto. Quando executamos percebemos
que os alunos de golfe nos encheu quando estamos movendo-se apenas por uma
pessoa que um estudante. Isto tem a desvantagem de que tambm nos mostra as
pessoas que no so estudantes (ou seja, professores).

Nota : Para nos mostrar apenas os alunos, vamos restringir os itens que nos trazem
no bloco de dados Pessoa. Suponha que no SQL quer apenas para obter aqueles que
so estudantes, uma maneira de fazer isso com a seguinte consulta:
SELECT * FROM pessoa WHERE in pid (SELECT pid DE estudante)
Se formos Pessoa bloco de dados propriedades paleta na seo de banco de dados,
encontrar o ONDE propriedade clusula inicialmente vazio. Se voc encher -
lo com PID (SELECT pid DE estudante) , correndo de volta a forma s ir
mostrar aos alunos.
O que no se esquea de salv-lo!
EXERCCIO : Faa um mestre detalhadopara os professores formam
analogamente como fizemos no exemplo acima. Ser mais fcil seno
modificar o desenho at que voc tenha os blocos mestre e detalhadas.
Nota : Se ns queremos quando ns executar uma forma que no pressione o boto
Executar Consulta para comear a ver os registros que faro faz-lo automaticamente
quando voc criar o formulrio. Para fazer isso no navegador do objeto,
vamos gatilhos e clique no boto Criar , selecione o gatilho QUANDO-NEW-
FORM-INSTNCIA e pressione o boto OK.

Na janela do Editor PL / SQL escrever a linha


execute_query;
se voc olhar ejecutar_consulta Ingls , damos o boto Compilar e em Fechar. Desta maneira,
cada vez que voc executar o formulrio no tem que pressionar o boto Executar Consulta
para exibir os registros.

Formulrio de Inscrio 2
Vamos fazer um formulrio mestre-detalhe, onde o professor vai ser a tabela da taxa
de matrcula e detalhes tabela de DetalleMatrcula. Nesta forma podemos excluir /
adicionar campos a uma inscrio. Vamos fazer isso similiar forma como foi
realizado o exemplo anterior, mas com duas pequenas diferenas.
Sobre o design assistente para o bloco mestre, escolha um estilo de design da tela ,
pressione Avanar e quadro dar o ttulo Tuition , em seguida, pressione Pronto .
A segunda diferena que no assistente de projeto para o bloco de detalhe (a
tabela DetalleMatricula ), escolha um estilo de design tabular , prima Seguinte e
quadro dar o ttulo de assuntos , registros exibidos sero 10 e marcamos caixa de
exibio de rolagem, em seguida, pressione Pronto .
Desta forma e remexer com o editor de layout deve ser algo como:
Este formulrio intuitiva e difcil de usar bastante um monte, por isso, vamos fazer
vrias alteraes, a primeira ir realizar uma lista esttica para o campo Tipo, de
modo que as opes aparecem: Ordinary , gratuito , Universidade pessoais e, de fato,
na base de dados valores armazenados S , L , L (respectivamente). E o nmero de
parcelas, uma outra lista, tomar os valores 1 ou 2.

A prxima melhoria usar uma lista drop-down como usado no tipo e nmero de
prazos para os sujeitos, de modo que podemos ver na lista o nome do sujeito e no
precisa saber o nome de todos os assuntos. Ele observa que, com o conhecimento
que temos, para cada assunto a ser adicionado ao banco de dados teria que mudar o
design do nosso formulrio, para incluir o novo assunto como uma opo da
lista. Esta no realista um ambiente normal, isto , no a aplicao alterada
quando o banco de dados for alterado, ele no teria sentido. Para isso, vamos fazer de
contraste dinmico de listas utilizadas at agora so estticos. listas dinmicas so
construdos cada vez que voc executar o formulrio a partir dos valores
armazenados no banco de dados.
Ns construmos uma lista dinmica de assuntos para da tabela de assuntos. Para
fazer isso, a primeira coisa que temos a fazer definir o campo DetalleMatrcula
nome como item da lista. Vamos usar um padro valor conhecido e ir preencher a
lista com um nico valor (ou seja, para as formas desenvolvedor no dizem-nos que
a lista errado), para que ele possa usar o padro de banco de
dados (Correspondncia com outros valores), e na lista podemos acrescentar o
item do banco de dados e armazenamento de banco de dados no banco de dados.
Ns j temos uma lista esttica que se compilar o formulrio no servir-nos qualquer
bom para torn-lo dinmico ir realizar os seguintes passos:

1. Crie uma consulta para obter os diferentes temas do banco de dados com os quais
construmos a lista
2. Escrevendo a / SQL prodecimiento PL a ser responsvel por preencher a lista com os
dados obtidos na consulta anterior
3. Chamando o procedimento PL / SQL para preencher a lista quando o formulrio
utilizado

Para criar a consulta que ir permitir-nos para obter os dados de consulta no


Pesquisador de objetos, selecione os registros de grupo (uma consulta, na verdade)
e dar o boto para criar , digitando o seguinte:
SELECT nome FROM ordem de nome Assunto por 1
Com esta consulta, ns obter o valor a ser exibido na lista ( nome ) eo valor correspondente
que alamcenar no banco de dados ( nome ) ordenados alfabeticamente. Uma nova consulta
criada, damos o nome de temas (por exemplo, usando a paleta Propriedades -> nome)

Agora vamos criar um procedimento de PL / SQL para preencher uma lista de dados
de uma consulta. Como este processo provvel que usamos -lo mais de uma vez em
nossas formas faremos reutilizvel como uma biblioteca. Para fazer isso, no
Pesquisador de objetos, marcar Bibliotecas PL / SQL e dar o boto para criar ,
em seguida, selecione unidades do programa e para trs para permitir que o usurio
crie . Digite o nome da unidade de programa, que ser llena_listas e dar o
boto OK .

No editor de PL / SQL aparece apresentamos o seguinte cdigo:


llena_listas PROCEDIMENTO (lista no grupo VARCHAR2 em VARCHAR2)
verror NMERO: = 0;
excepo errorRellenoLista;
BEGIN
verror: = Populate_Group (grupo);
se verror = 0 ento
Clear_List (lista); / * Eliminar o contedo da lista * /
Populate_List (lista, grupo);
ELSIF verror = 1,403, em seguida, / * No h * /
/ * Item na lista * /
null; / * No faa nada * /
mais
levantar errorRellenoLista;
end if;
EXCEO
Quando errorRellenoLista Ento
mensagem ( 'Excepo: no pode preencher a' lista || ||
'Com a consulta' || || grupo) '';
END;
Imprensa Compilando e se no h nenhum problema, damos Fechar
Vamos para a biblioteca criada e dar o boto salvar , armazenar isso como mylib
recorda o local onde os guardas, (por exemplo, u: / BD2 /). Selecione a biblioteca e
compilar (no menu, vamos programa-> Compilando Seleco). Ns agora s
adicionar a biblioteca nossa forma e, em geral, qualquer forma que voc deseja
para criar, por isso, o nosso formulrio de irmos para o Object Browser
para Bibliotecas Incorporated (ou bibliotecas associadas, dependendo da verso do
desenvolvedor ) e pressione o boto para criar . Examinamos e selecione a
biblioteca e dar -lo para incorporar .

Vamos perguntar se excluir o caminho para o aplicativo para ser porttil, dizemos No. Isto
tem o problema que se a biblioteca no est no caminho especificado, o formulrio no vai
funcionar. Isso importante para manter em mente quando detalhando a instalao de um
formulrio.

E ns pode chamar apenas o procedimento PL / SQL para preencher a lista com


dados de consulta quando o formulrio usado. Para isso, o objeto de navegador,
vamos gatilhos e clique no boto Criar , selecione o gatilho QUANDO-NEW-
FORM-INSTNCIA e pressione o boto OK . E adicione o seguinte cdigo:
llena_listas ( 'DetalleMatricula.nombre', 'temas');
Se voc tambm quiser nos deixar forma Inicializado, seria:

BEGIN
llena_listas ( 'DetalleMatricula.nombre', 'temas');
execute_query;
END;
Note-se que a chamada para procedimento mylib llena_listas tem dois parmetros, o primeiro
bloco de dados e elemento de preencher, a segunda consulta para ser usado para esse
fim. Ns damos Compilando e Fechar

Finalmente, o formulrio ser semelhante a:


O que no se esquea de salv-lo!
3 Bloco LOV (lista de valores - Lista de Valores)
Em vez de usar listas, em muitos casos, ns usamos blocos LOV mais
interessado. Bloquear um LOV podemos atribuir mais de um valor de cada vez, ou
seja, selecionar um item a partir de um bloco de LOV podemos preencher vrios
campos do formulrio de cada vez. Os blocos LOV so dinmicas no sentido de que
ela construda a partir de dados do banco de dados e tambm nos permite ver mais
dados do que sero usados para preencher o formulrio.
Para ilustrar o exemplo dos blocos LOV: se voc olhar para a forma acima do campo
do estudante apenas um cdigo que no nos diz muito, se ns tivemos que alterar a
atribuio de uma matrcula para um estudante (por exemplo, para desfazer um erro
secretrio), deve ser procurado nos alunos o cdigo (ou pelo menos saber) e que a
inscrio alterao de cdigo. Para evitar isso, vamos criar um bloco de dados LOV
nos permite ver os alunos, mas ns armazenar apenas o prprio cdigo.
formulrio de inscrio aberta, se voc no tiver j aberto. No navegador de objeto,
selecione listas de valores (LOV ou elementos, dependendo sobre a verso do
desenvolvedor) e dar o boto para criar . Ns dizemos que ns queremos
para usar as listas Valor do Assistente . Deixe selecionada novo Grupo registros com
base em uma consulta e dar o boto Avanar .
Na parte da consulta SQL, apresentaremos a seguinte consulta:
alumno.pid SELECT, nmero de identificao, nome, apellido1,
Surname2
DE estudante, pessoa
ONDE (alumno.pid = persona.pid)
Ns conectar (se j no estiver) e dar -lo para Verificar sintaxe para ver se a consulta
est correto. Ns damos o boto Avanar .
Na janela de seleo de mover todos os atributos para a coluna direita, uma vez na
mesma consulta selecionou os atributos que queremos deixar na lista de
valores. Damos Seguinte .

Na prxima janela do assistente, ele nos mostra como ns estamos indo para mostrar
os valores no bloco LOV, alterar a largura da coluna (ver imagem), ea linha coluna
PID Valor de retorno que a inscrio .IDALUMNO (ou em vez de digitar, podemos
selecionar lo pressionando Pesquisa elemento de retorno ... ) o que isso faz
retornar o elemento de bloco PID Matricula.IDAlumno LOV no campo. Se
quisssemos para retornar mais valores iria usar as caixas na coluna Valor de
retorno . Deixar activada a caixa ajustar automaticamente o tamanho das colunas e
clique em Avanar .

Damos ttulo Student Seleo , deixando os padres restantes, pressione duas


vezes em Avanar .
Matricula.IDAlumno finalmente passar para a coluna da direita e dar o
boto Finish .

Quando voc executar o formulrio, para ir ao Estudante caixa, vamos na barra de


status (abaixo) Oracle Forms Runtime anotao Lista de Valores , pressione F9 e ns
bloquear a LOV aparecer.
Se voc deseja que a lista valor automaticamente exibida quando voc deixar o
aluno caixa, sem ter que pressionar F9, voc tem que ir para a paleta
Propriedades lista criada e colocar os valores de propriedade exibio
automtica para Sim

4 janelas e telas
As telas so elementos de design em que os outros elementos do nosso formulrio
est localizado. A janela funciona como um visor na tela permitindo que percorra o
seu contedo. Quando voc executar um formulrio uma janela principal que no
tem telas pelo qual todas as outras janelas que contm pinturas expostas, se
disponvel. Podemos distinguir diferentes tipos de telas:

1. Contedo : elemento de outro recipiente. o que foi criado por padro com uma nova
forma e uma janela deve ter pelo menos uma tela como esta, porque uma lona
recipiente elementos de formulrio ou outras telas
2. Empilhamento : A tela mostrada acima outros.
3. Tabulares : Sacos de fazer o controle sobre nosso receiturio.
4. Barra de Ferramentas : Contm botes exibidos verticalmente ou horizontalmente na
janela.

Como vimos implicitamente o uso de contentores empilhados telas e pinturas podem


ser simuladas, colocando os elementos de diferentes blocos de dados na mesma tela,
vamos ver pinturas tabulares e barras de ferramentas. Veremos tambm um tipo
especial de janelas que esto alerta e vamos ser muito til.
4.1 Lienzos tabulares
Vamos realizar um formulrio de inscrio, onde uma parte tem a inscrio de dados
e para baixo tem duas guias: uma com os assuntos associados com propinas e outros
pagamentos de aula. Assim, temos um bloco de dados master (Registro) e dois
blocos de detalhe (assuntos e pagamentos), cada um em uma guia.
Abrir Form Builder (iniciado sem qualquer forma) e atravs do Assistente de criar o
nosso bloco de dados associado com a tabela de registo, como fizemos na aparatado
2 selecionando todos os seus atributos. Note-se que no Assistente de projeto, depois
que a janela de boas-vindas aparece Canvas Tipo e, por padro, tem uma tela tipo de
recipiente.

Visualizar todos os campos, formato de tela, que o ttulo do frame da taxa de


matrcula , procure um registro e tem a barra de rolagem.

Verifique se funciona e guarda-o, por exemplo, como Matriculacion2.fmb. Observa


que se deslocam a barra de rolagem vamos mover-se atravs das diferentes tuplas da
tabela de registro.

Agora vamos criar o primeiro guia para os sujeitos. Vamos criar bloco detalhada
com base na tabela DetalleMatrcula (lembre-se de criar um bloco detalhado, voc
deve primeiro selecionar o bloco de dados mestre e dar o boto para criar), a seleo
de todos os campos. No Assistente de projeto no tipo de janela lona, vamos atribuir
uma nova tela ( nova tela ) para ser do tipo tabular e pgina de nova aba .
Apenas visualizar o campo Nome (claro) e escolha uma apresentao tabular
visualizao 5 entradas e a barra de rolagem. No objeto de navegao que buscamos
em Lienzos os novos lona tabulares que criamos (voc pode ver o nome no editor de
layout) e, dentro dela, em pginas de guia que mudou o nome para o primeiro l, o
que ter um nome Page5 like (voc pode fazer em paleta de propriedades alterando o
atributo tag para o valor temas ).

Quando voc executar o formulrio, voc s vai ver a parte da aula, no importa,
ento mude -o . Agora vamos criar a segunda guia para os pagamentos bloco de
detalhe selecionando todos os campos. Tenha cuidado ao criar a relao, neste caso
como tendo dois blocos de dados pode confundir o assistente. Para evitar isso , antes
de clicar em Criar Relao deactivate automaticamente ponto blocos de dados ,
ns fazemos o relacionamento baseado em uma condio de juno no campo
IDMatricula Inscrio e campo IDMatricula pagamento.
No Assistente de projeto no tipo de janela lona, vamos atribuir a tela tabular antes
criada com os sujeitos, mas vamos selecionar uma nova pgina .

Menos IDMatricula visualizar todos os campos. Ns escolher um layout tabular de


ttulo Pagamentos, e apenas 2 registros so exibidos sem barra de rolagem. Mudamos
o nome para a guia, como fizemos acima para os sujeitos (Mudar o Pagamentos de
propriedade Tag criadas pgina de nova aba).

Agora vamos redimensionar a tela para que eles apaream para executar o
formulrio. Para fazer isso no navegador do objeto, vamos para a tela e selecione a
tabular tela (segunda), abra a paleta Propriedades e alterar a propriedade posio e
na Puerta de Vista de 90 e propriedade Bisel para Nenhum
Desta forma, vamos colocar a tela com as abas abaixo dos dados de inscrio. Nota
redimensionar a tela de matrcula (se no for grande o suficiente) para caber debaixo
da lona tabular. Bisel colocar qualquer, o que fazemos remover a linha que separa
as duas telas. Corremos, lona, correta e salve o formulrio.

Se o navegador do objeto, bloco de dados Master (Matricula) depois de um detalhe


bloco de dados no exibido corretamente.
Se voc quiser para ver no editor de projeto as duas telas em vez de ter de design
dois editores (um por cada tela), na concepo mestre editor bloco de ir para a
opo Ver do menu e, em seguida, para Stacked View ... , selecione a tela tabular e
dar o boto OK .
Para alterar o ttulo da janela de seu navegador de objeto, v para o Windows ,
selecione l e abrir sua paleta de propriedades. Alterar a propriedade de ttulo , por
exemplo, de Matrcula .
Do Windows 4.2 Avisos (Alertas)
Desenvolvedor tem um tipo especial de janelas para enviar mensagens para o
usurio. Basicamente, ele exibe uma mensagem e voc pode ter at trs botes (por
exemplo, "Sim" "No" e "Cancelar"). Existem trs tipos de estilos de alerta: pare,
precauo e nota.
Vamos criar um alerta para nos mostrar uma mensagem de boas-vindas quando o
formulrio de registro executado, por isso, devemos t-lo previamente aberto com
formulrios Builder. No Pesquisador de objetos, selecione Alertas e pressione o
boto para criar . Ns abrir a paleta de propriedades criado o alerta.
Alterar as seguintes propriedades:

Um nome que damos boas-vindas


Um ttulo que ns damos boas-vindas
A mensagem que damos Bem-vindo ao o processo de registro.
A etiqueta Boto 1 write OK
A tag boto 2 e Boto tag 3 deix -lo em branco

Agora s temos que chamar o alerta para que, a WHEN_NEW_FORM_INSTANCE


gatilho, que escrever o cdigo:
DECLARE
boto NUMBER;
BEGIN
/ * Alerta Mostrar boas-vindas e
mantenha o boto pressionado * /
boto: = Show_Alert ( 'Welcome');

/ * Vimos que o boto pressionado * /


SE ENTO boto = ALERT_BUTTON1
/ * No apenas um no fizermos nada * /
NULL;
END IF;

/ * Preencha o formulrio * /
execute_query;
END;
Assim, executar a forma que devemos ir, algo como

A funo Show_alert retorna o nmero ALERT_BUTTON1, ALERT_BUTTON2,


ALERT_BUTTON3 dependendo de qual boto foi pressionado
4.3 Barras de ferramentas
Para ilustrar o funcionamento de uma barra de ferramentas, vamos criar um para o
nosso formulrio de inscrio que horizontal e quatro botes, dois para mover entre
os registros, outro para armazenar as alteraes feitas e um quarto boto para fechar
o formulrio, mostrando um aviso antes. A barra de ferramentas ser parecido com
este:

O primeiro para criar uma tela para ela no navegador de objeto ir para a tela e
pressione o boto para criar . Abra a tela propriedades paleta criada e alterar as
seguintes propriedades:

Um nome que damos Botes


A tela Tipo dar Toolbar Horizontal
A janela vai dar Windows1 (ou voc tem se voc tem outro, mas voc deve ter apenas
um)
A altura escrevemos 30

Ns abrir o editor de layout, anteriormente selecionando a tela criada. At o boto


para criar botes , acrescentamos os quatro botes para ter uma semelhana com
o que estamos procurando aparncia. Inicialmente, parece como este:
Note que os botes devem ser criados como elementos do bloco de
dados Matricula . Deve ser algo como:

Pelas propriedades paleta cada boto, voc alterar as propriedades da


etiqueta valores < , > , Guardar e Fechar e propriedade nome para os
valores acima , de volta , salvar e sair .

Agora, se ns executar o formulrio, a barra de ferramentas, mas os botes no fazer


nada aparecer. Para o boto acima criar um novo tipo de gatilho QUANDO-
BUTTON pressionado , com o seguinte cdigo:
do_key ( 'para cima');
e tambm para o boto de volta , mas com o cdigo:

do_key ( 'para baixo');


boto para salvar o cdigo :

commit_form;

Quando voc executa o formulrio ir verificar e botes de funo (exceto o


fechamento), o gatilho cdigo QUANDO-BUTTON-pressionado, executado (como
o nome diz) quando um boto pressionado. Agora ns somos o outro boto um
pouco mais complicado. boto de sada, vamos usar um alerta que pergunta se voc
deseja salvar as alteraes antes de sair e tem trs botes: "Sim" "No" e
"Cancelar". Dependendo do boto pressionado resultados sero salvas e o formulrio
fechado, sem alteraes sero salvas e sair do formulrio e no fazer nada
(respectivamente). Para fazer isso, em primeiro lugar, ele ir criar um alerta com as
seguintes propriedades:

Um nome que damos para fora


Um ttulo que ns damos para fora
A mensagem dar-lhe Quer para salvar as alteraes antes de sair?
Um Alerta Estilo dar Caution
A etiqueta Boto 1 gravao Sim
Um boto Etiqueta 2 write No
Um boto de marcador 1 escrever Anular

Boto para terminar a sada para acionar QUANDO-BUTTON pressionado vamos


atribuir o seguinte cdigo:
DECLARE
boto NUMBER;
BEGIN
/ * Salvar * Perguntado se /
boto: = show_alert ( 'out');

/ * Se voc pressionou o primeiro boto,


salvar as alteraes * /
Ento, se o boto = ALERT_BUTTON1
commit_form;
end if;

/ * Se voc apertou o terceiro boto,


Deixamos * /
se o boto <> Ento ALERT_BUTTON3
exit_form (no_commit);
end if;
END;
A aparncia da forma ser:
5 elementos com os resultados dos clculos
Em desenvolvedor pode criar campos que exibem dados calculados a partir de outros
campos. Para ilustrar esse recurso, para cada pagamento, vamos adicionar um campo
a ser pago (I pago.abonado * pago.cantidad) que para um dado nos mostrar
remunerados ou no, e dois campos de um com a soma das quantidades de
pagamentos ( Preo matrcula total ) e um com a soma dos valores pagos ( total
pago ).
No navegador de objeto, selecione o bloco de dados elementos pagamento e
pressione o boto para criar , vamos criar um novo campo de texto. Com a paleta
Propriedades damos os seguintes valores:

Um nome que do pago


Um tipo de dados dar Nmero
Um modo de clculo que voc escolher Formula
Na Frmula escrita : Eu pago.abonado *: pago.cantidad
Em Item Database ns escolhemos no
A lona atribuir a tela tabular (o segundo set)
Na pgina da guia damos a pgina com a guia Pagamentos (o segundo set)
A Prompt dar o valor pago
Na justificao Prompt ficou com Centro
Em Borda anexo Prompt escolher Superior
No melhor editor de layout que colocamos o campo criado (como dois pagamentos,
dois campos de texto ser). Se voc executar o formulrio ver que ele funciona,
basta alterar o valor do Assinante.

No editor de layout criamos dois novos campos de texto , como mostrado na Fig.

Se os campos criado texto que aparecem no bloco de dados de pagamento (Vamos


dobrar!), No h problema, mas se formos nos dados bloco de inscrio (como no
exemplo), arrast-lo para o bloco dados de pagamento, que onde ns fazemos a
matemtica.
O mais distante campo esquerda, usando a paleta de propriedades, voc modificar
os seguintes atributos:

Um nome que damos total


Um tipo de dados dar Nmero
Um modo de clculo que voc escolher total
Em funo totalizando selecione Sum
No bloco total escolheu Pagamento
Em Elemento total ns Montante
Em nmero de itens exibidos escrevemos 1
Em Item Database ns escolhemos no
A Prompt dar o valor Preo total de matrculas
Em Prompt Fonte espessura permaneceu com Negrita

O campo na extrema direita, usando a paleta de propriedades, voc modificar os


seguintes atributos:

Um nome que damos TotalPagado


Um tipo de dados dar Nmero
Um modo de clculo que voc escolher total
Em funo totalizando selecione Sum
No bloco total escolheu Pagamento
Em Elemento total ns pago
Em nmero de itens exibidos escrevemos 1
Em Item Database ns escolhemos no
A Prompt valor dar total pago
Em Prompt Fonte espessura permaneceu com Negrita

bloco de dados de pagamento ir alterar a propriedade Consulte todos os


registros para Sim e propriedade Totais precompute como Nenhum . Resta apenas
para ajustar o total de campos criados por se voc no visualizar bem e executar o
formulrio alterando os valores de quantidade / assinante para ver o que acontece.

Nota: Esses campos no dados so armazenados no banco de dados (h um campo


onde eu fao)
6 menus
Qualquer forma tem um menu padro que permite que voc executar as ordens
habituais, alguns dos quais que vimos no o incio, quando ns correu a nossa
primeira forma. O menu padro no pode ser alterado, mas pode ser alterado para um
menu personalizado para isso, que desejvel de um menu pr-definido,
usaremos menudef.mmb .
Ns comeamos com o formulrio de inscrio com o qual temos vindo a
trabalhar. No navegador de objeto, selecione menu e pressione o boto para
abrir , selecione o arquivo menudef.mmb (nota para o caminho onde voc salvou
-lo ). Selecione o construdo e clicando no menu do boto direito, vamos para
o Editor de Menu.
A primeira coisa que podemos fazer para se familiarizar com o editor de menu
traduzir Ingls para o entradas castelhanos, para que voc tenha o seguinte aspecto:

A prxima coisa que vamos fazer para criar uma opo de menu para chamar os
alunos do formulrio. Para fazer isso, vamos criar uma nova entrada na opo de
menu consulta. Sig abaixo. Group, vamos criar um separador, por isso vamos
para consulta> Sig.Grupo e clique no boto Criar abaixo . O novo item de menu
ir alterar as seguintes
propriedades: Nome : SeparadorForms , Etiqueta : SeparadorForms , tipo de item de
menu : Divisor .

Criado sob as formas de separao criou a entrada pressionando o boto Criar


abaixo . Ns damos o novo item: Nome : Formas , Etiqueta : Formas , tipo de
item de menu : normal .
Com a opo formulrios imprensa selecionou o boto Criar direita . O novo
elemento damos: Nome : Os estudantes , etiqueta : Os estudantes , tipo de item de
menu : normal .

Para executar o formulrio de Estudantes Estudantes quando a opo de menu


escolhido, teremos que modificar sua propriedade item de menu Cdigo com o
seguinte cdigo:
DECLARE
parmetros paramList;
BEGIN
/ * Criar a lista de parmetros vazia * /
parmetros: = Create_Parameter_List ( 'nada');

/ * Chame os alunos formam * /


Run_product (formulrios, 'estudante', sncrono, tempo de execuo,
sistema de arquivos, parmetros, null);
END;
A funo run_product vai nos ajudar a executar qualquer elemento Developer, o
primeiro parmetro ser FORMAS se chamar um formulrio RELATRIOS se ns
chamamos um relatrio, o segundo parmetro o formulrio ou relatrio que voc
quer para usar e o penltimo -se uma lista de parmetros passamos o formulrio ou
relatrio, neste exemplo, est vazio. Para mais informaes sobre o procedimento
run_product, pode consultar a ajuda interativa do desenvolvedor.
No navegador de objeto, selecione o item de menu com o qual estamos trabalhando e
v em File -.> Salvar como Mantemos -lo como mimenu.mmb . Agora s temos de
compilar ele (mantendo -o selecionado, que v em File -> Administrao ->
Compilando Arquivo) e incorporar compilado menu formulrio. Para fazer isso,
abrimos a forma propriedades paleta (o nico elemento no navegador exibe objetos)
e altere a propriedade Mdulo Menus para mimenu.mmx . Executar e testar se
ele funciona a opo de visualizar os alunos do formulrio.
7 Formas com parmetros
Um formulrio pode ter parmetros de modo que, quando voc invocar (por
exemplo, a partir de um menu ou um boto), tem um comportamento diferente
dependendo dos parmetros. Um parmetro uma varivel associada a uma forma
ou um relatrio.
Vamos criar um formulrio onde os dados de um aluno em particular exibida e
vamos chamar de nosso formulrio de inscrio. Primeiro, copiar nosso formulrio
Alumno.fmb para outro arquivo, por exemplo, AlumnoP.fmb e abrir o novo
formulrio criado. Para criar um parmetro nos selecione Configuraes do
navegador objeto e clique no boto para criar . O novo conjunto de parmetros
que damos o nome selecionado , ser numrico ( nmero ) eo valor inicial 1 .
O prximo passo que vamos estar mudando o bloco de dados Pessoa clusula
WHERE, para que o registro cujo PID exibido passado como um parmetro. Para
isso, dar a propriedade clusula WHERE valor pid =: Parameter.seleccionado

Se voc executar o formulrio criado vai nos mostrar a pessoa com PID igual a 1
(lembre-se o valor inicial do parmetro). Ns fechar o formulrio e abra o formulrio
de inscrio nesta forma, vamos adicionar um novo boto na barra de ferramentas
que ir servir para abrir o formulrio com o aluno AlumnoP.fmb que estamos vendo
sua inscrio. Para fazer isso, abra a barra de ferramentas no Editor de estrutura e
adicione um boto , que redimensionar para se ajustar corretamente. Abrimos as
propriedades boto criado paleta e colocar estudante nas
propriedades Nome e Rtulo .
Ns j temos o novo boto que no faz nada agora, para abrir o formulrio AlumnoP,
vamos adicionar um gatilho quando-BUTTON pressionado tipo com o seguinte
cdigo:
DECLARE
parmetros paramList;
BEGIN
/ * Criar a lista de parmetros * /
parmetros: = Create_Parameter_List ( 'Param');

/ * Ns adicionamos o aluno a visualizar * /


Add_parameter (parmetros, 'selecionado',
TEXT_Parameter ,: matricula.IDAlumno);

/ * Chame os alunos formam * /


Run_product (formulrios, 'AlumnoP', sncrono, tempo de execuo,
FILESYSTEM, parmetros, null);

/ * Ns limpamos a lista de parmetros criado * /


Destroy_Parameter_List (parmetros);
END;
Com o procedimento Add_parameter pode adicionar como muitos parmetros,
conforme necessrio, em primeiro lugar voc tem a lista de parmetros, ento o
nome do parmetro, o tipo de parmetro (geralmente TEXT_Parameter) e,
finalmente, o valor do parmetro. Note que aqui ns escolher o
atributo IDAlumno bloco de dados inscrio
Salvar e executar o formulrio para ver o novo boto funciona corretamente.
oracle Reports

1 Relatrio Asignaturas
Vamos fazer um primeiro relatrio que ir apresentar uma lista de assuntos que
podem ser tomadas, para este prazo Report Builder , que a ferramenta para
construir relatrios
A primeira coisa que vai ser uma tela de boas-vindas com vrias opes, vamos
selecionar Usando o Assistente de relatrio e dar o boto OK.

Temos outro bem-vindo, ignore -o e clique no boto Avanar, vamos pedir o ttulo
de nosso relatrio eo tipo dos mesmos. Ttulo vontade como assuntos e vai escolher
o tipo tabular. Em seguida, pressione
Vamos pedir o tipo de consulta que voc deseja para usar, selecione instruo SQL e
clique em Avanar. Na janela seguinte, vamos pedir a consulta e tirar proveito
de pressionar o boto Conectar para identificar. A consulta que devemos introduzir :
SELECT nome, creditosTeoricos, creditosPracticos, tipo, assunto de
trimestre;

Aparecer uma janela com duas colunas para selecionar os atributos que voc deseja
exibir no nosso relatrio, ns vamos mostrar tudo para que os levou a todos para a
coluna direita.

Na prxima tela permite que ns total, mnimo, mximo, e assim calcular, por agora,
ignor-lo e clique em Avanar. Agora pedimos para rtulos e tamanho de cada um
dos campos de relatrio, que acabamos de mudar "creditosTeoricos" por "crditos
tericos" e "creditosPracticos" por "crditos prticos".

Finalmente, selecione o template design ser parecido com o nosso relatrio,


ns escolher qual ns gostamos, por exemplo, ns escolher a primeira empresarial
1 e dar o boto Finish.

Como resultado temos o nosso primeiro relatrio no Editor de Relatrio podemos


mudar os detalhes que ns no gostamos. Voc no se esquea salv-lo como
asignaturas.rdf
2 Relatrio inscries
Vamos criar um relatrio para cada aluno matrculas nos mostrar que ele fez e por
cada matrcula pagamentos do mesmo. Ns usamos o Assistente de relatrio para
faz-lo. O estilo de relatrio vai reunir a esquerda eo ttulo "Inscries".

A razo para o grupo de esquerda que que queremos que a taxa de matrcula grupo
para estudantes (um estudante pode se inscrever mais de uma vez) e pagamentos de
propinas (uma matrcula pode ter um ou dois pagamentos). O tipo de consulta estar
usando instruo SQL e cdigo ele ir:
SELECIONAR matricula.idmatricula, tipo, numeroplazos,
fechaexpedicion, claro,
quantidade, DataPagamento assinante,
persona.nombre, persona.apellido1, persona.apellido2
Do pagamento, a inscrio, a pessoa
ONDE (pago.idmatricula = matricula.idmatricula) e
(Matricula.idalumno = persona.pid);

Ns esto ligando para identificar e clique em Avanar . Na prxima tela, temos de


escolher que os grupos de atributos ir executar clusters. Primeiro vamos nomear,
apellido1, Surname2 estar no Nvel 1 e idmatricula ser no Nvel 2 . Para parar de
adicionar atributos ao nvel 1 e nvel 2 incio, basta fechar o nvel de rvore 1. Ns
iremos:
Os atributos, em seguida, adicion-lo na parte exibida nos seguintes campos de
ordem: claro, tipo, fechaexpedicion, numeroplazos, valor pago, DataPagamento .

Quando pedimos os campos nos quais voc deseja para calcular a quantidade total
vai selecionar o campo, por isso vamos adicionar os montantes dos pagamentos das
propinas e matrculas totais diferentes a partir de um estudante. Em seguida,
selecione a quantidade e tomamos a coluna total, utilizando o boto Suma>
Agora s temos de colocar os ttulos e ajustar os tamanhos de diferentes
campos. Notas que nos deixam trs novos atributos:

SumCantidadPeridmatricula que adicionar quantidades diferentes para


matrcula
SumCantidadPernombre que adicionar quantidades diferentes por pessoa
SumCantidadPerReport , que nos far a soma de todas as quantidades de
relatrio

Escolha o modelo padro NCA amarelo e d- Finish . Por que no se esquea


de salvar -lo como matriculas.rdf
3 relatrios com parmetros e invocao de relatrios
Tal como acontece com os formulrios, relatrios tambm pode configurar a sua
funcionalidade, para demonstrar seu uso, vamos copiar o mais recente relatrio
criado ( matriculas.rdf ) com o nome de matricula.rdf para nos mostrar matrculas
e pagamentos de uma pessoa que vai ser passado como um parmetro.
Para criar um parmetro no navegador do objeto vamos para o Modelo de Dados e,
em seguida, selecione Configuraes do usurio e pressione o boto para criar
. O novo conjunto de parmetros que damos o nome escolhido , ser do tipo de
caracteres e o valor inicial 1 .

Modificar a consulta do relatrio, que pode ser feito pelas propriedades paleta
navegador objeto e relatrio, alterando a propriedade SQL de consulta consulta l
em consultas no modelo de dados ou por abrir o Assistente de relatrio ( dentro do
menu Ferramentas) e selecionando a guia dados . Ns introduzimos a seguinte
instruo SQL:
SELECIONAR matricula.idmatricula, tipo, numeroplazos,
fechaexpedicion, claro,
quantidade, DataPagamento assinante,
persona.nombre, persona.apellido1, persona.apellido2
Do pagamento, a inscrio, a pessoa
ONDE (pago.idmatricula = matricula.idmatricula) e
(Matricula.idalumno = persona.pid) e
(: = Persona.pid escolhido);

Se voc executar o relatrio, vamos mostrar que antes de chegarmos a uma janela
onde pedimos para o parmetro do usurio.

Pressione o cone de semforo verde para ver o relatrio e s mostra a placa de


licena de uma pessoa (que corresponde ao valor inserido).
Para evitar que, quando ns chamamos de nossa janela do menu ou forma parmetro
aparece para ns, vamos para as de menu Ferramentas -> Construtor Parmetro de
exibio . Deixe em branco Ttulo , a linha de indicao e Linha de Status tambm
desmarcar os atributos que foram selecionados na lista. Salvar e fechar o relatrio.

Abrimos nosso formulrio de inscrio com seu menu e o menu ir adicionar uma
nova opo que vai imp. Matriculas. Para fazer isso, sob a entrada formas criamos os
Relatrios pressionando o Criar abaixo .O novo elemento
damos: Nome : Reports , Etiqueta : Reports , tipo de item de menu : normal . Relata a
opo selecionada pressione o boto Criar direita . O novo elemento
damos: Nome : Imp_Matriculas , Etiqueta : . Imp Matriculas , tipo de item de
menu : normal .
Para executar o relatrio Matricula.rdf quando a opo for escolhida . Imp
inscries menu, ter que modificar sua propriedade item de menu Cdigo com o
seguinte cdigo:
DECLARE
parmetros paramList;
elemento de ordem;
BEGIN
/ * Estamos procura artigo IDAlumno * /
elemento: = Find_Item ( 'IDalumno');

/ * Criar a lista de parmetros * /


parmetros: = Create_Parameter_List ( 'param_n');

/ * Ns adicionamos o aluno escolhido * /


Add_parameter (parmetros, 'escolhido', TEXT_Parameter,
Get_Item_Property (elemento DATABASE_VALUE));

/ * Chamada para relatar um aluno se matricula * /


Run_product (relatrios, 'Registro', sncrono, tempo de execuo,
FILESYSTEM, parmetros, null);

/ * Ns limpamos a lista de parmetros criado * /


Destroy_Parameter_List (parmetros);
END;
No navegador de objeto, selecione o item de menu com o qual estamos a trabalhar e
dar o boto salvar . Agora s temos de compilar ele (mantendo -o selecionado,
que v em File -> Administrao -> Compilando arquivo). Executar o formulrio e
teste se ele funciona a opo de visualizar o relatrio de um estudante 's aula.
interrogatrio

1. Qual verso do desenvolvedor instalado?


2. Qual verso do Oracle instalado?
3. Como conectar Oracle Developer com a Oracle ETSII base de dados?
4. Como conectar Oracle Developer com banco de dados Oracle do meu
computador?
5. I no se conectar ao banco de dados Oracle de ETSIIQu acontece?
6. Como fao para conectar Oracle Developer com o Oracle Database XE?
7. Como fazer referncia a uma chave estrangeira com dois campos?
8. Como fao para armazenar horas Oracle ou datas e horas?
9. Eu no recuperar de desenvolvedor, mas h registros de SQL Plus para me fazer
ir selecione os dados que?
10. Como usar as minhas fotos para decorar formulrios / relatrios?
11. Como gerar valores consecutivos (cdigo) para um campo de um formulrio?
12. Como comear com os valores do formulrio sem pressionar o boto
execute_query / ejecuta_consulta?
13. Eu uso uma LOV e executar o formulrio fico na lista de valores da barra de
status Lista de Valores LOV mas no / mostrado Por qu?
14. Como fazer um acesso identificado para a minha aplicao?
15. Como executar um relatrio form / separado que estamos usando para empurrar
um boto?
16. Como escolher diferentes opes apresentam um formulrio?
17. Em uma forma que eu quero para preencher um campo dar um boto e me
encher o resto dos campos Como posso fazer isso?
18. Como posso apagar a tupla atual mostrado em um formulrio, pressionando um
boto?
19. Eu recebo o erro FRM-402002: Por favor insira um valor no elemento como
fao para remover?
20. Como posso modelar um relacionamento muitos para muitos?
21. Como posso fazer um item no pode ser alterado (que s show)?
22. Usando as imagens BD nos formulrios?
23. Como passar parmetros para um formulrio ou relatrio?
24. Usando os parmetros de um relatrio sobre a consulta?
25. Como remover a janela que lhe pede os parmetros de um relatrio?
26. Posso usar uma lista dinmica de uma chave primria ou uma chave estrangeira
utilizada em um relacionamento?
27. Eu gostaria de entrar um formulrio, execute_query ser feito automaticamente
com um campo de preenchimento. Como eu fao?
28. Como passar parmetros de uma forma para outra?
29. Como sabe que eu valor escolhido de um grupo de Radio Button?
30. Como eu sei se eu definir uma caixa de seleo?
31. Como aumentar o campo se voc usar seqncias de cdigo?
32. Como aumentar o cdigo de rea, se eu tenho uma carta antes do nmero?
33. Quero criar uma tabela onde voc tem um tempo de verificao da data atual
Como posso fazer isso?
34. Como fao para torn-lo olhar apenas no meu formulrio parte de uma tabela
que atenda a determinadas caractersticas?
35. Eu tenho um nmero de blocos de dados na mesma forma e no esto
relacionados (por exemplo, vrias abas) e executar um execute_query (Executar
consulta) Eu s enche o primeiro enchendo-os de que outra forma?
36. Eu tenho uma especializao e ter problemas com a generalizao para mostrar
como eu fao isso?
37. Eu quero fazer um insert / update dentro de um gatilho, mas ele no funciona
como posso faz-lo funcionar?
38. Devemos entregar o design da aplicao de novo?
39. Como devo me preparar meus arquivos de aplicativos para que voc no me d
problemas com caminhos (path)?

respostas

1.

Qual verso do desenvolvedor instalado?

melhor instalar o que instalado em salas de aula pratica ETSII o 6i,


desde a apresentao do pedido ser naquelas salas de aula. Se voc usar um
superior (9i ou 10g) provavelmente no vai funcionar e voc tem que ter o
seu prprio computador.

2. Qual verso do Oracle instalado?

O mais simples instalar apenas desenvolvedor e voc conect-lo ao ETSII


banco de dados, mas esta ligao necessidade internet. Se preferir a trabalhar
localmente siga as instrues no tutorial de instalao .

3. Como conectar Oracle Developer com a Oracle ETSII base de dados?

Para acessar o servidor Oracle remotamente pode ser feito usando o


aplicativo SQL Net Easy Configuration (dependendo da verso do
desenvolvedor tambm pode ligar para o Oracle Net8 Easy Config ou Net
Configuration Assistant ). Os passos a seguir so:

o criar / adicionar um alias (ou um novo servio ou configurar mtodos de


nomeao), por exemplo, voc pode chamar BD2 (chamados apelido,
nome do servio ou o nome do servio de rede)
o usando TCP / IP. Nenhuma mudana (se for permitido) a porta
padro 1521
o Para usar como um servidor TCP / IP (nome do host) oracle0.ugr.es

. Seria aconselhvel verificar antes que voc possa acessar esse servidor
para ele a partir do MS-DOS (prompt de comando) poned "ping
oracle0.ugr.es" se nenhuma resposta provvel que tenha cado o
servidor.

o O exemplo da base de dados (exemplo base de dados ou banco de dados


SID) PRACTBD

Assim, para se conectar ao banco de dados (em SQL Plus e Developer), voc
ter a seqncia de usurio, senha e conexo de colocar o alias criado (por
exemplo, BD2)

4. Como conectar Oracle Developer com banco de dados Oracle do meu


computador?

O primeiro para usar o usurio criado porque ele vai se conectar aos SYS
ou sistema de usurios. Se ainda no estiver conectado, tente definir um alias
(como acima). Onde a instncia do banco de dados (SID) o nico que voc
criou eo servidor localhost . Assim, para se conectar ao banco de dados (em
SQL Plus e Developer), voc vai precisar do usurio, senha e cadeia de
ligao colocar o alias criado.

5. I no se conectar ao banco de dados Oracle de ETSIIQu acontece?

Supondo que voc seguiu todos os passos corretamente e que o firewall no


fecha a porta 1521. Temos que ter certeza de que est a ligar rede da
Universidade de Granada por VPN . Em alguns casos, a verso de blocos
Panda Platinum 2005 Acesso a Oracle.

6. Como fao para conectar Oracle Developer com o Oracle Database XE?

Para se conectar a Oracle Developer 6i Formas XE deve fazer o seguinte:

1. primeiro instalar desenvolvedor 6i Forms.


2. A Oracle XE instalar (Isso com o objetivo de que as variveis de
ambiente deve ser o primeiro a caminho do Oracle XE)
3. Certifique-se de que o registro do Windows:

HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE

a varivel tem o valor NET80


C: \ ORANT \ NET80

4. No caminho C: \ ORANT \ NET80 \ ADMIN so os arquivos


tnsnames.ora e SQLNET.ORA, voc deve fazer um backup deles e
substitu-los por instalar o Oracle XE na rota
5. C: \ OracleXE \ app \ oracle \ product \ 10.2.0 \ server \
NETWORK \ ADMIN
6. Finalmente, devemos execute o seguinte a partir de uma Ventada DOS:
7. C: \> sqlplus / nolog
8. SQL> connect / as sysdba
9. Conectado.
10. SQL> desligamento imediato
11. SQL> inicializao restringir
12. SQL> alter database conjunto de caracteres UTF8
internal_use;
13. SQL> desligamento imediato
14. SQL> inicializao

Nota: Este para conexo com erro do Oracle XE sem janelas.

15. Para fazer login:


16. Nome de usurio: sistema
17. Password: (palavra-passe que colocou ao instalar o
Oracle XE)
18. Base de dados: XE

E isso deve funcionar.

7. Como fazer referncia a uma chave estrangeira com dois campos?

Suponha que temos uma chave primria na tabela de Fornecedor cuja chave
primria nome e endereo e uma tabela que relaciona distribui produtos
anteriores com uma tabela cujos campos so nome, endereo e
ProductCode. Como cri-la seria o prximo:
Distribui CREATE TABLE (
Nome VARCHAR (10), / * Fornecedor Referncia
(Name) * /
Endereo VARCHAR (25), / * Referncia
Fornecedor (Name) * /
CodigoProdcuto INTEIRO REFERNCIAS Produtos
(bacalhau), / * Referncia do produto (COD) * /

/ * A chave primria so os 3 cursos, muitos-


para-muitos) * /
CONSTRAINT ClavePrimariaDistribuye
PRIMARY KEY (nome, endereo, ProductCode)

/ * Os campos de chave estrangeira so dois


mesa provedor * /
CONSTRAINT ClaveExternaDobleProveedort
FOREIGN KEY (nome, endereo) Referncias
Provider (nome, endereo)
);
8. Como fao para armazenar horas Oracle ou datas e horas?

Usando a data tipo de dados e funo SET_DATE, que tem dois argumentos
uma data / hora e outra no formato que segue a data e hora. Por exemplo, se
queremos manter um encontro com um cliente um dia e um certo tempo seria
Inserir valores de namoro (to_date '11223344X' ('06 /
06/2006 20: 00: 00' , 'dd / mm / aaaa: hh24: mi: ss'));

Gostaria de manter um compromisso com o cliente 11223344X em 6 de


Junho de 2006, s 20:00. Se queremos salvar apenas a data
Inserir valores namoro (to_date '11223344X' (
'2006/06/06', 'dd / mm / aaaa'));

ou apenas o tempo
Datando INSERT INTO VALUES (to_date '11223344X' ('20:
00: 00 '' hh24: mi: ss'));

Em desenvolvedor no propriedades elementos paleta Tipo de dados Data


uma propriedade que serve para definir o formato a utilizar na data
mencionada mscara de formato utilizando o mesmo formato que o
TO_DATE funo

9. Eu no recuperar de desenvolvedor, mas h registros de SQL Plus para me


fazer ir selecione os dados que?

Depois de criar tabelas e inserindo os dados brutos que voc tem que fazer
um commit;

10. Como usar as minhas fotos para decorar formulrios / relatrios?

De File-> Import-> Imagem e de l voc pode abrir uma imagem que voc
incorporado no formulrio ou relatrio Nem todos os tipos de formatos de
imagem so suportados, mas o mais comum.

11. Como gerar valores consecutivos (cdigo) para um campo de um


formulrio?

Usando este campo (por exemplo, cdigo) no bloco de dados (por exemplo,
produtos) usada, mas no mostr-lo (isto feito no assistente de design). Em
seguida, a partir do gatilho pre-commit escrever SELECT MAX (cdigo) +1
EM: Eu productos.codigo DE tabla_productos;

12. Como comear com os valores do formulrio sem pressionar o boto


execute_query / ejecuta_consulta?

Colocar dentro do gatilho QUANDO-NOVO-FORM-exemplo, o corpo linha


execute_query;

13. Eu uso uma LOV e executar o formulrio fico na lista de valores da barra
de status Lista de Valores LOV mas no / mostrado Por qu?

Voc tem que colocar a propriedade de exibio LOV automtica se. Se voc
quiser que no est a visualizar automaticamente o que voc no colocar e
quando voc pressiona F9 desejado seja exibido.

14. Como fazer um acesso identificado para a minha aplicao?

Vamos fazer um acesso identificado o exemplo tutorial, vamos usar o nome


do funcionrio e idade como senha de login. O que vamos fazer usar
identificou o acesso para formar recursos humanos (telas Loz tabulares) A
primeira coisa que vamos fazer criar um formulrio (que chamaremos de
acesso) com um bloco de dados com base na tabela Pessoa, onde um nico
registro exibido . Adicionar um boto OK, outra limpa e outra de sada.
De modo que no esto mostrando a senha (campo de idade) para fazer uma
ejecutar_consulta tem que deixar suas propriedades e colocar escondido
elemento de dados Si eo banco de dados No
Para cada boto definir um gatilho quando pressionado-BUTTON (para cada
boto no para toda a forma), onde o cdigo do boto OK seria:
DECLARE
cursor selecionar idade do usurio, nome FROM pessoa WHERE
name =: persona.nombre;
% Tipo de utilizador rowtype;
ignora o nmero de;

BEGIN

utilizador aberta;
buscar utilizador em tipo;

se: persona.edad = tipo.edad Ento


/ * Se queremos que o formulrio de login no usado perto
OPEN_FORM ( 'gesto de recursos humanos');
CLEAR_FORM (NO_VALIDATE);
* /
/ * Abra o novo formulrio e fechar o acesso * /
CALL_FORM ( 'gesto de recursos humanos');
exit_form;
mais
/ * Em caso de falha, mostramos um alerta dizendo que h um
acesso errado * /
ignora: = Show_Alert ( 'errorAcceso');
/ * Ns limpar para comear de novo * /
CLEAR_FORM (NO_VALIDATE);
end if;

prximo do utilizador;
END;

Ns notar que quando um erro chamado para alertar errorAcceso , portanto,


deve ser criado. Pode ser usado tanto CALL_FORM como OPEN_FORM se
voc quiser para ver as diferenas ou se voc gostaria de usar parmetros para
chamar o formulrio, procure a ajuda on-line do Oracle Developer.
Excluir cdigo do boto que clear_form (no_validate); eo boto Exit
srio exit_form;
Se a senha usada para cadeias de texto ao declarar campos VARCHAR deve
ser usado, se usarmos CHAR no vai funcionar.

15. Como executar um relatrio form / separado que estamos usando para
empurrar um boto?

Seria anlogo como j posta em causa antes de a principal forma de acesso


formulrio.

16. Como escolher diferentes opes apresentam um formulrio?

Usando parmetros, bem como nos relatrios.

17. Em uma forma que eu quero para preencher um campo dar um boto e me
encher o resto dos campos Como posso fazer isso?

Suponha que desejamos preencher o campo Nome (exemplo tabular tutorial


serve telas). Damos a tecla Enter Consulta (Enter consulta) preencher o nome
(por exemplo Ramon) e dar o boto Executar consulta.
Se queremos no usar estes dois botes e torn-lo de modo que apenas o
nome inserido e d -lo a um boto, criaria um novo boto, a quem
ns associar um gatilho quando pressionado-BUTTON onde colocar o
cdigo execute_query; e o gatilho QUANDO-NEW-FORM-INSTNCIA
adicionar o formulrio linha enter_query; .

18. Como posso apagar a tupla atual mostrado em um formulrio,


pressionando um boto?

Iria adicionar um boto com um gatilho quando pressionado-BUTTON cujo


cdigo seria delete_record; e qual seria limpar o registo que est sendo
exibido

19. Eu recebo o erro FRM-402002: Por favor insira um valor no elemento como
fao para remover?

Isso ocorre quando o campo de formulrio tem a propriedade conjunto


obrigatrio para Sim. Basta mud-lo para No, mas se o que voc quer
forar o usurio para inserir dados em um campo sem usar esse recurso
Oracle, voc teria que o check-in um gatilho que o contedo no est vazia.

20. Como posso modelar um relacionamento muitos para muitos?

Suponha que temos um longo relacionamento entre o carro muitas entidades,


as caractersticas e a relao que voc tem. Se normalmente fazemos, criamos
o Bloco Carro de dados, em seguida, relacion-la a ter e, finalmente,
adicionar o bloco de dados caractersticas relacionadas com o bloco tem,
vamos sair todos os carros tem uma caracterstica sozinho, se ns
visualizamos os campos bloquear dados ver que para cada carro so todas
as entradas da tabela tem e para cada um desses shows de apenas uma
caracterstica.
Se quisermos ver todas as caractersticas de cada carro a soluo mais fcil
criar uma viso que tem absorvente e caracterticas, e ao executar o
formulrio feita com dois blocos, um para dados e outro para a viso carro
criado.

21. Como posso fazer um item no pode ser alterado (que s show)?

Para cada item que voc no quer ser modificado activale propriedade
Enabled como No

22. Usando imagens de BD para formulrios?

Faremos isso de uma forma simples, em um campo de uma tabela ir manter


o caminho para a imagem (path) e formar o que ser lido a partir de uma
imagem de arquivo cujo caminho nos d o banco de dados e exibi-lo no
formulrio . importante que essa rota simples (portabilidade de aplicaes
para ETSII) e existem os arquivos com imagens.
Vamos supor que no exemplo fazenda na tabela tem um campo denominado
pessoa Foto , onde ns armazenar o caminho para a imagem da
pessoa. Quando ns construir o bloco de dados na mesa da Pessoa tambm
vamos escolher o campo de imagem, mas no o show.
Uma vez que o bloco de dados para Persona criado em DesignEditor criar um
elemento de imagem (cone com uma paisagem), que vai mudar o nome para,
por exemplo, IMAGENFOTO e alterar o banco de dados de propriedade Item
No ea propriedade necessrio para No.
Para o bloco de dados individuais criar um gatilho PS-BLOCO cujo cdigo
READ_IMAGE_FILE (: Persona.foto, 'JPG',
'Persona.IMAGENFOTO'); onde dizemos que uma imagem lidos de um
arquivo (que d: Persona.foto) e coloc -lo em um elemento de imagem
(chamado 'Persona.IMAGENFOTO'). Se voc quiser para saber mais sobre o
gatilho POST-BLOCK ou funo READ_IMAGE_FILE olhada na ajuda on-
line Developer.

23. Como passar parmetros para um formulrio ou relatrio?

Se usamos CALL_FORM, OPEN_FORM (tanto para formas e ter uma forma


que aceita uma lista de parmetros) ou run_product (que serve ambas as
formas e para relatrios) temos que definir uma lista de parmetros e
adicionar o parmetro de um por um. Por exemplo:
DECLARE
parmetros paramList; / * Definir a lista de argumentos * /
BEGIN
/ * Criar a lista de parmetros * /
parmetros: = Create_Parameter_List ( 'Dados');

/ * Ns adicionamos parmetros * /
Add_parameter (parmetros, 'empregado', TEXT_Parameter ,:
persona.nombre);
Add_parameter (parmetros, 'tipo', TEXT_Parameter,
'Pagamento');

/ * Chame um relatrio com parmetros * /


Run_product (relatrios, 'LibroContabilidadEmpleadoTipo',
sncrono, tempo de execuo, sistema de arquivos, parmetros,
null);
END;
No exemplo acima, podemos adicionar lista de parmetros
chamados parmetros dois parmetros de texto (TEXT_PARAMETER)
cujos nomes so empregado e tipo eo primeiro que passar o valor de um
campo de tomar um bloco de dados ( persona.nombre ) e segunda passamos
uma string ( 'Pago').

24. Usando os parmetros de um relatrio sobre a consulta?

No Report Builder, que iniciou o assistente e criar uma consulta temporria


que no usa parmetros.
Uma vez que voc criar a consulta, a partir do usurio localizador de objectos
criados dois parmetros com seus nomes e tipos (seguindo o exemplo acima
colocamos Employee e digitar usando o tipo de dados Cararacter). Relatrios
executar o Asitente na guia dados e modificar a consulta para usar os
parmetros (no nosso caso seria, por exemplo, SELECT * FROM pessoa =
librocuentas Onde: empregado E TipoOperacion =: tipo; )

25. Como remover a janela que lhe pede os parmetros de um relatrio?

A partir do Reports Builder com o relatrio aberto, que v para Ferramentas>


Configuraes construtor de tela. Deixar em branco do ttulo, a linha da linha
de indicao de estado e tambm anular a seleco esses atributos que foram
seleccionados na lista.

26. Posso usar uma lista dinmica de uma chave primria ou uma chave
estrangeira utilizada em um relacionamento?

No deve ser, porque a lista est vazia no incio (s tem o padro) e,


posteriormente preenchido quando o formulrio criado, se a chave primria
vazio ou o vazio no possvel recuperar os dados tanto da chave estrangeira
de base dados, nem boas relaes.
Seria aconselhvel usar bloco LOV.

27. Eu gostaria de entrar um formulrio, execute_query ser feito


automaticamente com um campo de preenchimento. Como eu fao?

Suponha que ns queremos fazer na forma de Recursos Humanos sempre


comear a mostrar o empregado 'Ignacio'. Para isso, o gatilho quando-NEW-
FORM-INSTNCIA forma adicione o seguinte cdigo:

DECLARE

bloquedatos bloco;
BEGIN
/ * Ns estamos indo para bloquear dados que deseja consultar *
/
bloquedatos: = Find_Block ( 'pessoa');

/ * Ns modificar a clusula WHERE do bloco de dados * /


SET_BLOCK_PROPERTY (bloquedatos, DEFAULT_WHERE, 'nome ='
'Ignacio' '');

/ * Executar a consulta * /
execute_query;
END;

28. Como passar parmetros de uma forma para outra?

Suponha-se que o formulrio de login, dando o boto OK queremos que o


nome do funcionrio que foi identificado de modo que na forma de gesto de
recursos humanos (chamador para acesso) vai nos mostrar que dados dos
funcionrios passado.
A primeira coisa que voc tem a fazer modificar o boto OK cdigo no
formulrio para enviar o acesso o nome do funcionrio como um parmetro
para chamar o formulrio gesto de recursos humanos:
utilizador aberta;
buscar utilizador em tipo;

se: persona.edad = tipo.edad Ento

/ * Criar a lista de parmetros * /


parmetros: = Create_Parameter_List ( 'Dados');

/ * Ns adicionar a pessoa como um parmetro foi


identificado * /
Add_parameter (parmetros, 'empregado',
TEXT_Parameter ,: persona.nombre);

/ * Chamar o formulrio de Recursos Humanos * /


Run_product (formulrios, 'gesto de recursos
humanos', sncrono, tempo de execuo, sistema de arquivos,
parmetros, null);
/ * Feche o acesso * /
exit_form;
mais
/ * Em caso de falha, mostramos um alerta dizendo que h um
acesso errado * /
ignora: = Show_Alert ( 'errorAcceso');
/ * Ns limpar para comear de novo * /
CLEAR_FORM (NO_VALIDATE);
end if;

prximo do utilizador;
END;

A segunda coisa que fazer modificar a forma de gesto de recursos


humanos para ser inicializado com a pessoa que passado como
um parmetro. Ns andamos antes temos que definir um novo parmetro no
navegador de objeto (dando-lhe criar) e dar o nome do funcionrio (o nome
que ns chamamos da forma de acesso) e de carter tipo. Em seguida,
modificar o gatilho QUANDO-NOVO-FORM-INSTANCE como na
pergunta anterior, mas alterando a linha SET_BLOCK_PROPERTY
(bloquedatos, DEFAULT_WHERE, 'nome =' 'Ignacio'
''); por SET_BLOCK_PROPERTY (bloquedatos, DEFAULT_WHERE, 'nome
=: Parameter.empleado'); .
29. Como sabe que eu valor escolhido de um grupo de Radio Button?

Para cada boto de um grupo de botes de rdio, temos de ativar a


propriedade de rdio boto valor para um valor diferente, por exemplo, 1, 2 e
3, se temos trs botes. Em seguida, para descobrir o que de valor, se o grupo
de boto de opo chamado GBRADIo e est na pessoa bloco de dados,
devemos comparar: Persona.gbradio com 0, 1 e 2 para saber qual boto
ativado. Para o grupo de botes de rdio (GBRADIO no nosso caso) ter que
colocar a propriedade ValorInicial a um dos valores inseridos no boto de
rdio, por exemplo, 1 para que est marcada por padro.

30. Como eu sei se eu definir uma caixa de seleo?

Ns vamos ter que inicilizar valor da propriedade se verificado e valor Se no


comprovada, por exemplo, 1 e 0, a primeira se marcados eo segundo se
no. Em seguida, descobrir qual o valor que, se a caixa de seleo chamada
MiCheckBox e est na pessoa bloco de dados, devemos comparar:
Persona.micheckbox com 1 ou 0 para determinar se eles so ativados ou no.

31. Como aumentar o campo se voc usar seqncias de cdigo?

Como quando vimos isso na questo como para gerar valores consecutivos
(cdigo) para um campo de um formulrio? mas podemos colocar SELECT
INTO misecuencia.NEXTVAL: Eu productos.codigo DE dual;

32. Como para aumentar o cdigo de rea, se eu tenho uma letra antes do
nmero?

Basicamente, como mostrado no seguinte cdigo:


DECLARE
VARCHAR2 seqncia1 (50);
VARCHAR2 seqncia2 (50);
nmero de srie;

BEGIN
/ * Vou levar o substring que tem o nmero * /
cadeia1: = substr (: Productos.codigo.texto, 2, comprimento (:
Productos.codigo));

/ * O passo nmero * /
nmero: = to_number (seqncia1);

/ * O aumento * /
nmero: = nmero + 1;
/ * O que eu passar uma string * /
seqncia2: = TO_CHAR (nmero);

/ * Ns adicionamos a letra o princpio * /


string1: = 'T' || string2;

/ * Atualizado a tecla * /
: Prodcutos.codigo: = seqncia1;

END;
Deve-se ter em mente que este projetado para cdigos que tm uma nica
letra (T) antes de um nmero que aumenta encontrado na forma (para obter o
mximo da mesa poderia fazer com um SELECT por ordem INTO com uma
ordem para isso).

33. Quero criar uma tabela onde voc tem um tempo de verificao da data
atual Como posso fazer isso?

Voc no pode fazer, porque voc no pode usar SYSTIME na criao de


tabelas. Note-se que a tabela criada uma vez e use SYSTIME em uma
clusula verificar seria algo dinmico. Para fazer isso, voc pode usar triggers
(gatilhos) dentro do banco de dados, mas isso um pouco fora de nossos
objetivos, o ideal fazer verificaes em nosso aplicativo.

34. Como fao para torn-lo olhar apenas no meu formulrio parte de uma
tabela que atenda a determinadas caractersticas?

Os blocos de dados de nossos formulrios so consultas ao banco de dados,


mas eles no tm, por padro, uma clusula WHERE. Esta clusula WHERE
pode ser definida nas propriedades paleta blocos de dados algo que fizemos
em PL / SQL nas questes 24 e 25.

35. Eu tenho um nmero de blocos de dados na mesma forma e no esto


relacionados (por exemplo, vrias abas) e executar um execute_query
(Executar consulta) Eu s enche o primeiro enchendo-os de que outra
forma?

Cada enchimento separadamente o gatilho QUANDO-NOVO-FORM-


INSTANCE:
Go_block ( 'librodecuentas');
execute_query;
Go_block ( 'Pessoas');
execute_query;
Go_block ( 'funcionrios');
execute_query;
Go_block ( 'alojamento');
execute_query;

36. Eu tenho uma especializao e ter problemas com a generalizao para


mostrar como eu fao isso?

Como quaisquer outras duas tabelas que esto relacionadas, se voc ainda
tiver problemas, voc pode usar a fim de participar de todos os campos de
ambas as tabelas

37. Eu quero fazer um um insert / update dentro de um gatilho, mas ele no


funciona como posso faz-lo funcionar?

Este problema ocorre normalmente quando temos um bloco de dados de uma


tabela no banco de dados e deseja executar alguma operao nessa tabela. O
problema que abre a tabela Forms (para uso, lgico) e os blocos de modo
que qualquer operao de insero / atualizao sobre esta tabela falhar. A
nica soluo para este problema no usar essa tabela para construir um
bloco de dados (e construir o bloco de dados preenchendo manualmente
dados de PL / SQL), ou, utilizando o formulrio para adicionar registros /
atualizao no banco de dados dados.

38. Devemos entregar o design da aplicao de novo?

Sim. devido a correes de bugs, j indicados no seu dia.

39. Como devo me preparar meus arquivos de aplicativos para que voc no
me d problemas com caminhos (path)?

Idealmente, todos os arquivos estavam em um CD e poderia correr de


l. Embora voc tambm pode optar por salvar todos os arquivos em um
diretrio (ou estrutura simples) que pendurar a partir C: e indicam muito
claramente na entrega.