Travail de Laurent Cottier

publicité
Projet de Diplôme, session 2003
Gestion des liens à l’intérieur d’un module
Introduction
Le but de ce rapport est de montrer les différentes recherches effectuées pour obtenir des liens
à l’intérieur d’un composant de module. Ces liens sont destinés à faciliter la navigation dans
un composant de module comprenant une grande quantité de champs. Ils permettent d’éviter
d’employer la barre de défilement. La solution doit rendre possible un pointage au milieu d’un
composant de module.
Les boutons de navigation
Un bouton de navigation permet, comme son nom l’indique, de naviguer à l’intérieur d’un
module, d’un module à un autre ou à l’intérieur d’un seul composant de module.
Malheureusement, la cible du bouton de navigation est toujours le début du composant de
module pointé. Aucun rajout de code ne permet un quelconque changement de direction. Ce
moyen ne constituait donc pas une solution.
La flèche montre bien la destination.
Gestion des liens à l’intérieur d’un module
Laurent Cottier
page 1 sur 5
27.05.2017
Projet de Diplôme, session 2003
Le lien hypertexte
Le lien hypertexte est la possibilité la plus « naturelle » qui vient à l’esprit. Il est en deux
parties : la première concerne l’ancre et la seconde le lien vers l’ancre. Avec HTML
(Designer génère des pages en HTML), la syntaxe pour l’ancre est <a name="test"></a> et
celle du lien est <a href="#test">lien</a>.
Créer le lien hypertexte est assez simple. L’écran ci-dessous résume la démarche nécessaire à
l’élaboration du lien :
Il faut juste ne pas oublier de changer les propriétés du composant de module comme suit :
Le problème surgit lorsqu’il s’agit de placer l’ancre. Si on fait afficher la source d’une page
générée par Designer, le code suivant concernant un champ apparaît :
<TR VALIGN="TOP"><TD ALIGN="LEFT"><B>Archive: </B></TD><TD ALIGN="LEFT">
<INPUT TYPE="text" NAME="P_ARCHIVE" SIZE="1" MAXLENGTH="2" VALUE="0"></TD></TR>
L’idéal serait de pouvoir rajouter …<B><A NAME="P2"></A>Archive:</B>… Mais
comme le code s’inscrit automatiquement, il est inadéquat de vouloir le retoucher ainsi. On
pourrait en effet modifier la page avec un éditeur HTML (Front Page par ex.), mais il faudrait
le faire pour toutes les objets sélectionnés et à chaque fois qu’un module est généré. Ce serait
une perte de temps que de vouloir le faire.
Gestion des liens à l’intérieur d’un module
Laurent Cottier
page 2 sur 5
27.05.2017
Projet de Diplôme, session 2003
Un unbound item a été rajouté au milieu des autres champs avec comme nom celui de la cible
du lien hypertexte. Cet artifice devait permettre à la source du lien de pointer sur ce champ
« artificiel », mais cela n’a pas été le cas. Dans cette optique, la valeur par défaut a aussi été
modifiée, également en vain.
Item group
La possibilité de créer des groupes (comme l’image ci-contre) laissait
supposer une avancée. Peut-être y avait-il une possibilité de prendre le
groupe pour cible.
Malheureusement, la plupart des capacités de cet outil ne sont pas
disponibles en Web PL/SQL. Il n’est pas possible non plus de pointer
sur un groupe tel que celui-ci.
Gestion des liens à l’intérieur d’un module
Laurent Cottier
page 3 sur 5
27.05.2017
Projet de Diplôme, session 2003
L’action Item
C’est d’un autre style de bouton que le bouton de navigation qu’est venue une solution. Pour
créer ce bouton, il faut suivre la démarche suivante :
-
sélectionner le bon style de bouton
-
Il faut lui donner un nom et sélectionner l’option « OnClick »
Gestion des liens à l’intérieur d’un module
Laurent Cottier
page 4 sur 5
27.05.2017
Projet de Diplôme, session 2003
-
Editer le code Javascript suivant :
document.getElementById('P_TEXTE').focus();
« P_TEXTE » symbolise le nom du champ à utiliser. Pour savoir quel est le nom du
paramètre correct, il faut la chercher dans la source de la page WEB manipulée. On
peut aussi connaître le paramètre grâce à l’application SQL Navigator. On peut faire
pointer un bouton sur n’importe quel champ de la table, pourvu qu’il soit affiché.
Cette solution est simple et efficace. Mais elle reste néanmoins limitée. Un bouton ne peut en
effet s’afficher que tout en haut ou tout en bas. Un développement plus poussé placerait les
boutons dans un autre frame, laissant ceux-ci toujours visible. La navigation serait à ce
moment idéale. Mais, faute de temps, cette solution est écartée.
Page 1
Page 2
Page 3
Page 4
Les boutons resteraient toujours visibles ainsi
Gestion des liens à l’intérieur d’un module
Laurent Cottier
page 5 sur 5
27.05.2017
Téléchargement