Accéder au contenu principal Passer au contenu complémentaire

Créer une liste déroulante dynamique

Dans le premier scénario, vous avez codé en dur la liste dans un composant tJava. Cependant, les éléments de la liste peuvent provenir d'une source de données. Par exemple, les éléments peuvent être stockés dans une table de base de données et leur nombre peut être inconnu.

Ce Job va contenir les composants suivants :

  • un tMysqlInput pour effectuer une requête sur les informations relatives aux personnes, depuis la table employee,
  • un tJavaFlex pour préparer la liste déroulante dynamique et stocker la valeur sélectionnée par l'utilisateur·trice lors de l'exécution dans la variable de contexte,
  • un second tMysqlInput pour générer les informations traitées par le tJavaFlex,
  • un tLogRow pour afficher les résultats dans la console.

Procédure

  1. Déposez un composant tMysqlInput et un tJavaFlex de la Palette dans l'espace de modélisation graphique. Reliez les deux composants à l'aide d'un lien Row > Main.
  2. Déposez un second composant tMysqlInput et un tLogRow de la Palette dans l'espace de modélisation graphique. Reliez les deux composants à l'aide d'un lien Row > Main. Reliez le premier sous-Job au second à l'aide d'un lien Trigger > On Subjob Ok.
  3. Cliquez sur l'onglet Context et définissez une variable de contexte de type String, que vous nommez name.
  4. Double-cliquez sur le premier tMysqlInput et configurez-le comme dans l'exemple ci-dessous :
    1. ajoutez la requête suivante dans le champ de requête :
      "select name from employee"
    2. Modifier le schéma et configurer ce schéma.
  5. Cliquez sur le tJavaFlex pour ouvrir sa vue Basic settings et ajouter le code suivant.
    1. Dans la zone Start code :
      java.util.ArrayList<String> list=new
                                          java.util.ArrayList<String> ();
    2. Dans la zone Main code :
      list.add(row1.name);
    3. Dans la zone End code :
      String [] nameList=new String[list.size()];
                                      nameList=list.toArray(nameList);
                                      JFrame frame = new JFrame("Input Dialog Example");
                                      String returnValue = (String) JOptionPane.showInputDialog(frame,
                                      "Select the name you want to query?","Employee Information",JOptionPane.QUESTION_MESSAGE,null,nameList,nameList[0]);
                                      context.name=returnValue;
  6. Dans l'onglet Advanced settings du tJava, importez le chemin complet de la classe utilisée dans ce Job.
  7. Configurez le second tMysqlInput pour effectuer une requête sur les informations relatives aux personnes, depuis la table employee et utilisez le tLogRow pour afficher les résultats dans la console, comme dans le scénario ci-dessus.
  8. Exécutez le Job. Tous les noms dans la table seront les éléments de la liste, comme ci-dessous :
  9. Par exemple, sélectionnez Nicolas dans la liste. Les informations relatives à Nicolas sont interrogées depuis la table et affichées dans la console.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.