environnement du développement de...

44
1 Environnement du développement de BD ORACLE FORMS 10g Fahmi Ben Rejab [email protected] Année universitaire 2014/2015 LFIG 2

Upload: trandang

Post on 12-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

1

Environnement du développement de BD

ORACLE FORMS 10g

Fahmi Ben [email protected]

Année universitaire 2014/2015

LFIG 2

2

Objectif

Ce cours permet de se familiariser avec le générateur d'applications

d'Oracle Forms en apportant aux étudiants les connaissances

suivantes:

• Mise en œuvre des fonctionnalités de l'éditeur de présentation

• Connaissance des notions primordiales (module, bloc, item,

déclencheurs)

• Règles internes de fonctionnement du produit (navigation, relation

avec la base, validation)

• Forms et le PL/SQL

Dans les deux derniers diapositif vous trouvez les étapes de configuration

d’oracle forms 10g

3

L'outil de conception s'organise autour de 4 fenêtres principales:

• Le navigateur d'objets

• L'éditeur de présentation (formulaire / menu)

• L'éditeur de code PL/SQL

• La palette de syntaxe

Introduction

4

Le navigateur d'objets

Il affiche l'ensemble des objets

éditables d'une application Forms

organisés en plusieurs sections,

sous la forme d'arborescences.

• Applications Forms

• Menus

• Bibliothèques PL/SQL

• Bibliothèques d'objets

• Packages intégrés

• Objets de la base de données

5

Le navigateur d'objets

La barre d'outils verticale

6

Le navigateur d'objets

La barre d'outils horizontale

• Nouveau formulaire

• Ouvrir

• Enregistrer

• Imprimer

• Couper

• Copier

• Coller

• Connexion

• Compilation

• Exécution

• Exécution avec le débuggeur

• Lancer

• Ligne suivante

• Sauter (en exécutant) la

procédure

• Pause

• Arrêt

• Assistant présentation

• Assistant bloc de données

• Aide

7

L'éditeur de présentation

Il permet de gérer les canevas et donc l'affichage des objets

Il peut être affiché selon quatre méthodes:

• Double-clic sur le nom d'un canevas dans la fenêtre du navigateur d'objets

• Via le menu Outils -> Editeur de présentation

• Touche F2

• Sélection de l'objet puis clic-droit -> Affichage de l'éditeur de présentation

8

L'éditeur de présentation

La barre d'outils horizontale

• En partie haute, deux listes déroulantes permettent de sélectionner le canevas sur

lequel l'on souhaite travailler ainsi que le bloc de données

• En partie basse-gauche, deux listes déroulantes permettent de spécifier le nom et

la taille de la police de caractères

• En partie basse-droite, une liste d'icônes ayant pour fonctionnalité de gauche à

droite:

• Caractères gras

• Caractères italiques

• Caractères soulignés

• Zoom avant

• Zoom arrière

• Alignement

• Passer l'objet devant

• Passer l'objet derrière

9

L'éditeur de présentation

La barre d'outils verticale

10

L'éditeur de présentation

Ajouter des composants sur le canevas

• Pour ajouter un

composant, vérifier d'abord

que le bon canevas et le

bon bloc de données sont

sélectionnés dans les listes

déroulantes de la barre

d'outil horizontale.

• Cliquer un composant dans

la barre d'outils verticale et

cliquer ensuite à l'intérieur

du canevas.

Les objets graphiques

Ces objets ne sont pas

contenus dans un bloc de

données. Ils sont attachés

directement au canevas

11

L'éditeur de présentation

Ils sont rattachés

à un bloc (basé ou non)

Les items

12

L'éditeur des propriétés

Cette fenêtre permet de modifier les

propriétés du ou des objets sélectionnés.

La fenêtre d'affichage des propriétés est

activée avec la touche F4

• Nom désigne le nom interne de l'item

(30 caractères maxi commençant par

une lettre)

• Position X pour fixer la position

horizontale

• Position Y pour fixer la position

verticale

• Type de données indique le type de la

donnée au sens Oracle du terme

• Longueur maximum nombre maximum

de caractères saisissable

13

Les composants d'une application Forms

Une application Forms est constituée d'un ensemble de composants

L'unité de base d'une application Forms est le Module

Un module peut gérer les composants suivants :

• Déclencheurs [Triggers]

• Alertes [Alerts]

• Bibliothèques PL/SQL [Librairies]

• Menus

• Blocs de données [Blocks]

• Canevas [Canvas]

• Editeurs [Editors]

• Liste de valeurs (LOV) [List of values]

• Groupes d'objets [Object groups]

• Paramètres [Parameterss]

• Menus instantanés [Popup menus]

• Unités de programme [Program units]

• Classes de propriété [Property classes]

• Groupes d'enregistrements [Record groups]

• Etats [Reports]

• Attributs visuels [Visual attributes]

• Fenêtres [Windows]

14

Les Déclencheurs

Les déclencheurs contiennent du code exécutable. Ils sont nommés et répondent à des

évènements spécifiques. (programmation évènementielle)

Par exemple

• Le déclencheur When-New-Form-Instance se déclenche au chargement du

module.

• Le déclencheur Pre-Insert se déclenche avant l'insertion d'une ligne en table

• Le déclencheur On-Update se déclenche au moment de la mise à jour d'une ligne

• Le déclencheur Key-Next-Item se déclenche lorsque l'utilisateur se déplace sur

l'item suivant avec la touche Tab.

Il existe cinq familles de déclencheurs

15

Les Déclencheurs

Famille Rôle

PRE-xxx se déclenchent juste avant l'évènement qu'ils désignent. (PRE-DELETE se déclenche juste avant l'ordre de suppression)

ON-xxx se déclenchent à la place de l'évènement qu'ils désignent. (ON-INSERT se déclenche au moment de l'insertion)

When-xxx se déclenchent au moment de l'évènement qu'ils désignent. (WHEN-NEWBLOC-INSTANCE se déclenche lorsque le focus arrive dans un bloc)

Post-xxx se déclenchent juste après l'évènement qu'ils désignent. (POST-COMMIT sedéclenche juste après la validation en base)

key-xxx se déclenchent sur une touche ou combinaison de touches du clavier. (KEYNXTREC se déclenche sur l'appui de la touche sautant à l'enregistrement suivant)

Les déclencheurs peuvent être situés au niveau du module, d'un bloc ou

d'un item.

16

Les alertes

Une alerte est une boite de dialogue munie d'un titre et affichant un

message. Elle dispose de un à trois

boutons configurables afin de récupérer un choix utilisateur.

Elle est utilisée pour présenter un message (d'erreur ou d'avertissement)

auquel l'utilisateur doit répondre

• L'affichage d'une boite d' alerte est réalisé pendant l'exécution en utilisant

la fonction native :

Création d'une alerte

Cliquer sur le nœud : Alertes dans le navigateur d'objets puis sur l'icône

Une nouvelle boite d'alerte est créée avec un nom attribué par le système.

Faire un double-clic sur le nœud de la nouvelle alerte pour afficher la palette

de propriétés.

17

Dans cet exemple, nous avons

besoin d'une alerte munie de

deux boutons :

Oui et Non, avec Oui par défaut

Renommons l'alerte en :

AL_OUI_NON

et ajoutons les propriétés

nécessaires

La propriété : Type d'alerte

permet de choisir le type

d'icône qui apparaîtra dans la

boite.

Fixons le libellé des

deux premiers boutons

et indiquons que le bouton

par défaut sera le premier (Oui)

18

Les blocs de données

Un bloc est dit basé sur une table ou une vue lorsqu'il est physiquement

rattaché à une table ou une vue existante de la base de données.

Un bloc ne peut être basé que sur une seule table ou une seule vue.

En d'autre termes, un même bloc ne peut pas contenir d'items (colonnes)

provenant de plusieurs tables.

• Ajout d'un bloc

Pour ajouter un bloc à la forme, double-cliquer sur le nœud Blocs de

données ou faire un simple clic sur le nœud Blocs de données puis cliquer

sur l'icône

• Utilisation des assistants le bloc sera basé sur une table ou une vue

19

L'écran suivant permet de sélectionner la table ou la vue grâce au bouton

Parcourir…

Les blocs de données

20

Les blocs de données

La fenêtre de gauche (colonnes disponibles) affiche les champs disponibles dans la

table.

21

Les blocs de données

La définition du bloc étant achevée nous passons ensuite à l'étape de présentation

22

Les blocs de données

Création de la présentation: Aucun canevas n'étant disponible, laissons l'option

(Nouveau canevas). Puis dans la zone Type, choisissons un canevas de type Intégral

23

Les blocs de données

Ensuite, nous indiquons si nous souhaitons présenter un ou plusieurs enregistrements

Une présentation de type Formulaire affiche un seul enregistrement dans le bloc.

Une présentation de type tabulaire affiche un tableau de plusieurs enregistrements.

24

Les blocs de données

Voici le résultat de la création de notre bloc.

Forms a créé un item pour chaque colonne de la table avec le type correspondant.

25

Les blocs de données

26

L'appel d'une formeCall form

L 'appel d'une forme consiste à charger un fichier pseudoexécutable (.FMX) en

mémoire.

Ce chargement peut être commandé depuis une ligne de commande du système

d'exploitation, une url saisie dans le navigateur ou depuis une forme préalablement

chargée en mémoire.

Des arguments ou paramètres peuvent être transmis à la forme durant l'appel.

27

L'appel d'une formeCall form

Lorsqu'une forme est chargée en mémoire, la gestion d'une application multi formes

est réalisée avec les fonctions natives suivantes:

• NEW_FORM()

• OPEN_FORM()

• CALL_FORM()

New_Form() remplace la forme présente en mémoire par une autre

Open_Form() ouvre une nouvelle forme indépendante de la forme appelée

Call_Form() ouvre une nouvelle forme dépendante de la forme appelante

Ces fonctions peuvent être appelées depuis une forme, un menu ou une

bibliothèque PL/SQL.

Depuis une autre forme déjà chargée en mémoire

28

L'appel d'une formeCall form

Exemple

BEGIN

CALL_FORM('factures');

END;

L'utilisation de Call_Form() génère une pile de type FIFO.

Il faut quitter la forme appelée pour revenir à la forme appelante.

Les formes sont donc intimement liées entre elles.

Soit la forme A appelant la forme B appelant la forme C:

A et B sont inactives.

Exit_Form() dans la forme C revient à la forme B.

Exit_Form() dans la forme B revient à la forme A.

29

Les boutons

Un bouton de commande permet d'exécuter du code lorsqu'il est cliqué avec la

souris ou déclenché avec le clavier (touche Entrée).

Ce type d'item n'accepte pas de saisie et ne stocke aucune valeur.

Il peut être associé soit à un libellé soit à une image.

- Le code PL/SQL associé doit être placé dans un déclencheur : When-Button-

Pressed.

30

Les boutons

Créer un item Bouton de commande

Depuis l'éditeur de présentation:

• Sélectionner le canevas et le bloc de réception de l'item.

• Cliquer l'icône Image non disponible

• Dessiner sur le canevas un rectangle avec la souris pour délimiter les dimensions

de l'item

Dans les unités des programmes vous développez le code PL/SQL de l’évènement

désiré si on click sur le bouton

31

Trucs

Execute_Query:Ramener l’écran avec les données.

When-NEW-FORM-INSTANCE**********************

32

Ajouter un élément

Ajouter Champs DSP (Affichage)Ramener la valeur du champs:

Après le renseignement de code

When-validate-item

Au lancement de la recherche

Post-Query

33

LOV

• Une liste de valeurs est un outil d'aide à la saisie• Elle se matérialise sous la forme d'une boite de dialogue dans

laquelle sont affichées les valeurs qui correspondent à l'information attendue dans le champ en cours de saisie.

• Une LOV est alimentée par un groupe d'enregistrements (Record group), lui même alimenté par un ordre SELECT

34

LOV: Mise en œuvre

Il existe deux façons de créer une liste de valeurs:

A l'aide de l'assistant

Manuellement

Pour créer une LOV dans la forme en cours, cliquez sur le nœud : LOV dans le

navigateur d'objets puis cliquez sur l'icône , ou double-cliquez sur le nœud :

LOV.

Une boite de dialogue vous demande si vous souhaitez utiliser l'assistant ou créer la

LOV manuellement

35

LOV: Mise en œuvre

Cet écran permet d'indiquer si la LOV sera basée sur un groupe d'enregistrements

existant ou sur un groupe que vous allez définir.

Créons le groupe d'enregistrements

36

LOV: Mise en œuvre

Pour sélectionner l'item de retour de la valeur, cliquez la colonne correspondante

puis sur le bouton : Rechercher l'élément récepteur.Déclenchons l'affichage de la LOV avec les touches Ctrl+L

37

Bloc Maitre Détails

Il est possible de lier plusieurs blocs entre eux à l'aide d'objet Forms appelé : relation.

Cette relation permet de réaliser une « jointure » entre les blocs afin de créer des

associations maître/détail

La relation peut être construite pendant la création du bloc détail, à l'aide de l'assistant

création de bloc, mais aussi manuellement une fois que les blocs sont créés.

Une relation Forms utilise les clés primaires et étrangères des tables pour les joindre

38

Mise en œuvre: Bloc Maitre Détails

Nous allons lister les spécification d’un produit dans la même fenêtre.

Donc nous allons créer un nouveau bloc dans le même module.

39

Mise en œuvre: Bloc Maitre Détails

1- décocher la case.

2- Cliquer sur créer une relation

3- Puisqu'il s'agit de tables relationnelles standard, cliquons l'option : Fondée sur une

condition de jointure

40

Mise en œuvre: Bloc Maitre Détails

puis indiquons le nom du bloc maître de la relation

41

Mise en œuvre: Bloc Maitre Détails

La liste : Elément détail affiche la liste des items du bloc détail (EMP en l'occurence).

La liste : Elément maître affiche la liste des items du bloc maître (DEPT)

42

Mise en œuvre: Bloc Maitre Détails

43

Je suppose que Oracle développeur suite et oracle database 10g.

step1: vérifier que la connexion entre oracle database et oracle dev suite est OK

Sinon

copier tnsname.ora du

C:\oracle\product\10.2.0\db_1\network\ADMIN

au

C:\DevSuiteHome_1\NETWORK\ADMIN

step2: Lancer le http listener (satart OC4J intance ) depuis programme-> oracle dev

suite -> forms dev ->satart OC4J intance

step3: lancer forms builder et créer un formulaire basé sur une table

Annexe: Configuration Oracle Forms 10g

44

Step4: lancer l‘exécution, si erreur (navigateur est cessé de fonctionner...)

step5: installer Jinitiator (C:\DevSuiteHome_1\jinit)

step6: exécuter de nouveau le formulaire, si erreur

copier JVM.DLL

C:\DevSuiteHome_1\jdk\jre\bin\server

and reamplacer

C:\Program Files\Oracle\JInitiator 1.3.1.22\bin\hotspot

step7: lancer l‘exécution et c'est bon

Annexe: Configuration Oracle Forms 10g