Question de table de codes

Si un attribut est défini dans un schéma DS en tant que table de codes et que la question s'affiche, le comportement par défaut consiste à afficher la question en tant que liste déroulante. Vous ne pouvez sélectionner qu'une réponse dans la liste déroulante.

Par exemple, s'il s'agit d'une condition requise pour capturer l'état d'un membre du foyer, une nouvelle définition de domaine peut être ajoutée pour représenter la table de codes AddressState et un attribut peut être ajouté à l'entité Person pour stocker l'état comme suit :

Figure 1. Table de codes et attribut d'état
...
<xsd:simpleType name="IEG_STATE_ADDRESS">
  <xsd:annotation>
    <xsd:appinfo>
      <D:options>
        <D:option name="code-table-name">AddressState</D:option>
      </D:options>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:restriction base="IEG_CODETABLE_CODE" />
</xsd:simpleType>
...

<xsd:element name="Person">
...
  <xsd:attribute name="homeState" type="IEG_STATE_ADDRESS" />

Une question relative à la capture des informations d'état peut être ajoutée au script comme suit :

Figure 2. Question Table de codes d'état
<question-page id="AboutYouPage" entity="Person">
...

  <cluster>
    <question id="homeState">
      <label id="State.Label">
        <![CDATA[Veuillez sélectionner votre état de résidence :]]>
      </label>
    </question>
  </cluster>

Lorsque le script est exécuté, la question est présentée à l'utilisateur sous forme de liste déroulante.

IEG prend également en charge la définition des questions de table de codes de sorte que l'utilisateur puisse effectuer plusieurs sélections.

Lorsqu'une question de table de codes ne dispose que d'une seule sélection, la question peut être stockée dans l'attribut unique d'une entité. Une question de table de codes à sélection multiple pouvant posséder plusieurs réponses, une séquence doit être ajoutée pour stocker toutes les réponses et un nouveau type d'entité doit être défini pour représenter les réponses dans la séquence.

Figure 3. Entité State
<xsd:element name="Person">

  <xsd:complexType>
    <xsd:sequence minOccurs="0">
      <xsd:element ref="State" minOccurs="0"
          maxOccurs="unbounded"/>
      </xsd:sequence>
...
  </xsd:complexType>
</xsd:element>

<xsd:element name="State">
  <xsd:complexType>
    <xsd:attribute name="stateCode" type="IEG_STATE_ADDRESS" />
  </xsd:complexType>
</xsd:element>

La création d'une question de table de codes à sélection multiple s'effectue en définissant l'attribut multi-select de la question sur true. Lors de l'ajout d'une question de table de codes à sélection multiple, le cluster auquel la question est ajouté doit être mappé sur le nouveau type d'entité représentant les réponses à la question. Dans notre exemple, le cluster doit être mappé sur l'entité State . La page qui contient la question à sélection multiple doit être mappée sur l'entité qui contient la séquence. Dans cet exemple, la page doit être mappée sur l'entité Person. Enfin, pour qu'un certain nombre d'options dans une question de table de codes à sélection multiple soit visible, une présentation doit être ajoutée à la question. La présentation doit indiquer le nombre de lignes visibles pour la question. Si le nombre d'options disponibles de la question dépasse le nombre de lignes indiquées dans la présentation, une barre de défilement est ajoutée à la question.

Figure 4. Question Table de codes à sélection multiple
<question-page id="AboutYouPage" entity="Person">
...

  <cluster entity="State">
    <question id="stateCode" multi-select="true">
      <label id="State.Label">
        <![CDATA[Veuillez sélectionnez vos états de résidence :]]>
      </label>
      <layout>
        <num-rows>4</num-rows>
      </layout>
    </question>
  </cluster>

Lorsque le script est exécuté, la question est proposée à l'utilisateur sous la forme d'une liste de descriptions de table de codes avec une case à cocher pour chaque élément.