Questions de liste

Dans un exemple précédent, nous avons abordé un cas dans lequel il était nécessaire de regrouper les informations sur les revenus des personnes d'un foyer. Pour ne collecter que les informations sur les revenus des personnes qui en ont réellement, une question a été ajoutée à la page 'Détails des membres du foyer' pour indiquer si la personne a des revenus ou non.

IEG fournit une alternative permettant d'éviter de poser la même question booléenne à plusieurs entités. Une question de liste peut être utilisée pour regrouper simultanément toutes les réponses.

Poursuivons avec l'exemple précédent où des informations sur les personnes ont été collectées. L'attribut hasIncome a été ajouté à l'entité Person pour indiquer si les informations doivent être collectées pour la personne, comme suit :

Figure 1. Schéma Has Income Person
<xs:element name="Person">
  <xs:complexType>
    ...
    <xs:attribute name="hasIncome" type="IEG_BOOLEAN"/>

Comme les questions, les questions de liste doivent être ajoutées à un cluster. Les questions de liste nécessitent que vous indiquiez le type des entités qui seront affichées dans la liste. L'ID de la question de liste correspond au nom de l'attribut booléen qui doit être défini si l'utilisateur sélectionne un élément dans la liste. Comme avec les questions, une question de liste doit posséder un libellé pour indiquer le but de la question. Les questions de liste doivent également posséder un libellé d'élément. Le libellé d'élément indique l'attribut des entités à utiliser pour identifier les entités dans la liste. Dans l'exemple suivant, le premier nom des membres du foyer s'affiche pour les identifier.

Figure 2. Question de liste
<question-page id="AnyoneHaveIncome">
...
  <cluster>
    <list-question id="hasIncome" entity="Person">
      <label id="HasIncome.Label">
             <![CDATA[Quelles personnes ont des revenus ?]]>
      </label>
      <item-label>
        <label-element attribute-id="firstName" />
      </item-label>
    </list-question>
  </cluster>
</question-page>

Plutôt que d'ajouter une question à la boucle où les détails des membres du foyer sont collectés, une liste contenant les membres du foyer peut être affichée, une fois les détails capturés. L'utilisateur peut ensuite sélectionner les membres qui ont des revenus.

Les questions de liste sont particulièrement utiles lorsqu'elles sont utilisés avec une boucle for-each, faisant référence à la question qui a été définie dans l'expression de critère de la boucle de la question de liste. Les questions de liste peuvent également être utilisées avec des types d'entité autres que Person.