environnement du développement de...
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
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
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
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.
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
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)
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