Tutoriel 5 : Ecriture d'un gestionnaire d'événements en JavaScript
Ce tutoriel explique comment écrire un ensemble de gestionnaires d'événements. Dans ce tutoriel, nous supposons que vous disposez d'une conception de rapport élémentaire basée sur la base de données d'exemple Classic Models, Inc. En ce qui concerne la conception de rapport de départ, la seule contrainte est qu'elle doit contenir une table de clients contenant une colonne réservée au nom du client. Ce tutoriel consiste à dénombrer les clients dont le nom contient la chaîne "Mini" et à afficher le résultat dans une fenêtre en incrustation.
Dans ce tutoriel, vous effectuerez les tâches suivantes :
Tâche 1 : Ouvrir la conception du rapport
Ouvrez une conception de rapport utilisant la base de données d'exemple Classic Car et affichant une table contenant des noms de clients.
- Si cela est nécessaire, ouvrez le navigateur en sélectionnant Fenêtre->Afficher la vue->Navigateur.
- Cliquez deux fois sur la conception de rapport appropriée. Le fichier s'ouvre dans l'éditeur de présentation, comme sur la figure 22-4.
Tâche 2 : Créer et initialiser un compteur dans la méthode Table.onCreate( )
Pour dénombrer les clients dont le nom contient la chaîne Mini, vous devez au préalable déclarer un compteur général et définir sa valeur sur zéro. La méthode Table.onCreate( ) constitue l'emplacement le plus approprié pour cette opération, car elle s'exécute avant l'extraction des lignes. Il est possible d'incrémenter de manière conditionnelle ce compteur dans la méthode Row.onCreate( ).
- Dans Présentation, sélectionnez la table en plaçant le curseur près du coin inférieur gauche de la table. L'icône table s'affiche, comme sur la figure 22-5.
- Sélectionnez l'onglet Script. L'onglet Script s'affiche, comme sur la figure 22-6.
- Tapez la ligne de code suivante dans la fenêtre de script de la méthode onCreate( ) :
- Pour exécuter le rapport et vérifier que le code n'a pas créé d'erreur, sélectionnez Aperçu.
- Faites défiler la fenêtre jusqu'au bas du rapport, à l'endroit où les messages d'erreur JavaScript s'affichent. Si aucune erreur n'est indiquée, le rapport est similaire à l'illustration de la figure 22-7.
Si un message d'erreur est visible, il se peut que vous ayez mal tapé une instruction. Si tel est le cas, retournez à la fenêtre de script, sélectionnez la méthode que vous venez de modifier, corrigez l'erreur et cliquez à nouveau sur Aperçu.
Tâche 3 : Incrémenter le compteur de manière conditionnelle dans la méthode Row.onCreate( )
Pour dénombrer les clients dont le nom comporte la chaîne Mini, vous devez examiner chaque nom de client et ajouter 1 au compteur à chaque nouvelle occurrence. La méthode Row.onCreate( ) est l'emplacement le plus adapté pour cette opération. Elle est exécutée à chaque extraction d'une ligne de données depuis la source de données.
- Dans Présentation, sélectionnez la ligne, puis Script.
- Déroulez la liste des méthodes située en haut de la fenêtre de script et sélectionnez onCreate, comme indiqué sur la figure 22-8.
- Saisissez dans la fenêtre Script la ligne de code JavaScript suivante :
Vous remarquerez que lorsque vous entrez le point après cette ligne, une fenêtre en incrustation s'affiche. Elle contient toutes les méthodes et propriétés disponibles, et notamment getRowData. Cette ligne de code extrait une instance de IRowData, dont la méthode getExpressionValue( ) permet d'extraire le contenu d'une colonne sur la ligne.
- Saisissez la ligne de code JavaScript suivante sous la ligne que vous venez d'entrer :
Cette ligne de code renvoie le contenu de la colonne de la table, qui provient de la colonne CUSTOMERNAME du fichier.
Vous pouvez utiliser la palette JavaScript pour insérer chacun des éléments suivants dans la ligne précédente :
- indexOf( )
Sélectionnez Objets ( JavaScript ) natifs->Fonctions de chaîne->indexOf( )
- !=
Sélectionnez Opérateurs->Comparaison->!=
- +=
Sélectionnez Opérateurs->Affectation->+=
- Sélectionnez Aperçu pour exécuter à nouveau le rapport et vérifier que le code saisi n'a pas créé d'erreur.
Tâche 4 : Afficher le résultat à l'aide de
la méthode ReportDesign.afterFactory( )
Pour afficher le nombre de clients dont le nom contient la chaîne Mini, vous devez insérer du code dans une méthode s'exécutant après le traitement de toutes les lignes de la table. L'emplacement le plus adapté pour ce code est la méthode ReportDesign.afterFactory( ).
- Dans Strucure, sélectionnez la conception de rapport comme sur la figure 22-9.
- Sélectionnez la méthode afterFactory( ) dans la liste déroulante de la fenêtre de script.
- Entrez le code suivant dans la méthode afterFactory( ) :
- Sélectionnez Aperçu pour voir les résultats. Si aucune erreur n'a été détectée dans le code, vous voyez un rapport semblable à celui de la figure 22-10.
Si vous ne voyez pas la fenêtre Count of Minis, cherchez-la derrière la fenêtre d'Eclipse. Si la fenêtre Count of Minis ne s'affiche pas, cela est sans doute dû à une erreur de script causée par une erreur dans l'une de vos saisies de code.
Si vous pensez qu'une erreur de script est survenue, faites défiler la fenêtre jusqu'au bas du rapport, à l'endroit où les messages d'erreur de script s'affichent. Dans la plupart des cas, un message d'erreur abrégé apparaît en regard d'un signe ( + ). Le signe plus indique qu'il existe un message d'erreur plus détaillé, visible uniquement lorsque vous développez le message d'erreur abrégé. Pour développer le message d'erreur abrégé, cliquez sur le signe plus. Faites défiler vers le bas pour afficher le message d'erreur détaillé.
