Introduction À Oracle Developer Forms
Introduction À Oracle Developer Forms
Introduction À Oracle Developer Forms
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.
Le serveur de données est Oracle Server Database. C’est là où résident les données.
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é.
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).
Module
1..n
1..n Form
Bloc de
données
Fenêtre
1..n
1..n
Canevas 1..n Eléments
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 : outisassistant 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.
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
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).
(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.
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
é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
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
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.
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
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.
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.
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
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 (EditionAfficher liste…). L’utilisateur
peut sélectionner une ligne et valider, les valeurs JOB et DEPTNO seront affectés à
BEMP.JOB et BEMP.DEPTNO.
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.
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.
é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.
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.