Rubrique précédente: Pré-remplissage d'une zone combinée en fonction d'un objet de données de rapport

Rubrique suivante: Utilisation d'expressions JavaScript dans des champs


Utilisation des données saisies par l'utilisateur pour pré-remplir une boîte de sélection

Vous pouvez utiliser les données saisies par l'utilisateur dans un ou plusieurs champs du formulaire pour déterminer les valeurs d'une boîte de sélection. Cette option est utile lorsque vous voulez que l'utilisateur puisse réaliser plusieurs choix valides à partir de votre source de données, mais qu'il ne puisse pas spécifier une sélection personnalisée. Elle permet donc d'améliorer la standardisation et la validité des sélections des utilisateurs tout en leur offrant généralement plusieurs options parmi lesquelles choisir.

Cette technique est souvent utilisée dans les formulaires avec des boîtes de sélection pour le pays et l'état. Les attributs reportobjid et reportobjvars vous permettent de configurer la boîte de sélection de l'état pour qu'elle n'affiche que les états correspondant au pays choisi par l'utilisateur.

Pour utiliser cette technique de pré-remplissage d'une boîte de sélection en fonction du choix de l'utilisateur dans une boîte de sélection précédente, procédez comme suit. Ce processus utilise le scénario états-pays comme exemple.

  1. Dans le générateur de rapports, créez un objet de données qui interroge la source de données (par ex. la base de données de gestion) pour trouver les données que vous souhaitez dans la première boîte de sélection. La requête doit renvoyer la liste de toutes les valeurs possibles et remplir la zone de liste modifiable avec ces valeurs. Cette étape fait partie du processus de pré-remplissage d'une zone de liste modifiable en fonction d'un objet de données de rapport.

    Dans notre exemple, créez un objet de données de rapport pour récupérer la liste des pays dans la base de données.

    Lorsque le formulaire est affiché, l'objet de données de rapport s'exécute et remplit la liste déroulante avec les données obtenues.

    Consignez l'ID de l'objet de données pour vous y référer ultérieurement.

    Étudiez l'exemple de demande suivant pour un objet de données de la base de données de gestion. Cet exemple renvoie la liste des pays disponibles pour le service ou l'option de service auquel/à laquelle le formulaire est joint.

    SELECT country_id,country_name from my_country_table
    

    Cette demande réalise les actions suivantes.

  2. Ajoutez la première boîte de sélection dans le formulaire; c'est l'un des éléments d'un formulaire.
    1. Indiquez une valeur significative pour l'attribut _id puis enregistrez le formulaire. Lorsque vous spécifiez l'attribut reportobjvars, notez sa valeur pour pouvoir y faire référence ultérieurement.
    2. Pour la valeur de l'attribut HTML reportobjid, indiquez l'id de l'objet de données, puis enregistrez le formulaire.

    Remarque : Lorsque vous utilisez un objet de données pour remplir une zone de liste modifiable, n'ajoutez pas d'options dans la boîte de sélection car elles sont ignorées (inutilisées) lorsque l'utilisateur ouvre le formulaire. Toutes les options de la boîte de sélection sont ignorées, seul l'objet de données est pris en compte.

    1. Réglez l'attribut multiple de la boîte de sélection sur Faux pour que les utilisateurs ne puissent sélectionner qu'une option dans la zone de liste modifiable. Enregistrez le formulaire.
    2. Pour l'attribut de titre (texte de l'infobulle), vous pouvez rédiger un texte d'aide de type "Cliquez sur la flèche et faites défiler pour sélectionner une valeur". Enregistrez le formulaire.
    3. Vous pouvez également renommer le texte affiché par défaut pour le groupe de sélection "Sélectionner" par un nom plus parlant en le sélectionnant dans l'arborescence des composants, puis en cliquant sur l'icône Renommer en haut de l'arborescence.

      Remarque : Si des utilisateurs provenant de lieux différents utiliseront ce formulaire, vous pouvez rechercher le texte de l'info-bulle ou le nom de la boîte de sélection.

    4. Laissez l'attribut de valeur vide. Cette valeur est remplie avec le premier résultat renvoyé par la demande.
  3. Créez un deuxième objet de données de rapport pour récupérer une liste de valeurs de la base de données en fonction de la sélection de l'utilisateur dans la première boîte de sélection. Dans cet objet de données de rapport, spécifiez dans la requête des variables de rapport qui doivent être remplies en utilisant les données saisies par l'utilisateur dans d'autres champs du formulaire.

    Dans notre exemple, créez un deuxième objet de données de rapport pour récupérer les états depuis la base de données, en fonction du pays choisi par l'utilisateur. Procédez comme dans la première étape pour créer le deuxième objet de données de rapport.

  4. Ajoutez la deuxième boîte de sélection dans le formulaire. Cette boîte doit être pré-remplie en fonction du choix de l'utilisateur dans la première boîte de sélection. Procédez comme dans la deuxième étape pour créer la deuxième boîte de sélection, mais tenez compte des remarques suivantes.
  5. Dans la deuxième boîte de sélection, spécifiez l'attribut reportobjvars en utilisant le format suivant : $({'reportvar':valeur}).

    où la valeur valide peut être :

    Dans notre exemple, créez une deuxième boîte de sélection qui sera remplie par les états de la base de données, en fonction du pays choisi par l'utilisateur. Pour l'attribut reportobjvars de la boîte de sélection de l'état, spécifiez la fonction JavaScript prédéfinie ca_fdGetSelectedOptionValues, comme suit :

    $({'selected_country':ca_fdGetSelectedOptionValues ('<_id du formulaire> ','country' )[0]})
    
    _id du formulaire

    Spécifie la valeur de l'attribut _id du formulaire contenant la première boîte de sélection. Vous faites référence à ce formulaire dans la deuxième étape.

    country

    Spécifie la valeur de l'attribut _id de la première boîte de sélection. Vous avez créé et enregistré cette valeur à l'étape 2.

  6. Dans la première boîte de sélection, définissez l'attribut onchange pour récupérer les données de la deuxième boîte de sélection dès que l'utilisateur choisit une valeur dans la première boîte. Pour l'attribut onchange, spécifiez la fonction JavaScript prédéfinie ca_fdFetchSelectData, en utilisant le format suivant :
    ca_fdFetchSelectData('<_id du formulaire>','<field _id>'); 
    
    _id du formulaire

    Spécifie la valeur de l'attribut _id du formulaire contenant la deuxième boîte de sélection. Vous faites référence à ce formulaire dans la quatrième étape.

    field_id

    Spécifie la valeur de l'attribut _id du champ contenant la deuxième boîte de sélection. Vous avez créé et enregistré cette valeur à l'étape 4.

    Dans notre exemple, définissez l'attribut onchange pour la boîte de sélection du pays comme suit :

    ca_fdFetchSelectData('<_id du formulaire>','<_id du champ état>'); 
    
  7. Testez le formulaire pour vérifier qu'il fonctionne comme vous le souhaitez.

À titre de bonne pratique, il est recommandé de tester ce formulaire sur un service dans un environnement de test avant de l'utiliser dans un environnement de production.