> Tech > Les détails du script

Les détails du script

Tech - Par iTPro - Publié le 24 juin 2010
email

Les tags du listing 2 sont statiques et ne changent pas pendant l'exécution du programme. Cependant, l'attribut id de chaque élément est un moyen commode de référencer l'élément dans le script et, par l'intermédiaire de ce dernier, de donner vie à  l'élément - un job pour DHTML.
UserUpdate.hta contient un

Les détails du script

préambule
de script qui vérifie que vous
êtes connecté à  un domaine AD, puis
connecte (lie) à  l’objet rootDSE ADSI.
L’objet rootDSE contient plusieurs
propriétés qui décrivent le domaine ; la
propriété defaultNamingContext est la
propriété qui contient le DN (distinguished
name) du domaine courant.
Le script tente de lier l’objet rootDSE
et lit la propriété defaultNaming-
Context de l’objet. Si l’objet rootDSE
renvoie un numéro d’erreur autre que
0, le script affiche d’abord un message
indiquant qu’un domaine par défaut
n’a pas pu être trouvé, et UserUpdate.
hta se ferme. Sinon, UserUpdate.hta
initialise strDomain avec la valeur du
domaine par défaut. Le script initialise
cette variable globalement parce que
plusieurs sous-routines l’utilisent.
Après le préambule, UserUpdate.
hta charge automatiquement la sousroutine
Window_Onload. Cette sousroutine
utilise DHTML pour établir le
titre de la fenêtre d’ouverture de 3U,
redimensionner la fenêtre et appeler la
sous-routine InitialUIState. A ce stade,
la fenêtre d’ouverture apparaît, mais
les éléments HTML sur la page n’ont
pas été positionnés et ne contiennent
aucune donnée – pas même les labels
de champs. Cette étape est couverte
en appelant la sous-routine Unitial-
UIState.
La sous-routine InitialUIState en
appelle quatre autres – SetColumns,
BuildElement, SetButtons et SetIFrame
– pour préparer l’interface à 
l’opération d’entrée. Le listing 3
montre un sous-ensemble d’appels de
sous-routine de InitialUIState. La sousroutine
SetColumns utilise la propriété
Style.CssText pour positionner les
deux colonnes div (Col1 et Col2) sur la
page. Col1 et Col2 contiennent tous les
champs de la page, à  l’exception de
Display Name. Plus précisément, Col1
contient les champs du côté gauche de
la page et Col2 contient ceux du côté
droit.
InitialUIState appelle ensuite la
sous-routine BuildElement neuf fois,
une fois pour chaque ensemble d’éléments
div, label et input nécessaires
pour chaque champ de la page.
BuildElement utilise DHTML pour
configurer divers attributs de chaque
affichage de champ.
Le renvoi A du listing 3 montre les
paramètres que la sous-routine Build-
Element reçoit pour configurer le
champ Display Name. Cette sous-routine
prend huit paramètres. Le premier
– DisplayName – est le préfixe qui identifie
à  la fois l’objet tag div (Display-
NameDiv) et l’ob tag label (Display-
NameLbl). BuildElement ajoute div et
lbl au préfixe pour référencer le tag approprié. Le deuxième paramètre,
Display Name, est le nom
du label qui apparaît sur la page. On
voit que la lettre D dans le mot Display
est entourée par les éléments de soulignement
et . De ce fait, le
D dans Display name apparaît souligné,
comme on le voit figure 1. Le troisième
paramètre, DisplayNameInput,
spécifie le nom du champ ou de l’élément
d’entrée Display Name. Les quatrième
et cinquième paramètres (mis à 
70 et 70 pour le champ Display Name)
spécifient la taille et la longueur du
champ, respectivement. La taille indique
le nombre de caractères visibles
dans le champ et la longueur indique
le nombre maximum de caractères que
le champ accepte. Le sixième paramètre
(mis à  0 pour le champ Display
Name) spécifie l’ordre de tabulation
des champs. En actionnant la touche
Tab, on déplace la mise en évidence
d’un champ au suivant, dans l’ordre de
tabulation. Le septième paramètre
(mis à  D dans cet exemple) configure
la touche d’accès au champ (aussi appelée
touche de raccourci). Le soulignement
de la lettre D dans le mot
Display (qui apparaît, on l’a vu, dans le
deuxième paramètre) ne crée pas automatiquement
une touche de raccourci
pour amener le curseur dans le
champ. La sous-routine BuildElement
met la propriété AccessKey du label
Display Name à  D, de sorte que la
combinaison de touches Alt+D applique
la surbrillance à  l’objet tag
DisplayNameInput Input. Le huitième
paramètre dans chaque appel Build-
Element est l’IDAPDisplayName de
l’attribut AD, que BuildElement fournit
pour la sous-routine ADSISearch. La
sous-routine BuildElement positionne
aussi chaque tag div de niveau de
champ sur la page et définit les autres
attributs d’éléments.
Les sous-routines SetButtons et
SetIFrame définissent diverses
propriétés de base pour les éléments
button et l’élément iframe qui apparaissent
sur la page. Par exemple, ces
sous-routines positionnent des éléments,
nomment des boutons, et mettent
le défilement en mode automatique
(paramètre auto sur
l’élément iframe).
Les sous-routines que je
viens de décrire vont maintenant
construire les éléments
d’interface qui apparaissent
dans UserUpdate.hta, à  l’exception
de la table initiale qui
contient une liste d’en-têtes
dans le iframe. La sous-routine
SetIFrame ne crée pas en réalité
la table initiale pour le iframe.
Au renvoi C du listing 2, on
voit que le iframe contient un
attribut src qui est mis à  « results.
htm ». Cet attribut ordonne
au iframe de charger le
contenu de Results.htm dans le
iframe.
Comme le montre le renvoi
C du listing Web 2, Results.htm
contient un élément table et un
élément thread à  l’intérieur de l’élément
body. L’attribut src de l’élément
iframe indique le contenu à  charger
dans le frame. Dans ce cas, une table
avec une ligne d’en-tête est chargée
dans l’élément iframe. En utilisant le
iframe de cette manière on peut faire
défiler la table dans UserUpdate.hta
sans faire défiler la fenêtre principale
de l’application. Dans Results.htm, je
définis les actions pour trois événements
: onLoad, onMouseOver et
onClick. L’événement onLoad, spécifié
pour l’élément body, appelle la sousroutine
BuildInitialTable qui apparaît
au renvoi B. BuildInitialTable crée les
lignes dans l’en-tête de table et définit
les attributs initiaux sur la table. Les
événements onMouseOver et onClick
sont spécifiés pour l’élément table.
Quand vous déplacez la souris sur la
table, l’événement onMouseOver se
déclenche et le curseur se transforme
en un doigt pointé (c’est-à -dire, le
pointeur Link Select) afin que vous
puissiez déterminer quand la souris
surplombe les lignes et les cellules de
la table. Quand vous cliquez sur une
ligne, l’événement onClick appelle la
sous-routine HighlightRow qui apparaît
au renvoi A. HighlightRow met en
évidence une ligne dans la table quand
on clique n’importe où dans la ligne.

Téléchargez gratuitement cette ressource

Les 7 étapes d’un projet de dématérialisation RH

Les 7 étapes d’un projet de dématérialisation RH

Dans ce livre blanc, nous vous donnons les clés pour concevoir votre projet de dématérialisation RH. Vous découvrirez chacune des étapes qui vous permettront d’apporter de nouveaux services aux collaborateurs, de vous adapter aux nouvelles pratiques et de renforcer la marque employeur.

Tech - Par iTPro - Publié le 24 juin 2010