Guião para criar aplicações simples em APEX (parte II) Guide to create simple Apex applications (part II)

Documentos relacionados
Guião para criar aplicações simples em APEX (parte II) Guide to create simple Apex applications (part II)

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (parte II)

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I)

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

Guião para criar aplicações simples em APEX (parte I) Guide to create simple Apex applications (part I)

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

FCT-NOVA - Bases de Dados 2016/2017. Ficha 3. Relational Algebra Exercises

VGM. VGM information. ALIANÇA VGM WEB PORTAL USER GUIDE June 2016

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

FCT-NOVA - Bases de Dados 2016/2017. Ficha 4 - SQL. Considere o seguinte diagrama E-R e o correspondente esquema da Base de Dados:

How to use the system. Meike Borstelmann

Vaporpunk - A fazenda-relógio (Portuguese Edition)

Addition of Fields in Line Item Display Report Output for TCode FBL1N/FBL5N

COMPUTAÇÃO E PROGRAMAÇÃO

User Guide Manual de Utilizador

User Manual. Linksys PAP2 Broadband Phone Service. Linhagratuita grupo csdata

VGM. VGM information. ALIANÇA VGM WEB PORTAL USER GUIDE September 2016

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition)

UNIT 5: Review (UNIDADE 5: Revisão)

Tutorial para Phred/Phrap/Consed Tutorial

Já Chegou Aos Confins Da Terra. E Agora? (Portuguese Edition)

Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition)

Princípios de Direito Previdenciário (Portuguese Edition)

Computação e Programação 2009 / 2010

DIBELS TM. Portuguese Translations of Administration Directions

Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition)

A dança do corpo vestido: Um estudo do desenvolvimento do figurino de balé clássico até o século XIX (Portuguese Edition)

Computação e Programação 2009 / 2010

Conversação Para Viagem - Inglês (Michaelis Tour) (Portuguese Edition)

Meditacao da Luz: O Caminho da Simplicidade

Step by step to make the appointment at the Federal Police

Aprendi A Fazer Sexo Na Bíblia (Portuguese Edition)

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition)

GUIÃO F. Grupo: Minho. 1º Momento. Intervenientes e Tempos. Descrição das actividades

Livro do Desassossego

GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI

Units 3 and 4. 3rd Bimester Content. Future Predictions. Life events. Personality adjectives. English - Leonardo Bérenger and Aline Martins

Certificação PMP: Alinhado com o PMBOK Guide 5ª edição (Portuguese Edition)

Better Cotton Tracer. Instructions for ABRAPA S Farms Instruções para Fazendas da ABRAPA. April 2018

Erros Escatológicos que os Pregadores Devem Evitar (Portuguese Edition)

Transformando Pessoas - Coaching, PNL e Simplicidade no processo de mudancas (Portuguese Edition)

Primavera Risk Analysis v8.7

Biscuit - potes (Coleção Artesanato) (Portuguese Edition)

Pesquisas em Bases de Dados com SQL

PURCHASE-TO-PAY SOLUTIONS

Dermatologia Clínica. Guia Colorido Para Diagnostico e Tratamento (Em Portuguese do Brasil)

PROVA DE EXATAS QUESTÕES EM PORTUGUÊS:

/ʌ/ /ɑ:/ /e/ /æ/ /i:/ /ɪ/ /ʌ/ /ɑ:/ /e/ Sun Sol. Arm Braço

GUIÃO I. Grupo: Continente e Ilha. 1º Momento. Intervenientes e Tempos. Descrição das actividades

Como escrever para o Enem: roteiro para uma redação nota (Portuguese Edition)

Minhas lembranças de Leminski (Portuguese Edition)

Reabilitação Neurológica (Em Portuguese do Brasil)

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Statecharts Yakindu Tool

Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition)

O Livro dos Espíritos - Tradução Evandro Noleto Bezerra (Portuguese Edition)

Dermatologia Clínica. Guia Colorido Para Diagnostico e Tratamento (Em Portuguese do Brasil)

Métodos Formais em Engenharia de Software. VDMToolTutorial

Editorial Review. Users Review

O PRíNCIPE FELIZ E OUTRAS HISTóRIAS (EDIçãO BILíNGUE) (PORTUGUESE EDITION) BY OSCAR WILDE

Modelagem de Processos com BPMN (2ª edição) (Portuguese Edition)

Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition)

Como Mudar a Senha do Roteador Pelo IP o.1.1. Configure e Altere a Senha do seu Roteador acessando o IP Acesse o Site e Confira!

Guerra Irregular: terrorismo, guerrilha e movimentos de resistência ao longo da história (Portuguese Edition)

O sistema único de assistência social no Brasil: uma realidade em movimento (Portuguese Edition)

ATLAS COLORIDO DE ANATOMIA VETERINáRIA DE EQUINOS (EM PORTUGUESE DO BRASIL) BY STANLEY H. ASHDOWN RAYMOND R. DONE

Curso Completo de Memorização (Portuguese Edition)

Ética na Propaganda (Portuguese Edition)

CANape/vSignalyzer. Data Mining and Report Examples Offline Analysis V

Atividade Física Adaptada: Qualidade de Vida para Pessoas com Necessidades Especiais (Portuguese Edition)

Como testar componentes eletrônicos - volume 1 (Portuguese Edition)

Os 7 Hábitos das Pessoas Altamente Eficazes (Portuguese Edition)

Pesquisa de Marketing: Uma Orientação Aplicada (Portuguese Edition)

User's Guide. Manual de Utilizador

Aspectos Multidisciplinares das Artes Marciais: 1 (Portuguese Edition)

PORTAL USF-AN FORMAÇÃO

Medicina Integrativa - A Cura pelo Equilíbrio (Portuguese Edition)

Gerenciamento Pelas Diretrizes (Portuguese Edition)

PI 3.2. Criação de molde definido pelo utilizador CLI com comando da linha única e da múltipla linha

Labrador: Guia prático ilustrado (Coleção Pet Criador) (Portuguese Edition)

TDD Desenvolvimento Guiado por Testes (Portuguese Edition)

A oração de Jabez: Alcançando a bênção de Deus (Portuguese Edition)

A Vivência do Evangelho Segundo o Espiritismo (Portuguese Edition)

Chica da Silva e o Contratador Dos Diamantes: O Outro Lado Do Mito

Aposentadoria e INSS: Entenda como funcionam e defenda-se (Coleção Seus Direitos) (Portuguese Edition)

Comportamento Organizacional: O Comportamento Humano no Trabalho (Portuguese Edition)

Conceitos de Linguagens de Programação (Portuguese Edition)

As 100 melhores piadas de todos os tempos (Portuguese Edition)

O Jardim Secreto - Coleção Reencontro Infantil (Em Portuguese do Brasil)

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition)

Letramento literário: teoria e prática (Portuguese Edition)

Descrição das actividades

Planejamento de comunicação integrada (Portuguese Edition)

Pensamento geográfico brasileiro - vol 1 - as matrizes clássicas originárias, O (Portuguese Edition)

Adoção: guia prático doutrinário e processual com as alterações da Lei n , de 3/8/2009 (Portuguese Edition)

MySQL: Comece com o principal banco de dados open source do mercado (Portuguese Edition)

Transcrição:

Guião para criar aplicações simples em APEX (parte II) Guide to create simple Apex applications (part II) Vamos criar duas funções: uma que devolve quantos alugueres foram feitos por sócio; outra que calcula a média do número de alugueres por mês de um sócio. Let us create two functions: one that returns how many rents (alugueres) were made per sócio (member); another one that calculates the average number of rentals per month of a sócio. Ambas as funcões são criadas em SQL workshop/ Sqldeveloper Both functions are created in SQL worshop/ Sqldeveloper like this: create or replace function num_alugueres(n_socio number) return number is n_alugueres number; begin select count(*) into n_alugueres from aluguer where num_socio = n_socio; return n_alugueres; end num_alugueres; create or replace function media_mes(n_socio number) return number is media number; begin with socio_cont_mes as (select count(*) as cnt from aluguer where num_socio = n_socio group by to_char(data_aluguer,'mon- YYYY')) select avg(cnt) into media from socio_cont_mes; return media; end media_mes; No Apex, clique em SQL workshop / in Apex click SQL workshop

Agora clique em SQL script onde escreverá os comandos para criar a função; sempre que a edição de um comando tem um número de caracteres suficiente para que seja provável a ocorrência de erros sintáticos é preferível criar um script porque nele é mais cómodo corrigir o erro. Now click on the SQL script where you will write the commands to create the functions; whenever editing a command has a sufficient number of characters so that syntactic errors are likely to occur, it is preferable to create a script because it is more convenient to correct the error in the script. Edite o script e dê-lhe um nome (ex:myfunctions); entre os dois comandos escreva uma barra / (sem as aspas) Edit the script and give it a name (ex: MyFunctions); between the commands write a bar / (without ).

Depois clique em save e depois em run / then clique save and then Run. E confime que quer correr o script / and confirm the you want to run the script.

Depois clique em View Results (à direira na linha do script MyFunctions) e verifique se o script correu com zero (0) erros. Se houver erros corrija e corra de novo. Then click at View Results (right in the MyFunctions script line) if the script ran with zero (0) errors. In case of errors, correct it and run it again. Agora vamos acrescentar duas colunas ao Relatório do sócio Now we are going to add two columns in the Relatório do socio. Para tal, na zona Page Rendering, Content Body, clique em Report 1 e em seguida, à direira em source, clique em SQL query: To do so, in the Page Rendering, Content Body zone, click on Report 1 and then on the right, next to source, click SQL query:

Depois, editar na janela o seguinte / Then edit the following in windown zone: select NUM_SOCIO as numero, NOME_SOCIO as nome, BI_SOCIO as BI,DATA_NSC_SOCIO as "Nasceu em", MORADA_SOCIO as Morada, TLF_SOCIO as Tlf, SEXO_SOCIO as Sexo, num_alugueres(num_socio) as "Tot Alugueres", media_mes(num_socio) as "Media mensal" from socio Depois faça Ok e corra a página /then click Ok and Run the page.

Usar List of Values para esconder códigos Using List of Values to hide codes Vamos criar um form para manipulação dos dados em Filme mas sem ter que conhecer os códidos de editora e de género We are going to create a form to manipulate data in Filme but without the need of knowing the codes of editora and genero. Vamos então criar uma nova página (Create Page) / Let us creat ea new Page (Create Page) Do tipo Form / of type Form E /and Report with form

E Preencha como na figura / And Fill in as shown Depois de Next, indique que quer aceder a esta página a partir da página inicial Home After Next, indicate that you want to access this page from the home page Home

En seguida esscolha a tabela Filme / Next choose table Filme Then choose cod_filme as primary key

Também aqui, temos que atribuir automaticamente o valor de cod_filme, agora através da sequência seq_filme. Faça como se fez para o caso da atribuição automática do num_sócio no form dos sócios. Here, we have also to automatically assign the value of cod_filme, now through the sequence seq_filme. Do as in the case of automatic assignment of the num_socio in the socio form. Para além de ver códidos de editora e de genero, como era de esperar, se clicar à esquerda num dos lápis de edição, verá novamente os mesmos códigos. O que se pretende é evitar que o utilizador tenha que conhecer os códigos, por isso, vamos alterar este form.

In addition to viewing editora and genero codes, as you would expect, if you left-click one of the edit pencils, you'll see the same codes again. What is intended is to prevent the user from having to know the codes, so we will change this form. Assim, à aplicação e na zona Shared Components clique em List Of Values. Nota: o número da página pode eventualmente ser outro que não o 11; depende do número de remoções de páginas feitas / criadas no contexto do desenvolvimento de uma aplicação. Note: the page number may possibly be other than 11; it depends on the number of page removals made / created in the context of developing an application. So, go back to application (of the form) and in the Shared Components zone click on List Of Values.

Then click Create

Escolha From Scratch / Now select From Scratch Indique o nome Editoras para o nome da lista e selecione Dynamic porque a lista de valores poderá eventualmente alterar-se ao longo do tempo Enter the Editoras as name for the List of Values and select Dynamic because the list of values may eventually change over time Depois preencha como na figura; este é o código gerador da lista de valores. Then fill in as in the figure; this is the generator code of the list. select nome_editora as editora, cod_genero from editora order by 1

Em seguida crie outra List Of Values com o nome generos com o código gerador como se indica / Then create another List Of Values with the name generos with the generator code as indicated select nome_genero as genero, cod_genero from genero order by 1 Agora vamos ligar os cógidos (de editora e de genero) do form a estas listas Now let's connect the form codes (of editora and genero) to these lists. Assim, na página do form click no item cod_genero e à direita, nas característica Type do campo escolha Select List como na figura So, in the form page click in the item cod_genero and to the right, in the Type characteristic of the field choose Select List as in the figure

Depois um pouco mais abaixo, ainda à direita indique Shared Components e o nome da List Of Values generos Then a little lower, still to the right zone, indicate Shared Components and the name of the List Of Values generos Faça o mesmo para o item cod_editora, mas escolhendo a List of Values Editoras Do the same for the item cod_editora, but choosing the List of Values Editoras

Then Run the form page and see that genero and editora is given in lists where we can choose from No entanto, falta alterar o código SQL do Report (página 21) de forma a que se vejam os nomes em vez dos códigos das editora e genero. Para tal edite a página 21 e, na zona Page Rendering, Content Body, clique em Report 1 e altere o SQL comona figura abaixo. However, it is necessary to change the SQL code of the Report (page 21) in order to see the names instead of the editora and genero codes. To do this, edit page 21 and, in the Page Rendering, Content Body area, click on Report 1 and change the SQL as below. select nome_filme as nome,ano_filme as ano,preco_dia_filme as "preco dia",dias_sem_multa_filme as "dias sem multa",multa_dia_filme as "multa dia",nome_genero as genero,nome_editora as editorafrom filme natural inner join editora natural inner join genero

Then run the page and the names (nome_genero and nome_editora) instead of the codes Como criar um Form & Report Apex para uma relação de Muitos para Muitos Apex How to create an Apex Form & Report for an Many to Many relationship Vamos considerer a relação filme_actor que corresponde a uma relação Muitos para Muitos. Crie um Report with Form e preencha os campos de acordo com a figura seguinte:

Let's consider the filme_actor relationship that corresponds to a Many to Many relationship. Create a Report with Form and fill in the fields according to the following figure: Depois crie a ligação da página Home para esta página, assim: Then create the Home page link for this page, like this: A tabela sobre a qual vai funcionar este form é a filme_actor, que deve indicar. The table on which this form will work is the filme_actor, which should be indicated.

Agora, dado que a chave da tabela (composta pelos dois atributos cod_filme e cod_actor) não vai ser gerada automaticamente mas sim escolhida a partir do domínio de valores possíveis para cada caso (cod_filme e cod_actor), vamos escolher Managed by Database (Rowid). Desta maneira não seremos obrigados a escolher trigger nem sequence, que neste contexto são mecanismos para gerar a chave automaticamente. Now, since the table key (composed of the two attributes cod_filme and cod_actor) will not be generated automatically but chosen from the possible domain values for each case (cod_filme and cod_actor), we will choose Managed by Database (Rowid). This way we will not be forced to choose trigger or sequence, which in this context are mechanisms to generate the key automatically. Agora se correr a página do Report verá apenas os códigos de Filme e de Actor, o que não é desejável, já que não queremos ter que saber códigos de cor.

Now if you run the Report page you will only see the Filme and Actor codes, which is not desirable, since we are not supposed to know each particular code value. Vamos então melhorar esta página e a do form de inserção/edição correspondente. Para tal vamos criar duas List of Values. We will then improve this page and the corresponding insert/edit form. For this we will create two List of Values. Assim, e recordando como se declara uma List of Values: Thus, and remembering how to declare a List of Values:

select nome_actor as actor, cod_actor from actor order by 1 E outra List of Values de nome Filmes: And another List of Values of Films: Select nome_filme as Filme, cod_filme from filme order by 1 De seguida é preciso ligar o campo (item) p24_cod_filme à List of Values Filmes e o item p24_cod_actor à List of Values Actores, à semelhança do que já foi feito noutro exercício.

Then you need to connect the field (item) p24_cod_filme to the List of Values Filmes and the item p24_cod_actor to the List of Values Actors, similar to what has already been done in another exercise. First for the cod_filme item Then for the cod_actor item

Corra a página do Form e confirme que já tem acesso às listas dos filmes e dos actores para preenchimento. Run the Form page and confirm that you already have access to the lists of Filmes and Actores to fill out.

Agora há que melhorar o Report, isto é, facultar os nomes dos actores e dos filmes que correspondem aos códicos respectivos. Para tal edite a página do Report (23). Assim, na zona Page Rendering, Content Body, clique em Report 1 e edite o código SQL como indicado na figura abaixo. Now it is necessary to improve the Report, that is, to give the names of the actors and the filmes that correspond to the respective codes. To do this, edit the Report page (23). So, in the Page Rendering, Content Body zone, click Report 1 and edit the SQL code as indicated in the figure below. And edit this sql code as the SQL query

Select nome_filme, nome_actor from filme natural inner join filme_actor natural inner join actor Run the report page Experimente editar um tuplo; crie outro e confime que a interface funciona. Tente também inserir um tuplo que já existe e verá que isso não é possível por tentativa de violação da chave primária, como aqui se mostra: Try editing a tuple; create another one and confirm that the interface works. Also try inserting a tuple that already exists and you will see that this is not possible by attempting to violate the primary key, as shown here:

See, for example, what films has Robert de Niro preformed

Joaquim Francisco Ferreira da Silva Maio de 2109