Introduction À Oracle Developer Forms

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 40

Université de Manouba

École Supérieure d’Économie Numérique


Département des Technologies des Systèmes d’Information

Introduction à Oracle Developer Forms


Document Version 1.1

Mohamed Anis BACH TOBJI


Table des Matières

CHAPITRE 1 INTRODUCTION A L’ENVIRONNEMENT ORACLE DEVELOPER


SUITE…………………….. .......................................................................................... 4

1.1. Introduction ........................................................................................................................................ 4

1.2. Oracle Developer Suite : Un Environnement Intégré ..................................................................... 4

1.3. Oracle Forms Developer : Vue d’ensemble ..................................................................................... 5

1.4. Oracle Forms Services ....................................................................................................................... 5

1.5. Les composants de Forms Developer ............................................................................................... 6

1.6. Exécution des applications Forms .................................................................................................... 7

CHAPITRE 2 NOTIONS FONDAMENTALES DE ORACLE DEVELOPER


FORMS………………………………………………………………………………………10

2.1. Introduction ...................................................................................................................................... 10

2.2. Les modules Forms Developer ........................................................................................................ 10

2.3. Les composants d’un module form ................................................................................................. 11

2.4. Ma première form ............................................................................................................................ 11

2.5. Modes d’opérations d’une form ...................................................................................................... 14


2.5.1. Mode Normal ........................................................................................................................... 15
2.5.2. Mode Entrer Interrogation ........................................................................................................ 15

2.6. Les Blocs de Données Maître-Détails ............................................................................................. 17

CHAPITRE 3 ATTRIBUTS VISUELS ET PROPRIETES DES BLOCS DE


DONNEES ET DES CADRES .................................................................................. 19

3.1. Gestion des propriétés des objets forms ......................................................................................... 19


3.1.1. Méthodes .................................................................................................................................. 19
3.1.2. L’outil générique : la palette de propriétés ............................................................................... 20

3.2. Les attributs visuels ......................................................................................................................... 21


3.2.1. Définition & Création ............................................................................................................... 21
3.2.2. Utilisation ................................................................................................................................. 22

3.3. Bloc de Données : Survol des Propriétés ........................................................................................ 23

3.4. Cadres : Survol des Propriétés ........................................................................................................ 25


CHAPITRE 4 LES ELEMENTS TEXTE............................................................. 26

4.1. Définition & Création ...................................................................................................................... 26

4.2. Survol des propriétés ....................................................................................................................... 26

CHAPITRE 5 LES LOVS ET LES EDITEURS .................................................. 29

5.1. Les LOVs .......................................................................................................................................... 29

5.2. Les Editeurs ...................................................................................................................................... 32

CHAPITRE 6 CASES A COCHER, LISTES, BOUTONS D’OPTION ET


ELEMENTS AFFICHES ........................................................................................... 34

6.1. Introduction ...................................................................................................................................... 34

6.2. Les cases à cocher ............................................................................................................................. 34

6.3. Les éléments liste .............................................................................................................................. 35

6.4. Les groupes de boutons d’option .................................................................................................... 36

6.5. Les éléments affichés ........................................................................................................................ 36

CHAPITRE 7 IMPLEMENTATION DES DECLENCHEURS ............................. 38

7.1. Introduction ...................................................................................................................................... 38

7.2. Création d’un déclencheur .............................................................................................................. 38

7.3. Utilisation des variables ................................................................................................................... 38

7.4. Les fonctions prédéfinies de Forms Builder................................................................................... 39


Chapitre 1 Introduction à l’environnement Oracle
Developer Suite

1.1. Introduction
Oracle offre trois produits principaux qui permettent –en gros- de gérer les données mais
aussi de développer des applications transactionnelles et décisionnelles. L’environnement de
gestion de données et de développement est intéressant de point de vue « intégration ». En effet,
Oracle propose –dans un seul environnement- des outils de gestion de données, de conception,
de développement, de « reporting » (édition d’états), de développement Web etc. Voici une brève
présentation des trois (parmi d’autres) produits Oracle :
Oracle Database Server : Gère les données et les informations de différentes natures.
Oracle Developer Suite : Permet aux développeurs de concevoir et de construire facilement
et rapidement des applications efficaces et sécurisées.
Oracle Application Server : Environnement d’exécution de toutes les applications Oracle.
On peut déployer et gérer dans un seul serveur toutes les applications développées avec Oracle
Developer Suite.

1.2. Oracle Developer Suite : Un Environnement Intégré


Oracle Developer Suite offre un ensemble d’outils pour la conception et le développement
d’applications décisionnels, des bases de données et des entrepôts de données. La suite de
développement Oracle Developer Suite est constituée aujourd’hui -à sa version 10g- des outils
suivants :
Applications décisionnels :
Oracle Business Intelligence Beans : c’est un ensemble de « Java-Beans » qui servent à la
construction d’applications décisionnelles.
Oracle Reports : C’est un générateur d'états multi-formats qui permet l’accès facile et rapide à
l’information pour les preneurs de décision.
Conception de Bases de Données et d’entrepôts de données :
Oracle Wharehouse Builder : C’est un outil de conception et d’intégration d’entrepôts de
données qui gère tout le cycle de vie des données et des méta-données.
Oracle Discoverer : C’est un outil d’interrogation, d’affichage (sous forme d’états) et
d’analyse pour la publication d’informations à partir d’entrepôts de données et de systèmes
transactionnels sur le Web.
Développement d’applications :
Oracle JDeveloper : JDeveloper est un environnement de développement J2EE pour le
développement, le débogage et le déploiement d’applications e-busieness et Web. Pour maximiser
la productivité de développement, JDeveloper fournit un ensemble d’outils intégrés pour

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 1 : Introduction à l’environnement Oracle Developer Suite 5

supporter un cycle de vie complet de développement (modélisation, codage, débogage, test,


déploiement etc.).
Oracle Designer : C’est un environnement d’analyse, de conception et de génération
d’applications Oracle Developer.
Oracle Forms : Atelier de développement rapide d'applications basées sur le PL/SQL.
Oracle Software Configuration Manager : c’est l’outil qui gère tous les types de fichiers à
travers tout le cycle de vie de l’application.

1.3. Oracle Forms Developer : Vue d’ensemble


Oracle Forms Developer est un environnement de développement pour la construction
d’applications Internet. Ce générateur fournit un ensemble d’outils qui permettent aux
développeurs de construire facilement et rapidement des forms de données avec un minimum
d’effort. Voici les caractéristiques d’Oracle Forms :
 Développement rapide d’applications : vous pouvez créer et modifier vos applications
avec peu de code. La productivité est améliorée avec le développement à base
d’assistants et des commandes prédéfinis qui répondent à des tâches communes.
 Partitionnement : vous pouvez placer des unités de programme PL/SQL sur le serveur
Base de Données ou dans l’application, selon vos besoins. Vous pouvez glisser des
objets entre les modules et le serveur Base de Données.
 Contrôle flexible de code source : Oracle Software Configuration Manager (SCM) est
intégré directement dans Forms Developer et fournit plusieurs options de gestion de
code source ; sauvegarde et restauration de code, gestion de versions etc.
 Architecture multi-tiers : cette architecture permet à un grand nombre d’utilisateurs de
se connecter et d’utiliser l’application développée. Il existe plusieurs astuces pour
faciliter l’accès et l’utilisation d’une seule application sans pour autant affecter sa
performance.
 Réutilisation des objets : Dans Forms Developer, on peut gérer des classes et des
bibliothèques d’objets qui sont réutilisables pour le développement d’autres
applications.

1.4. Oracle Forms Services


Oracle Forms Services est un composant d’Oracle Application Server pour la distribution des
applications Forms à plusieurs clients. Oracle Forms Services fournit automatiquement
l’infrastructure nécessaire pour la distribution d’applications Forms via des services intégrés.
Oracle Forms Services utilise une architecture trois-tiers pour le déploiement des applications
base de données :
 Le client interagit avec l’application via son navigateur Web où l’application est
affichée et utilisée. Ainsi, l’utilisateur n’a besoin que d’u explorateur Web sur son PC.
 Le serveur intermédiaire est Oracle Application Server. C’est là où réside l’application.
Chapitre 1 : Introduction à l’environnement Oracle Developer Suite 6

 Le serveur de données est Oracle Server Database. C’est là où résident les données.

Figure 1 : Architecture trois-tiers

1.5. Les composants de Forms Developer


Ce sont des interfaces qui permettent de naviguer entre les objets d’une application
(navigateur d’objets), de gérer leurs propriétés (palette de propriétés), de gérer les contrôles
graphiques (éditeur de présentation) et d’éditer du code PL/SQL (éditeur PL/SQL).

Figure 2 : Le navigateur d'objets & La palette de propriétés


Chapitre 1 : Introduction à l’environnement Oracle Developer Suite 7

Figure 3 : L’éditeur de présentation & l'éditeur PL/SQL

 Le navigateur d’objet (touche de raccourcis F3) : c’est un explorateur hiérarchique qui


permet de manipuler les différents objets de l’application rapidement et facilement. Il
inclut les objets de l’application mais aussi de la base de données, une barre d’outils
pour créer ou supprimer un objet, une fonction qui permet la recherche d’un objet par
son nom etc.
 La palette de propriétés (F4) : tous les objets d’un module ont des propriétés qu’on
peut consulter et modifier dans cette palette. Dans la palette de propriétés on peut
copier/coller les propriétés d’un objet, ou encore chercher une propriété par son nom.
 L’éditeur de présentation (F2) : c’est un outil qui permet la création et la gestion de
l’interface graphique de l’application. On peut utiliser la palette des outils ou la barre
d’outils pour concevoir le style, la couleur, la taille etc. des objets visuels de
l’application.
 L’éditeur PL/SQL (F11) : il permet d’incorporer du code PL/SQL. Le code peut
concerner les déclencheurs d’événements, les sous-programmes, les commandes de
menu et les packages.

1.6. Exécution des applications Forms


L’application ainsi que Forms Services sont situés sur le serveur d’application. Le traitement
des déclencheurs se produit dans les serveurs d’application et/ou de bases de données, alors que
l’interface s’affiche sur le poste du client (sur un navigateur web tel qu’Internet Explorer, Mozilla
Firefox, Netscape, Opera…).
Les utilisateurs peuvent lancer leur application en saisissant l’URL qui pointe dessus. Forms
services génère alors un fichier HTML qui télécharge une applet Java à la machine client. cette
applet est capable d’afficher l’interface utilisateur de l’application alors que l’exécution et le
traitement se font sur les serveurs d’application et de données.
L’URL d’une application a la forme suivante :
http://adresse_serveur_application:port/servletforms+paramètres
Chapitre 1 : Introduction à l’environnement Oracle Developer Suite 8

adresse_serveur_application : Adresse IP ou nom du serveur s’il s’agit d’un réseau local ou nom de
domaine s’il s’agit d’un serveur distant.
port : c’est le port du serveur http, généralement 8889.
servletforms : fichier HTML statique.
Paramètres : form appelée (une application étant un ensemble de forms), informations de
connexion (login+password), et autres paramètres d’optimisation.
Il faut noter qu’un navigateur Web peut exécuter une applet Java parce qu’il fournit un
Environnement d’Exécution Java (JRE). Pour la plateforme Windows, Oracle fournit un plug-in
appelé JInitiator (disponible à l’emplacement suivant ORACLEDEVHOME/JINIT/); une
alternative à l’environnement JRE.
Dans ce qui suit nous allons présenter les étapes nécessaires à une session Forms (Exécution
et utilisation d’une application forms9i/10g) mais avant cela, voyons voir les processus et les
composants qui interviennent dans cette exécution :
1- Forms Servlet : c’est une Servlet Java qui crée un fichier HTML dynamique à partir de
plusieurs données (fichiers de configuration, paramètres de l’URL…)
2- Forms Client : c’est une applet java générique. C’est un ensemble e classes Java. Au
démarrage seules ces classes sont téléchargées, des classes additionnelles les rejoignent
selon les besoins utilisateurs. Il faut savoir qu’il n’y a pas de déploiement d’une applet java
avec chaque nouvelle application. La même applet générique est utilisée pour exécuter
n’importe quelle application Forms indépendamment de sa taille et de sa complexité.
3- La Forms Listener Servlet : elle fonctionne sous un serveur Web équipé d’un moteur de
Servlet tel que OC4J. Le serveur Web dirige les requêtes http pour la Forms Listener
Servlet directement aux instances Servlet. Cette dernière se charge (1) de créer un
processus d’exécution forms pour chaque client et (2) de gérer les communications
réseaux entre le client et le processus d’exécution forms via le serveur Web.
4- Le moteur d’exécution : c’est un processus (ifweb90) qui fonctionne sur le serveur
d’application et qui est lancé par la Forms Listener Servlet. Le moteur d’exécution traite la
logique de l’application et exécute le code de l’application.
Les étapes nécessaires à une session forms sont les suivantes :
1- L’utilisateur saisit l’adresse URL de l’application.
2- Le serveur http reçoit une requête http du navigateur du client et contacte la Servlet
Forms.
3- La Servlet Forms crée dynamiquement une page HTML qui contient toutes les
informations nécessaires au démarrage de la session.
4- Le serveur HTTP télécharge au client une applet générique après avoir vérifié qu’elle n’est
pas déjà téléchargée. Le client met cette applet en mémoire cache pour ne pas la
retélécharger encore une fois.
5- L’applet client contacte le Forms Listener Servlet pour démarrer la session. Ce processus
démarre une instance de Forms Runtime Engine sur le serveur d’application.
Chapitre 1 : Introduction à l’environnement Oracle Developer Suite 9

6- Le Forms Listener Servlet établit une connexion avec le Forms runtime Engine qui se
connecte à la base de données si c’est possible et charge en mémoire les fichiers
exécutables de l’application.
7- L’applet forms ffiche l’interface utilisateur dans la fenêtre principale du navigateur Web de
l’utilisateur.
8- Le Forms Listener Servlet gère la communication entre l’applet Forms et le Forms
Runtime Engine.

Note :
Ce polycopié se base sur les documents Oracle [1], [2] et [3], et s’inspire aussi des autres
ouvrages cités dans la bibliographie.
Chapitre 2 Notions fondamentales de Oracle
Developer Forms

2.1. Introduction
Forms Builder est un composant principal d’Oracle Developer Forms. Il est utilisé pour
développer rapidement des applications basées sur des forms dans le but principal de présenter et
de manipuler des données.
Les utilisateurs des applications de Forms Builder peuvent :
 Insérer, modifier, supprimer et interroger des données via des objets d’interfaces
(qu’on appellera dorénavant items).
 Présenter des données en utilisant du texte, des images, et des contrôles
personnalisées.
 Utiliser des menus pour un accès plus facile aux fonctionnalités de l’application.
 Envoie direct des données à Oracle Reports.
Le développeur utilisant Forms Builder peut :
 Concevoir des forms qui utilisent plusieurs sources de données.
 Construire des applications rapidement et facilement en utilisant des outils graphiques
de développement puissants.
 Copier et déplacer facilement des objets avec leurs propriétés entre des applications.
 Utiliser des assistants qui maximisent sa productivité.

2.2. Les modules Forms Developer


Une application Forms est un ensemble de modules qui correspondent physiquement à des
fichiers. Un module est à son tour un ensemble d’objets.
Un module forms est :
1. Une Form : c’est le composant principal d’une application. Un module Form inclut les
objets que l’utilisateur peut voir et manipuler pour interagir avec l’application.
2. Un Menu : un module menu est un ensemble de menus hiérarchiques.
3. Une bibliothèque PL/SQL : c’est une collection d’unités de programmes PL/SQL
dont le code est appelé à partir d’autres modules.
4. Une bibliothèque d’objets : c’est une collection d’objets Forms qu’on peut utiliser dans
d’autres modules. On peut la créer pour stocker, maintenir, et distribuer des objets
standards qui peuvent être réutilisés ultérieurement.
Forms Developer fournit un menu par défaut pour chaque form. Ce menu par défaut inclut
des commandes basiques pour des opérations de mise à jour de données. Ce menu peut être

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 11

naturellement personnalisé. Les modules menus peuvent –quant à eux- être attachés aux modules
forms et fournir des commandes et des fonctionnalités générales (niveau applicatif).

2.3. Les composants d’un module form


Les modules forms construisent le corps d’une application forms. Ils incluent différents types
d’objets, les uns sont visibles à l’utilisateur, les autres ne le sont pas. Les objets principaux d’un
module form sont :
1. Les items : ce sont des contrôles graphiques (objets visuels) qui présentent à
l’utilisateur des données ou qui lui permettent d’interagir avec la form. Les items
appartiennent logiquement à des blocs de données et physiquement (visuellement) à
des canevas.
2. Les blocs : chaque form inclut un ou plusieurs blocs. C’est un conteneur logique
d’items, et chaque item dans un form appartient à un bloc. Les items d’un bloc sont
logiquement reliés ; par exemple, ils peuvent correspondre aux colonnes d’une même
table de base de données.
3. Les canevas : c’est une surface sur laquelle on place des objets visuels. Une form peut
avoir plusieurs fenêtres. Chaque fenêtre peut avoir plusieurs canevas. Ce dernier peut
afficher un ou plusieurs items d’un ou de plusieurs blocs. Par défaut, tous les canevas
d’un form apparaissent dans une même fenêtre.

Module
1..n
1..n Form

Bloc de
données
Fenêtre

1..n

1..n
Canevas 1..n Eléments

Figure 4 : Relation entre les objets d'un module Form

2.4. Ma première form


Dans cette section, nous essayerons de construire la première form. Dans cette form nous
essayerons d’insérer un ensemble d’éléments avec un style d’affichage tabulaire pour afficher et
gérer les données de la table EMP de l’utilisateur SCOTT.
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 12

Un bloc de données est un conteneur logique d’éléments. Dans le navigateur d’objet, nous
pouvons remarquer que le type d’objet « Elément » n’apparaît pas dans l’arbre des objets parmi
les fils directs du module form (nommé par défaut « MODULE1 »). C’est parce qu’un élément
appartient à un bloc.
Nous commençons alors par la construction de notre bloc pour créer par la suite les éléments
via lesquels les données seront affichées et gérées. Un bloc de données est créé de deux
manières : par un assistant ou manuellement. Dans ce qui suit nous utiliserons l’assistant bloc de
données pour la création de notre bloc de données. L’assistant de bloc de données est appelé
avec l’une des manières suivantes :
 Dans le navigateur d’objet, sélectionnez « blocs de données » et cliquez par la suite sur
créer (le + vert en haut à gauche). Une boîte de dialogue apparaît pour donner le choix
au développeur de créer le bloc via l’assistant bloc de données ou manuellement.
Choisissez la première option.
 Le menu Outils, puis Assistant bloc de données (dorénavant, nous noterons les
commandes du menu de la manière suivante : outisassistant bloc de données)
 Dans la barre d’outils, cliquez sur le bouton dont l’icône contient un cylindre bleu avec
une baguette magique. En y plaçant le curseur, Forms Builder vous affichera
« assistant bloc de données ».
Voici par ailleurs les étapes à suivre pour construire notre form :
1. Sélection du type de la source de données : Table/vue ou Procédure stockée. Ça sera une
table pour notre cas.
2. Sélection de la table. Pour ce cliquez sur « parcourir » ce qui fera apparaître la boite de

dialogue de connexion si jamais vous vous n’êtes pas connectés auparavant. Après
connexion, la liste des tables dont l’utilisateur avec lequel vous vous êtes connecté est le
propriétaire sera affiché. Sélectionnez votre table et validez.
3. Les colonnes de la table apparaissent dans la liste gauche (colonnes disponibles),
déplacez-les à la liste droite (Eléments bases de données). Par cette action, vous créez des
éléments appartenant au bloc que vous êtes en train de créer. Chaque élément correspond
à une colonne de la table EMP.
4. Donner un nom à votre bloc de données.
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 13

5. Une fois le bloc de données (BLOCEMP) et ses éléments sont créés, nous passons à
l’affichage de ces derniers sur un canevas. Cette opération peut être assurée par l’assistant
de présentation. L’assistant bloc de données permet le passage automatique à l’assistant
de présentation.
6. L’assistant de présentation nous permet d’afficher les éléments déjà créés sur un canevas.
L’interface ci-dessous à droite permet de sélectionner un canevas, ou en créer un
nouveau. Les types de canevas (intégral, empilé, barre d’outils et onglets) seront présentés
ultérieurement.

7. Après la validation du choix de canevas, l’assistant de présentation nous permet de


sélectionner les éléments à afficher d’un bloc de données. A gauche sont situés les
éléments du bloc, en les déplaçant à droite nous les affichons sur le canevas qu’on vient
de sélectionner.
8. Cette interface de l’assistant de présentation nous permet de paramétrer les propriéts
physiques des éléments affichés. L’invite étant une étiquette (prompt) affichée par défaut
à côté de l’élément texte et le développeur peut modifier son titre. La largeur et la
longueur sont ceux de l’élément en question. La largeur varie selon le type de données de
la colonne à laquelle correspond l’élément.
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 14

9. En validant les propriétés physiques et des invites des éléments, l’assistant de présentation
nous donne le choix entre deux styles d’affichage ; formulaire ou tabulaire (pour constater
la différence entre les deux styles, sélectionnez sans valider chaque option… vous verrez
que l’image à gauche va être modifiée).
10. La dernière interface de l’assistant de présentation permet de paramétrer le cadre (cadre)
du bloc (c’est un objet visuel simple qui encadre les éléments du bloc). Le nombre

d’enregistrements affichés est le nombre d’enregistrements que l’utilisateur pourra voir en


même temps, la distance entre les enregistrements est la distance qui sépare deux
enregistrements successifs et finalement la case à cocher « barre de défilement » permet à
l’utilisateur –si coché- de faire défiler les enregistrements de la source de données.

En validant par « fin », l’éditeur de présentation apparaît pour afficher le canevas incluant le
cadre et les éléments que nous avons sélectionné auparavant. Le module form est désormais prêt
pour l’exécution (ne pas oublier de lancer l’OC4J bien avant le lancement de l’exécution).

2.5. Modes d’opérations d’une form


En exécutant la form développée dans la section 2.4, vous avez sans doute remarqué le menu
et la barre d’outils qui sont apparus dans l’applet sans que le développeur les a programmés ou
paramétrés. En effet, forms intègre par défaut un menu qui offre à l’utilisateur un ensemble de
fonctions de gestion de données standards ; insertion et suppression de données avec validation
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 15

(commit) ou annulation (rollback), navigation entre les enregistrements et entre les blocs de la
forme, consultation selon des critères de recherche etc.
L’une des fonctions prédéfinis est la commande « entrer interrogation ». Grâce à cette
fonction, l’utilisateur peut opérer en deux modes d’opérations différents ; le mode normal et le
mode entrer interrogation.

2.5.1. Mode Normal


Ce mode nous permet d’utiliser la forme normalement. Il permet une gestion de données
complète à l’exception de l’interrogation des données selon des critères de recherches définis par
l’utilisateur. Plus en détails, ce mode nous permet de :
 Extraire tous les enregistrements.
 Mettre à jour les données (insertion+modification+suppression).
 Sauvegarder (commit) ou annuler (rollback) des modifications.
En revanche il ne nous permet pas de :
 Extraire les enregistrements selon des critères de recherche.

2.5.2. Mode Entrer Interrogation


Ce mode nous permet d’entrer des critères de recherche pour afficher des données qui
satisfont un ou plusieurs conditions. Ce mode nous permet de :
 Extraire tous les enregistrements.
 Extraire des enregistrements qui répondent à des critères de recherches définis par
l’utilisateur.
 Affichage du nombre d’enregistrements répondant aux critères de recherche avant l’exécution
de l’interrogation.
En revanche le mode entrer interrogation nous interdit de :
 Naviguer hors du bloc courant (celui où nous sommes entrés en mode entrer interrogation).
 Mise à jour des données (insertion+modification+suppression).
Les étapes du mode entrer interrogation sont les suivantes :
1. Se positionner sur le bloc qu’on veut interroger.
2. Appuyer sur le raccourcis entrer interrogation (ou interrogation  entrer).
3. Entrer le critère de recherche.
4. Exécuter l’interrogation (ou interrogation  exécuter).
Dans l’étape 3, l’utilisateur entre la valeur du champ qu’il veut chercher dans l’élement
correspondant. Exemple, s’il veut afficher tous les CLERK, alors il saisit CLERK (sans côtes ni
guillemets) dans l’élément JOB sur la première ligne. Il peut aussi utiliser les caractères spéciaux
% et _ pour la recherche de chaînes de caractères qui correspondent à un patron donné, comme
par exemple les employés dont le nom contient la lettre A (%A% dans ENAME). Il peut aussi
utiliser les opérateurs de comparaison classique (<,>,,,<>) comme par exemple pour afficher
les employés dont le salaire est supérieur à 1500 (>1500 dans SAL). On peut aussi utiliser les
opérateurs de comparaison spécifiques à Oracle (BETWEEN, IN, LIKE et IS NULL) et les faire
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 16

précéder par un #. Exemple, pour afficher les employés qui n’ont pas de commission, on saisit
#IS NULL dans l’élément COMM.
Avec cette méthode, on peut aussi définir une conjonction de conditions. Cela est possible si
l’utilisateur place deux critères de recherches sur deux éléments différents. A noter que les deux
conditions sont connectées par un AND. Exemple, pour afficher les employés dont le nom
contient la lettre A et dont le salaire est supérieur à 1500, on place %A% sur ENAME et >1500
sur SAL.
La fonction « décompte » est une fonction intéressante dans la mesure où elle permet
d’afficher sur la barre d’état de la fenêtre form le nombre d’enregistrement qui satisfont les
critères de recherche avant l’exécution de la requête. En d’autres termes, si à l’étape 3 l’utilisateur
saisit %A% dans ENAME et qu’après il fait appel à Décompte (interrogation  décompte) alors
la forme affiche sur la barre d’état le nombre d’employés dont le nom contient la lettre A.
Supposons maintenant que l’utilisateur veut entrer une disjonction de conditions (conditions
connectées avec OR). Comme par exemple l’affichage des employés qui sont des CLERK ou qui
travaillent dans le département 20. Dans ce cas, il faut donner des noms de variables aux éléments

qui interviennent dans les conditions. un nom de variable forms commence par deux points qui
sont suivi par un identifiant ( :variable). Dans notre exemple, on saisit :j dans JOB et :d dans
DEPTNO. En exécutant, un éditeur appelé QUERY/WHERE apparaît. C’est là où il faut saisir
la disjonction de conditions en utilisant les noms de variables ( :j=’CLERK’ OR :d=20). En
cliquant sur OK, l’interrogation est exécutée. A noter que la clause ORDER BY peut être
introduite dans ce type de requêtes, ce qui permet de trier les données selon n’importe(s) quelle(s)
colonne(s) comme le montre la figure ci-dessous.
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 17

2.6. Les Blocs de Données Maître-Détails


Une relation maître-détails est une association entre deux blocs correspondant respectivement
à une table mère et une table fille. La relation est donc fondée sur une colonne clé primaire (table
mère) et clé étrangère (table fille). Un module form contenant deux blocs maître-détails permet
l’affichage de tous les enregistrements du bloc détails (correspondant à la table fille) en relation de
jointure avec l’enregistrement courant du bloc maître (correspondant à la table mère).
Voici les étapes de construction de deux blocs en relation d’équi-jointure. Nous essayerons
d’appliquer les étapes pour construire deux blocs ; l’un pour la table DEPT (bloc maître) et l’autre
pour la table EMP (bloc détails) :
1. Construire le bloc maître en premier, en l’occurrence le bloc BDEPT qui pointera sur la
table DEPT. Nous utiliserons l’assistant bloc de données et l’assistant de présentation et
suivrons les mêmes étapes décrites dans la section 2.4.
2. Relancer l’assistant bloc de données pour construire le bloc détails BEMP. Suivez les

étapes usuelles jusqu’à ce que vous arriviez à l’interface e paramétrage d’une relation. En effet,
cette interface vous permettra de créer une relation avec le bloc maître BDEPT. Cliquez sur
« créer relation », une liste apparaît incluant la contrainte d’intégrité reliant DEPT à EMP. En
validant, vous créez automatiquement une relation d’équi-jointure entre les deux blocs.
3. Affichez les éléments du bloc BEMP sur le même canevas affichant les éléments de
BDEPT. Exécutez la form et lancez l’interrogation du bloc BDEPT.
Chapitre 2 : Notions fondamentales de Oracle Developer Forms 18

En explorant le navigateur d’objets, vous devez remarquer qu’il y a eu création de nouveaux


objets sous le bloc BDEPT. Des déclencheurs qui contrôlent l’affichage des données du bloc détails
(BEMP) et la suppression des enregistrements du bloc maître (BDEPT) et une relation nommée
par défaut BDEPT_BEMP. Il s’agit bien évidemment de la relation d’équi-jointure entre les deux
blocs. Une propriété très importante de cette relation est « comportement d’enregistrement
supprimé » ; cette propriété définit le comportement de forms lorsque l’utilisateur demande la
suppression d’un enregistrement du bloc maître. Voici les valeurs que peut prendre cette
propriété :
 Non isolées : forms empêche la suppression de l’enregistrement maître tant que des
enregistrements du bloc détails existent.
 En cascade : forms supprime l’enregistrement maître et tous les enregistrements qui en
dépendent du bloc détails.
 Isolées : forms supprime uniquement l’enregistrement maître.
Chapitre 3 Attributs visuels et Propriétés des Blocs
de Données et des Cadres

3.1. Gestion des propriétés des objets forms

3.1.1. Méthodes
Chaque objet forms est caractérisé par un ensemble de propriétés et l’instanciation de ces
dernières constitue l’instance de l’objet. Il existe différents moyens pour la gestion des
propriétés :
1. Les assistants réentrants de bloc de données et de présentation : en effet, les assistants
de bloc de données et de présentations servent à créer les blocs de données, les
éléments, les canevas et les cadres –comme nous avons vu plus haut- mais permettent
aussi la modification de ces mêmes objets. En effet, ces assistants sont exécutés en
deux modes ; le mode création (déjà présenté au chapitre précédent) et le mode
réentrants c-à-d le mode de modification. Par exemple, si le développeur sélectionne
un bloc de données existants et lance par la suite l’assistant bloc de données, ce dernier
est alors lancé en mode réentrant et permettra par la suite de modifier le bloc
sélectionné. De même pour l’assistant de présentation, si on sélectionne le cadre
appartenant au canevas créé et qu’on lance l’assistant de présentation, ce dernier
fonctionnera sous mode réentrant et permettra la modification des propriétés de
diverses objets (canevas, cadre, éléments…).
2. L’assistant réentrant de LOV : Une LOV est un objet forms qui permet en gros
d’afficher une liste de valeurs dynamiques que l’utilisateur peut consulter et en

sélectionner une valeur pour l’affecter à un élément d’un bloc (les LOVs sont
constituent l’objet du chapitre suivant). Une LOV est créé soit manuellement soit via
un assistant qu’on appelle assistant de LOV. Ce même assistant peut être lancé en

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 3 : Attributs visuels et Propriétés des Blocs de Données et des Cadres 20

mode réentrant pour la modification des propriétés de la LOV en question ou des


objets avec lesquels elle intéragit.
3. L’éditeur de présentation : cet outil qui affiche les objets visuels du module form
permet entre autres de modifier les propriétés d’objets. Par exemple, en
redimensionnant un élément texte sur le canevas, le développeur toucherait aux
propriétés physiques de l’élément manipulé.
4. La palette de propriété : c’est l’outil standard de modification des propriétés de
n’importe quel objet. Il est présenté en détails dans la prochaine section.
A noter que les modifications effectuées par un outil sont naturellement reflétées dans l’autre.

3.1.2. L’outil générique : la palette de propriétés


En effet, si les assistants et les éditeurs ne touchent qu’à des objets spécifiques, la palette de
propriétés permet la modification des propriétés de tous les objets d’un module form. Cet outil
est lancé de l’une des manières suivantes (nous supposons que l’objet dont nous voulons gérer les
propriétés est sélectionné dans le navigateur d’objets) :
1. Menu outil palette de propriétés
2. Dans le navigateur d’objets, double clic sur l’icône de l’objet (et non pas le nom de
l’objet car cela ne sert qu’à modifier son nom). Cette méthode exclut les objets code
(lancement de l’éditeur PL/SQL) et les canevas (lancement de l’éditeur de
présentation).
3. Dans le navigateur d’objet, clic droit sur l’objet  palette de propriétés
4. La touche fonction du clavier F4.
5. Dans l’éditeur de présentation, double clic sur l’objet graphique.
La palette de propriétés est une interface constituée principalement de :
1. Une liste à double colonnes. La colonne gauche est bleue et contient le nom de toutes
les propriétés de l’objet regroupés par catégorie. La colonne droite est blanche et
contient les valeurs des propriétés que l’utilisateur peut sélectionner à travers une liste
ou saisir dans un champ texte.
2. Le champ « rechercher » (en haut à droite). Il est très intéressant pour la recherche
d’une propriété du moment où le nombre de propriétés est souvent très grand ce qui
rend la recherche séquentielle très lente.
3. Une barre d’outils permettant l’utilisation de plusieurs fonctionnalités (copier/coller,
figer la palette…).
4. « L’aide » qui aide à la compréhension de certaines propriétés ambigües (raccourci F1).
A noter que dans la palette des propriétés, quatre types d’icones précèdent les noms des objets
(comme le démontre la figure suivante). Chaque icône porte une signification :
Chapitre 3 : Attributs visuels et Propriétés des Blocs de Données et des Cadres 21

 Icône circulaire : la valeur de la propriété est la valeur par défaut. Elle n’a pas été
changée par le développeur.
 Icône carré : la valeur de la propriété n’est plus la valeur par défaut et elle a été
modifiée.
 Flèche noire : la valeur de la propriété a été héritée d’un autre objet.
 Flèche noire coupée par une croix rouge : la valeur héritée a été modifiée.

3.2. Les attributs visuels

3.2.1. Définition & Création


Un attribut visuel est un objet forms caractérisé par un ensemble de propriétés de mise en
forme qui sont essentiellement la police, la couleur et les motifs (d’arrière plan, de police…). Un
attribut visuel est appliqué à un objet visuel forms pour que ce dernier hérite ses propriétés de
mise en forme. Le type d’un attribut visuel peut être « titre » si l’attribut est créé pour être
appliqué à des objets tels que le titre de cadre ou invite pour être appliqué aux invites.
La figure suivante présente les propriétés d’un attribut visuel (nommé AV). A noter que les
propriétés de police peuvent être toutes instanciées via une boite de dialogue. Cette boite de
dialogue est lancée en cliquant sur « suite » qui apparaît devant le groupe de propriétés « police ».
Chapitre 3 : Attributs visuels et Propriétés des Blocs de Données et des Cadres 22

Un attribut visuel est créé tout comme on crée n’importe quel objet forms. Le développeur
doit afficher le navigateur d’objets, sélectionner le type d’objets « attributs visuels » et cliquez sur
« créer » (le PLUS vert).

3.2.2. Utilisation
Une fois un attribut visuel est créé, comment on peut l’utiliser ? en effet, tous les objets visuels
ont la propriété « groupe d’attribut visuel ». Cette propriété est une liste qui inclut les noms de
tous les attributs visuels créés dans le module form. Si cette propriété est instanciée à un nom
d’attribut visuel, alors les propriétés de mise en forme sont héritées à partir de celles de l’attribut
visuel.
Un bloc de données a la propriété « groupe d’attributs visuels de l’enregistrement courant ». Si
vous instanciez cette propriété à un attribut visuel existant (qu’on notera AV), alors
l’enregistrement courant du bloc aura les propriétés de mise en forme de l’attribut visuel AV.
Dans la figure ci-dessous, nous avons modifié la propriété « groupe d’attribut visuel » de
l’élément EMPNO à AV ainsi que la propriété « groupe d’attributs visuels de l’enregistrement
courant » du bloc BEMP.
Chapitre 3 : Attributs visuels et Propriétés des Blocs de Données et des Cadres 23

3.3. Bloc de Données : Survol des Propriétés


Jusque là, la création et la modification d’un bloc de données s’est faite avec l’assistant bloc de
données. Cet assistant crée un bloc et instancie ses propriétés selon les paramètres saisies par le
développeur qui l’a utilisé. La deuxième méthode de création d’un bloc est la création manuelle. Il
s’agit de créer le bloc et d’instancier ses propriétés manuellement via la palette de propriétés. Pour
cela, il faudrait tout d’abord explorer ces dernières… ça sera l’objet de cette section :
Navigation
 Style de navigation : cette propriété définit le comportement du curseur lorsqu’en
navigant d’un champ à un autre (bouton de tabulation pour le clavier et menu
champ suivant par la souris) le curseur arrive au dernier champ. Cette propriété
peut prendre la valeur (1) « même enregistrement » ce qui fait retourner le curseur au
premier champ du même enregistrement (2) « enregistrement suivant » ce qui ramène
le curseur au premier champ de l’enregistrement suivant et (3) « bloc suivant » ce qui
ramène le curseur au premier champ du premier enregistrement du bloc suivant.
 Bloc de données de navigation suivant/précédent : définit le sens de navigation
entre les blocs. Les deux propriétés prennent chacune un nom du bloc qui correspond
au bloc de navigation suivant ou précédent au bloc dont on manipule la propriété.
Enregistrement
 Groupe d’attribut visuel de l’enregistrement courant : cette propriété prend la
valeur d’un attribut visuel dont les propriétés de mise en forme seront appliquées
seulement à l’enregistrement courant.
 Nombre d’enregistrements affichés : cette propriété spécifie le nombre maximum
d’enregistrements que le bloc de données peut afficher en même temps sur un
canevas.
 Taille de tableau d’interrogation : c’est le nombre maximum d’enregistrement que
forms peut ramener à partir de la base de données en une seule fois. Une petite valeur
de cette propriété veut dire que le temps de réponse est rapide (l’interface inclut
généralement une dizaine d’enregistrements) contrairement à une valeur importante
qui fera que le temps de réponse sera énorme. Cette propriété est par défaut mise à
Chapitre 3 : Attributs visuels et Propriétés des Blocs de Données et des Cadres 24

zéro ce qui veut dire qu’elle prend la valeur de la propriété « nombre d’enregistrements
affichés ».
 Nombre d’enregistrements en tampon : la quantité minimale d’enregistrements
interrogés retenus dans le buffer. La valeur minimale autorisée est la valeur du nombre
d’enregistrements affichés plus trois. Forms cache tous les enregistrements
additionnels dans un fichier temporaire. Une grande valeur de cette propriété améliore
le temps de traitement mais utilise de la mémoire physique.
 Interroger tous les enregistrements : cette propriété spécifie si tous les
enregistrements qui correspondent à la requête utilisateur sont ramenés ou non.
 Sens des enregistrements : cette propriété définit le sens d’orientation des
enregistrements ; vertical ou horizental.
 Enregistrement unique : cette propriété est mise à oui si le bloc de contrôle doit
toujours contenir un enregistrement. C’est le cas de bloc de contrôle contenant un
élément calculé.
Base de données
 Bloc de données de base de données : cette propriété booléenne (oui/non) spécifie
si le bloc en question est un bloc de base de données (incluant des éléments qui
permettent la gestion de données stockées dans une BD) ou si c’est un bloc de
contrôle (bloc contenant des éléments qui n’ont aucune liaison avec la BD).
 Interrogation/insertion/mise à jour/suppression autorisée : définit le droit de
gestion de données (Interrogation/insertion/mise à jour/suppression) correspondant
à la propriété.
 Type de source de données d’interrogation : spécifie le type de la source de
données du bloc de base de données (ça sera « aucun » s’il s’agit d’un bloc de contrôle).
 Nom de la source de données d’interrogation : spécifie le nom de la source de
données. Cette propriété est instancié seulement si les valeurs de la propriété
précédente est Table, Procédure Stockée ou Clause From.
 Colonnes de la source de données : spécifie dans une boite de dialogue les noms et
les types de données des colonnes associées à la source de données d’interrogation.
Cette propriété est instancié seulement si les valeurs de la propriété précédente est
Table, Procédure Stockée ou Clause From.
 Clause WHERE : spécifie une condition simple ou composée que les données
doivent respecter lors de l’exécution de l’interrogation du bloc en mode normal. Cette
clause est automatiquement ajoutée (par un AND) aux conditions saisies par
l’utilisateur au mode entrer interrogation.
 Clause ORDER BY : définit un ordre d’affichage des enregistrements. L’utilisateur
peut modifier ce tri via la boite de dialogue QUERY/WHERE dans le mode entrer
interrogation.
 Mettre à jour colonnes modifiées uniquement : lorsque cette propriété est mise à
oui, seuls les éléments modifiés seront écris dans leurs colonnes respectifs et non pas
Chapitre 3 : Attributs visuels et Propriétés des Blocs de Données et des Cadres 25

tous. En d’autres termes, seuls les colonnes correspondant aux éléments modifiés
seront incluses dans la requête UPDATE.
 Durée maximum d’interrogation : si forms ne ramène pas les enregistrements
demandés par l’utilisateur pendant cette période, alors il doit abandonner la requête.
Cette propriété est utilisée lorsque la propriété « interroger tous les enregistrements »
est mise à oui.
 Nombre maximum d’enregistrements ramenés : la requête est abandonné si le
nombre d’enregistrements que va ramener forms excède cette valeur.
Barre de défilement
 Afficher la barre de défilement : définit si oui ou non forms doit créer une barre de
défilement pour le bloc de données.
 Canevas à barre de défilement : spécifie le canevas dans lequel la barre de
défilement est affichée.
 Sens de la barre de défilement : définit le sens de la barre de défilement ; horizontal
ou vertical.
 Position X/Y de la barre de défilement : coordonnées physiques de la barre de
défilement sur le canevas.
 Largeur/hauteur de la barre de défilement : spécifie la largeur et la longueur de la
barre de défilement.

3.4. Cadres : Survol des Propriétés


Ce que nous avons saisi dans l’assistant de présentation concernait justement les propriétés du
cadre qui encadre les éléments du bloc de données créé. Ces propriétés peuvent être modifiées,
en voici un survol :
 Bloc de données de présentation : par cette propriété, on comprend que chaque
cadre est associé à un bloc. Les éléments de ce dernier sont affichés à l’intérieur du
cadre. A noter aussi qu’un bloc de données ne peut être associé qu’à un seul cadre.
 Style de présentation : c’est le style d’affichage des éléments du bloc auquel il est
associé. Cette propriété peut prendre les valeurs « formulaire » et « tabulaire ».
 Distance entre les enregistrements : c’est la distance physique qui sépare deux
enregistrements successifs. L’unité de mesure est définie comme propriété du module
form.
 Position X/Y : coordonnées du cadre.
 Largeur/hauteur : dimensions du cadre.
Chapitre 4 Les éléments Texte

4.1. Définition & Création


Un élément texte est un objet interface via lequel on peut consulter, insérer, modifier et
supprimer des données. Un élément texte correspond généralement à une colonne de la base de
données. Quand un élément est créé pour la première fois, son type par défaut est « élément
texte ».
Un élément texte peut être créé avec l’une des méthodes suivantes :
 Dans l’éditeur de présentation, en utilisant la boite d’élément (à gauche). Il s’agit de
cliquer sur l’icône de l’élément texte et de dessiner l’élément sur le canevas. Il faut
remarquer qu’en haut, il y a deux listes de canevas et de blocs. L’élément inséré est
géré par le bloc sélectionné et affiché dans le canevas sélectionné. L’élément est
affiché n fois ; n étant la valeur de la propriété « nombre d’enregistrements affiché »
du cadre dans lequel nous avons inséré l’élément.
 Dans le navigateur d’objets, sélectionnez votre bloc, sélectionnez le type d’objets
« éléments texte » ensuite cliquez sur créer (le PLUS vert). Votre élément texte est
ajouté, mais il n’est affecté à aucun canevas.
 Utilisation de l’assistant de bloc de données.

4.2. Survol des propriétés


Un élément texte est caractérisé par un ensemble de propriétés. Dans cette section nous
survolons les propriétés les plus importantes, regroupés par catégories :
Général
 Type d’élément : un élément texte est un type d’élément. Un élément peut être un
élément liste, une case à cocher, un bouton de commande etc.
Physique
 Visible : propriété booléenne (oui/non) relative à la visibilité de l’élément sur le
canevas.
 Canevas : canevas sur lequel est affiché l’élément. Cette propriété peut prendre la
valeur NULL, dans ce cas l’élément n’est pas visible.
 Position X/Y : coordonnées de l’élément sur le canevas.
 Largeur et longueur : dimensions de l’élément.
Enregistrements
 Groupe d’attributs visuels de l’enregistrement courant : attribut visuel dont
l’enregistrement courant de l’élément héritera les propriétés de mise en forme.
 Distance entre les enregistrements : c’est la distance entre les champs de l’élément.
On voit que cette propriété est manipulable au niveau élément.

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 4 : Les éléments Texte 27

 Nombre d’enregistrements affichés : c’est le nombre de champs de l’élément texte.


Encore une propriété qu’on peut modifier au niveau élément. D’ailleurs, lorsque vous
insérez un élément dans l’éditeur de présentation, forms créera autant de champ que la
valeur de la propriété « nombre d’enregistrements affichés » du cadre dans lequel on a
inséré l’élément.
Invite
Groupe des propriétés définissant l’apparence de l’étiquette qui accompagne l’élément texte.
 Type d’affichage de l’invite : cette propriété peut prendre trois valeurs ; caché 
l’invite est invisible ; premier enregistrement  l’invite est affiché une seule fois avec
le premier enregistrement ; tous les enregistrements  l’invite est affiché pour chaque
enregistrement.
 Bord d’attachement de l’invite : l’invite peut être attaché à l’élément texte en haut,
en bas, au début ou à la fin.
 Décalage d’attachement de l’invite : distance entre l’invite et l’élément texte.
A noter aussi les propriétés de couleur et de police qui concernent uniquement l’invite de
l’élément.
Données
 Type de données : type de données de l’élément, il correspond au type de données
de la colonne à laquelle il fait référence dans le bloc.
 Longueur maximum de l’élément : spécifie la longueur maximum que peut
atteindre la valeur de l’élément en nombre de caractères.
 Masque de format : ici, on peut spécifier un format (pour les dates ou les nombres)
dans lequel sera affichée la valeur de l’élément (la donnée).
 Obligatoire : propriété booléenne (oui/non). Si cette propriété est mise à oui, alors
l’utilisateur doit renseigner l’élément et forms n’acceptera pas de valeur NULL.
 Valeur minimum/maximum autorisée : ces deux propriétés permettent de définir
un intervalle qui délimite la valeur de l’élément saisie par l’utilisateur.
 Valeur initiale : c’est la valeur initiale que prend un élément au moment de l’insertion
d’un enregistrement. Cette valeur doit respecter le type de données et les propriétés
Valeur minimum/maximum autorisée. Elle peut être une constante 124, CLERK une
variable système, $$date$$, $$dbdate$$, la valeur d’un
élément :nom_bloc.nom_elt, la valeur d’une
séquence :sequence.nom_seq.nextval.
 Copier valeur de l’élément : cette propriété prend le nom d’un élément
( :nom_bloc.nom_elt). L’élément manipulé prendrait dans ce cas la valeur de l’élément
saisi. Si ce dernier est modifié alors notre élément le sera aussi.
 Option synchroniser avec : spécifie le nom de l’élément à partir duquel l’élément
manipulé dérive sa valeur et synchronise les valeurs des deux éléments de telle manière
à ce que l’un reflète l’autre. Quand l’utilisateur change la valeur d’un élément, la valeur
Chapitre 4 : Les éléments Texte 28

de l’autre est aussi changée. A noter que cette opération n’est faisable que pour deux
éléments appartenant au même bloc.
Base de Données
 Elément base de données : spécifie si l’élément est lié à la base de données via un
bloc de BD ou non.
 Interrogation/insertion/mise à jour autorisée : définit les droits de gestion de
données au niveau élément.
 Longueur de l’interrogation : définit le nombre de caractères maximum que peut
prendre un critère de recherche saisi en mode entrer interrogation.
 Interrogation sans distinction maj/min : propriété booléenne qui spécifie si la
casse doit être respectée en saisie du critère de recherche en mode entrer interrogation
ou non.
Fonctionnel
 Masquer données : cette propriété doit être définie à oui si l’élément est un champ
mot de passe. En effet, mise à oui, elle cache les données par des étoiles « * ».
 Activé : par défaut mise à oui, cette propriété peut interdire la navigation et la
manipulation de la donnée de l’élément lorsqu’elle est mise à non.
 Multiligne : propriété booléenne qui permet à l’élément d’être saisi en plusieurs ligne.
Utile pour les champs adresse, commentaires, descriptions etc.
Navigation
 Navigation autorisée au clavier : cette spécifie si oui ou non l’utilisateur peut
atteindre l’élément en utilisant le clavier (touche de tabulation).
 Elément de navigation précédent/suivant : définit l’élément de navigation
précédent et suivant par le clavier.
Chapitre 5 Les LOVs et les Editeurs

Les LOVs et les éditeurs sont des objets forms qui aident l’utilisateur à la saisie. Dans ce qui
suit, nous verrons l’utilité des LOVs et des éditeurs ainsi que la méthode de leur construction et
de leur utilisation.

5.1. Les LOVs


Une LOV est une liste de valeurs qui apparaît en boite de dialogue. Elle est appelée à partir
d’un élément et affiche une liste multi-colonne de valeurs. L’utilisateur sélectionne une ligne et
valide pour affecter à un (ou plusieurs) élément(s) une (ou plusieurs) valeur(s).
Dans ce qui suit nous présentons les étapes de construction d’une LOV appuyés par un
exemple. La création peut être faite manuellement ou via un assistant LOV. Nous choisissons la
deuxième méthode. Il s’agit donc de créer une LOV qui permettra à l’utilisateur –qui veut insérer
ou modifier un employé- de sélectionner un job et un département et de les affecter à une ligne
(c-à-d à un employé). La LOV doit afficher les couples distincts de JOB, DNAME des tables
EMP et DEPT que l’on joindra sur la colonne DEPTNO.
Mais avant de passer aux étapes de création d’un LOV, il faut savoir que nous toucherons à
trois objets différents de notre module forms :
1. Un groupe d’enregistrement : c’est un objet forms que vous trouverez dans l’arbre
de l’application forms. En effet, la LOV n’est qu’un afficheur d’un groupe
d’enregistrements. L’utilisateur doit définir dans ce dernier la source de données qui
sera chargée dans la LOV. Un groupe d’enregistrement peut être statique (ensemble
d’enregistrements saisis par le développeur) ou dynamique (fondé sur une requête
SQL).
2. La LOV : La LOV affiche les colonnes (ou une partie) du groupe d’enregistrements
auquel elle est liée. Elle est appelée à partir d’un élément du bloc, et offre une fonction
de recherche sur les valeurs de la première colonne (ce qui fait que l’ordre des
colonnes choisies à partir du groupe soit important).
3. Elément texte : Une LOV est appelée à partir d’un élément texte, mais peut aussi être
appelée à partir de plusieurs éléments textes si jamais elle retourne plusieurs valeurs à
plusieurs éléments.
Voici donc les étapes de création de notre LOV via l’assistant :
1. Lancer l’assistant LOV. Cet outil peut être lancé à partir du menu « outils » ou en
créant un objet LOV dans le navigateur d’objets et en sélectionnant l’option « utiliser
l’assistant LOV ». Avant de créer une LOV, il faut (1) créer un groupe
d’enregistrement et (2) le paramétrer, c-à-d définir sa requête SQL :

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 5 : Les LOVs et les Editeurs 30

2. Sélectionnez les colonnes du groupe d’enregistrements que vous voulez afficher dans
la LOV.

3. dans cette interface, nous pouvons modifier les titres des colonnes… mais le plus
important c’est qu’elle nous permet d’assigner les colonnes de la LOV aux éléments de
notre bloc via le bouton « rechercher l’élément récepteur… ». il s’agit de sélectionner
une colonne de la LOV (les colonnes sont affichées en ligne), de cliquer sur le bouton,
sélectionner l’élément récepteur et de valider. Cette opération peut concerner plusieurs
colonnes de la LOV.
Chapitre 5 : Les LOVs et les Editeurs 31

4. L’utilisateur peut instancier certains paramètres de la LOV (titre, dimensions, nombre


d’enregistrements extraits à la fois…).

5. Dans cette étape, il s’agit de sélectionner les colonnes à partir des quelles l’utilisateur
peut demander l’affichage de la LOV. Ceci étant la dernière étape, cliquez sur fin pour
créer le groupe d’enregistrements et la LOV et paramétrer l’élément texte.
Chapitre 5 : Les LOVs et les Editeurs 32

L’utilisation de la LOV est très simple. Il suffit de mettre le curseur sur l’un des éléments
attribués (choisis dans l’étape 5) et lancer la LOV (EditionAfficher liste…). L’utilisateur
peut sélectionner une ligne et valider, les valeurs JOB et DEPTNO seront affectés à
BEMP.JOB et BEMP.DEPTNO.

5.2. Les Editeurs


Un éditeur est un objet forms. Il sert à consulter et à mettre à jour un élément. Cet objet est
très intéressant lorsque l’élément contient une quantité importante de texte et que ses dimensions
ne conviennent pas à la taille du texte. Il n’y a pas d’assistant éditeur puisque la création d’un
éditeur est très simple. Il s’agit de le créer manuellement, de le personnaliser (instancier ses
paramètres d’apparence) et de faire en sorte qu’il soit appelé à partir de l’élément en question. Les
éléments texte ont une propriété « éditeur » incluant la liste des éditeurs créés dans le module
form de l’élément.
L’appel d’un éditeur se fait de la manière suivante (EditionEdition). A noter que forms offre
un éditeur système pour tous les éléments texte même si le développeur n’a pas créé d’éditeur et
ne l’a pas attaché à un élément texte.
Chapitre 5 : Les LOVs et les Editeurs 33
Chapitre 6 Cases à Cocher, Listes, Boutons
d’Option et Eléments Affichés

6.1. Introduction
Forms Builder offre aux développeurs un ensemble d’éléments regroupés en deux grandes
familles ; les éléments permettant la saisie et les éléments qui ne permettent pas la saisie. La
première famille inclut les éléments qui permettent à l’utilisateur de consulter une donnée mais
aussi de la saisir en vue d’une insertion ou d’une modification. Quant à la deuxième famille, elle
inclut les éléments qui ne permettent que la consultation de données.
Jusque là, nous avons manipulé les éléments texte et nous avons même exploré les propriétés
les plus importantes de cet objet. Naturellement, un élément texte est un élément qui permet la
saisie, mais il y a aussi trois autres éléments qui autorisent la même fonction à savoir les cases à
cocher, les éléments liste et les groupes de boutons d’options.

6.2. Les cases à cocher


Une case à cocher est un objet interface qui permet la consultation ou la saisie d’une donnée
qui correspond seulement à deux états. L’état d’une case à cocher est ou bien « coché » ou « non
coché ». Dans ce qui suit, nous allons voir l’une des méthodes de création d’une case à cocher.
Pour cela nous avons ajouté à la table EMP la colonne MSATUTS qui permettra de spécifier
l’état marital de l’employé. C’est une colonne CHAR(1) qui pour le moment ne prend que les
valeurs M (marié) ou C (célibataire).
Nous pouvons créer une case à cocher par l’une des manières suivantes :
1. Convertir un élément texte déjà existant (Ça sera l’unique méthode présentée dans ce
qui suit).
2. Insertion d’une case à cocher par l’éditeur de présentation.
3. Insertion d’un élément case à cocher dans le navigateur d’objet par le bouton créer.
Nous supposons que nous avons déjà créé un bloc de BD pour la table EMP et que nous
avons affiché tous ses éléments texte sur un canevas. L’élément MSTATUS a été créé entre autres
en élément texte (la figure de la page précédente est l’exécution de notre module). Pour le
convertir en élément case à cocher, il faut lancer la palette de propriétés et afficher celles de
l’élément texte MSTATUS. Voici par ailleurs les étapes restantes qu’il faut suivre :
1. Modifier la propriété « type d’élément » et l’instancier à « case à cocher ».
2. Saisir un label pour la case à cocher. Il s’agit de l’entrer dans la propriété libellé
(« marié »).
3. Entrer les valeurs de BD qui correspondent à l’état coché et à l’état non coché de la
case à cocher. En d’autres termes mettre M dans la propriété « valeur lorsque coché »
et C dans la propriété « valeur lorsque non coché ».

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 6 : Cases à Cocher, Listes, Boutons d’Option et Eléments Affichés 35

4. Instancier la propriété « case à cocher correspondance d’autres valeurs » à (1) non


autorisé, dans ce cas forms ignore les enregistrements dont MSTATUS ont une valeur
différente de M et de C, ou (2) à coché, dans ce cas forms met MSTATUS à l’état
coché si MSTATUS n’est ni M ni C, ou finalement (3) à non coché, dans ce cas forms
met MSTATUS à l’état non coché si MSTATUS n’est ni M, ni C (ça peut être D par
exemple pour « Divorcé », et la case à cocher « Marié » sera logiquement non coché).
5. Mettre une valeur initiale en instanciant une valeur à la propriété « valeur initiale ».

6.3. Les éléments liste


Un élément liste est un objet interface qui affiche une liste prédéfinie (statique) de valeurs que
l’utilisateur pourrait sélectionner et affecter à un élément correspondant à une colonne d’une
table de la BD. Dans ce qui suit, nous essayerons de créer une liste gérant les valeurs que peut
prendre la colonne JOB. Comme pour les cases à cocher, il existe trois méthodes pour la création
d’une liste, à savoir (1) l’utilisation de l’éditeur de présentation et de sa palette d’outils, (2)
l’utilisation du navigateur d’objet et de sa commande de création d’objet ou (3) la conversion de
l’élément texte JOB –créé avec l’assistant bloc de données- en élément liste. Voici par ailleurs les
étapes nécessaires :
1. Modifier la propriété « Type d’élément » de l’élément JOB à « Elément liste ».
2. La propriété « Type de liste » définit trois types de listes qui sont : (1) liste instantanée ;
liste qui affiche une seule valeur mais qui offre un bouton de défilement qui affiche
une liste déroulante permettant à l’utilisateur de sélectionner une valeur (convenable
pour les tabulaires), (2) liste de sélection ; c’est une liste qui affiche plusieurs valeurs en

même temps et qui inclut une barre de défilement verticale pour naviguer entre ses
valeurs (convenable pour les formulaires) et (3) zone de texte déroulante ; qui est en
même temps une liste instantané et un élément texte (combo box). Nous choisissons
le premier type.
3. Il s’agit maintenant de paramétrer la correspondance entre les éléments qui vont
figurer dans la liste et les valeurs de la BD. Pour cela nous devons manipuler la
propriété « éléments dans la liste » (figure précédente). Nous devons saisir les éléments
liste et chaque valeur lui correspondant. Si nous voulons faire correspondance les
valeurs de la BD qui sont différentes des valeurs qu’il a paramétrées, nous devons
Chapitre 6 : Cases à Cocher, Listes, Boutons d’Option et Eléments Affichés 36

ajouter un élément liste « Autres » -à qui correspond une chaine vide-. Pour que cette
opération réussisse, il faut aussi paramétrer la propriété « correspondance d’autres
valeurs ».
4. La propriété « correspondance d’autres valeurs » définit le comportement de forms
lorsqu’à l’exécution de l’interrogation trouve des valeurs de JOB qui ne figurent pas
dans la liste paramétrée par le développeur. Deux alternatives se présentent : (1)
ignorer les enregistrements ayant ce type de valeurs pour la colonne JOB ; pour cela,
laisser la valeur de cette propriété à vide, (2) afficher l’un des éléments de la liste (par
exemple « Autres » dans notre cas) ; pour cela, affecter l’élément liste (« Autres ») à
cette propriété.
5. Initialiser la liste en paramétrant la propriété « valeur initiale ». la valeur entrée doit être
une valeur BD et non un élément liste.

6.4. Les groupes de boutons d’option


Les groupes de boutons d’option sont des conteneurs logiques de boutons d’option. De ce
fait, un groupe de boutons d’options est un élément et les valeurs des boutons d’options sont les
valeurs possibles de l’élément. A l’image des éléments liste et case à cocher, les groupes de
boutons d’option sont crées via l’éditeur de présentation, le navigateur d’objet ou la conversion
d’éléments texte créés par l’assistant bloc de données. Pour mettre en œuvre ce type d’éléments
nous convertissons l’élément MSTATUS en groupe de boutons d’options gérant les valeurs M, C
et même D (Divorcé) et V (veuf). Nous ajoutons exprès deux valeurs par rapport à celles de
notre case à cocher pour démontrer la différence entre les groupes de boutons d’options –
permettant de gérer plus que deux valeurs- et les cases à cocher –permettant de gérer exactement
deux valeurs et pas plus-.
Voici par ailleurs les étapes de création de notre groupe de boutons d’options MSTATUS :
1. Convertir l’élément texte MSTATUS en « groupe de boutons d’options » par la
propriété « Type d’élément ».
2. Paramétrer la propriété « correspondance d’autres valeurs » pour tenir en compte de
l’interrogation d’enregistrements ayant une valeur de MSTATUS différente des valeurs
qu’on va programmer (M, C, D et V).
3. Initialiser la valeur du groupe de boutons d’options (« valeur initiale »).
4. Ajouter un bouton d’option pour chaque valeur possible (dans notre cas, quatre
boutons). Pour chaque bouton instancier les noms des boutons (exemple, OM, OC,
OD et OV), les libellés (Marié, Célibataire, Divorcé et Veuf) et les valeurs des boutons
(M, C, D et V).
5. Ne pas oublier de bien placer manuellement les boutons d’options sur le canevas.

6.5. Les éléments affichés


Les éléments affichés sont des éléments qui permettent la consultation de texte, mais
n’autorisent pas la mise à jour. Sa création est aussi simple que n’importe quelle création d’un
Chapitre 6 : Cases à Cocher, Listes, Boutons d’Option et Eléments Affichés 37

élément ; il suffit de l’ajouter à partir du navigateur d’objets dans un bloc et puis l’affecter à un
canevas. Ou encore, l’insérer à partir de l’éditeur de présentation via la palette d’outils.
L’une des utilisations des éléments affichés, consiste à afficher des valeurs calculées à partir
d’un ou de plusieurs éléments. Il existe deux modes de calcul ; une formule qui est le résultat
d’une expression PL/SQL basée sur d’autres éléments ou un récapitulatif qui est une fonction
de groupe (résumé) appliquée sur un ensemble de valeur d’un élément (somme, min, max,
moyenne etc.).
Pour illustrer ces deux modes de calcul, nous essayerons de construire un élément affiché
calculé qui permet à l’utilisateur de consulter le salaire annuel de chaque employé. Par la suite
nous essayerons d’insérer un élément affiché calculé qui permet la consultation de la charge
salariale totale de l’entreprise.
Formule :
1- Insérer un élément affiché à la suite du dernier élément du tabulaire ou du formulaire
EMP.
2- Lancer les propriétés de cet élément (en double-cliquant dessus). Changer son nom à
SALANN, son type de données à NUMBER, son invite à « Salaire Annuel » et passer par
la suite au groupe de propriétés « Calcul ».
3- Instanciez Mode de Calcul à Formule, par la suite saisissez dans la propriété « Formule »
votre expression :
:BLOCEMP.SAL*12+NVL(:BLOCEMP.COMM,0)
Récapitulatif :
1- Insérer un élément affiché à la suite du dernier élément du tabulaire ou du formulaire
EMP.
2- Lancer les propriétés de cet élément (en double-cliquant dessus). Changer son nom à
SUMSAL, son type de données à NUMBER, son invite à « Charge Salarial» et passer par la
suite au groupe de propriétés « Calcul ».
3- Le Mode de Calcul doit être instancié à « Récapitulatif », Fonction Récapitulatif à
« Somme », Bloc Récapitulatif à « BLOCEMP » et Elément Récapitulatif à « SAL ».
4- Lancer les propriétés de « BLOCEMP » et mettre la propriété Interroger tous les
Enregistrements à « Oui ». En effet, la somme est calculée à partir de l’ensemble des
valeurs chargées dans l’élément SAL, et non directement à partir de la base de données. Il
en découle qu’on ne peut pas se permettre d’extraire les enregistrements du bloc
BLOCEMP tranche par tranche et sur demande de l’utilisateur. Les enregistrements
doivent être ramenés en totalité pour pouvoir établir le bon calcul.
Chapitre 7 Implémentation des Déclencheurs

7.1. Introduction
Si au chapitre précédent nous avons vu la définition des déclencheur –axée sur trois
composantes ; le type, le code et la portée-, dans ce chapitre nous allons voir (1) les outils qui
nous permettent de créer un déclencheur et (2) les routines (fonctions prédéfinis) et les
instructions qu’on peut incorporer.

7.2. Création d’un déclencheur


La première étape importante pour la construction d’un déclencheur est la sélection de la
portée du déclencheur ou plus précisément l’objet sur lequel il porte ; il s’agit du module form,
d’un bloc ou d’un élément. Par la suite, le déclencheur est créé soit (1) via le navigateur d’objet,
comme on crée n’importe quel objet, soit (2) dans l’éditeur de présentation en cliquant avec le
bouton droit sur l’objet définissant la portée du déclencheur, soit (3) en lançant l’éditeur de
présentation après avoir sélectionné notre objet.
Dans tous les cas, une liste LOV des types de déclencheurs apparaîtra pour permettre au
développeur de sélectionner l’événement à programmer. En sélectionnant un événement,
l’éditeur PL/SQL est lancé, et affiche toutes les composantes du déclencheur à savoir le nom, le
type, l’objet et le code.

7.3. Utilisation des variables


Les variables qu’on peut créer, modifier, consulter voire tuer sont de deux types :
 Les variables PL/SQL : elles sont déclarées dans la section DECLARE, et reste
disponibles dans tout le déclencheur.
 Les variables forms : ces variables sont aperçues comme variables externes par
PL/SQL et sont alors précédées par deux points « : ». Ces variables ne sont
naturellement pas déclarées dans la section DECALRE et leur portée n’est pas
restreinte sur le déclencheur en cours. Voici par ailleurs un tableau récapitulatif des
types de variables forms :
Type Syntaxe Portée Utilisation
Eléments :nom_bloc.nom_elt Module form et menu attaché Interaction avec l’utilisateur
Globale :GLOBAL.nom_var Tous les modules de la session courante Stockage de chaines de caractères
Paramètre :PARAMETER.nom_var Module form courant Passer des valeurs à l’intérieur des
objets du module.
Système :SYSTEM.nom_var Module form courant Etat du module
La routine DEFAULT_VALUE sert à assigner une valeur initiale à une variable
globale. Forms crée la variable globale si elle n’existe pas. On peut aussi utiliser la
routine ERASE pour supprimer une variable globale.

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]
Chapitre 7 : Implémentation des Déclencheurs 39

7.4. Les fonctions prédéfinies de Forms Builder


Il existe plusieurs fonctions prédéfinies (appelées routines) dans Forms Builder. Ces routines
sont définis dans des packages intégrés et sont de deux types : fonction ou procédure.
Les fonctions prédéfinies appartiennent au package d’extensions standards, ou à d’autres types
de packages. Le premier type de package inclut des fonctions intégrés au langage standard
PL/SQL et sont appelés directement sans l’utilisation d’un préfixe (exemple :
EXECUTE_QUERY;). Le deuxième type de package inclut des fonctions prédéfinis pour des
utilisations particulières. Ces fonctions requièrent l’utilisation d’un préfixe lors de leurs appels (le
nom du package) (exemple ORA_JAVA.CLEAR_EXCEPTION;). La suite du tutorial
concernera seulement les fonctions extensions standards.
Nous présentons dans ce tableau un ensemble réduit de routines forms :
Procédure/Fonction Routine Description
P EDIT_TEXTITEM Lance l’éditeur texte de l’élément texte courant.
P SHOW_EDITOR Lance un éditeur texte spécifié en paramètre.
P LIST_VALUES Lance la LOV de l’élément texte courant.
Lance la LOV spécifié et retourne TRUE si l’utilisateur a
F SHOW_LOV
sélectionné une valeur sinon FAUX.
P ENTER_QUERY Lance le mode Entrer Interrogation.
P EXECUTE_QUERY Exécute une interrogation (en mode normal ou EQ).
Quitte la forme si le mode est normal, sinon annule l’interrogation
P EXIT_FORM
si le mode est EQ.
F GET_ITEM_PROPERTY Retourne la valeur d’une propriété spécifiée d’un élément spécifié.
Affecte une valeur spécifiée à une propriété spécifiée d’un élément
P SET_ITEM_PROPERTY
spécifié.
P SHOW_VIEW Affiche un canevas spécifié.
P HIDE_VIEW Rend invisible un canevas spécifié.
P GO_BLOCK Navigue jusqu’à un bloc spécifié.
P GO_ITEM Navigue jusqu’à un élément spécifié.
P MESSAGE Affiche un message texte spécifié dans la barre d’état de la fenêtre.
F SHOW_ALERT Affiche une alerte spécifiée et retourne la réponse de l’utilisateur.
Bibliographie

Livres
[1] Pam Gamer. Oracle 9i Forms Developer: Build Internet Applications: Instructor Guide: Volume I.
Oracle Corporation, 366 pages, Juillet 2002.
[2] Pam Gamer. Oracle 9i Forms Developer: Build Internet Applications: Instructor Guide: Volume II.
Oracle Corporation, 356 pages, Juillet 2002.
[3] Pam Gamer. Oracle 9i Forms Developer: Build Internet Applications: Instructor Guide: Volume III.
Oracle Corporation, 184 pages, Juillet 2002.
[4] Bulusu Lakshman. Oracle Developer Forms Techniques. Sams Editions, 264 pages, Février
2000.
[5] Baman Motivala. Oracle Forms Interactive Workbook. Prentice Hall PTR Editions, 467
pages, Mars 2000.

Tutoriaux
[6] Sheik Yerbouti. Le guide Oracle Forms 9i/10g. Developpez.com, Juin 2005.

Oracle Developer Forms – Document 1.1


Feedbacks à [email protected]

Vous aimerez peut-être aussi