Bouclage parmi les personnes

Le type d'entité à boucle le plus courant dans les scripts IEG est, de loin, l'entité Person. IEG est fourni avec quelques fonctions pratiques pour vous aider à cet égard. La première fonction est celle des onglets de personnes. Lorsque vous utilisez des onglets de personnes, l'utilisateur se retrouve face à un panneau entre le titre de la page et son contenu principal, qui affiche toutes les personnes du foyer et met en évidence la personne pour laquelle l'utilisateur entre actuellement des informations.

Chaque personne est représentée par son prénom et une icône qui indique s'il s'agit d'un homme, d'une femme, d'un garçon ou d'une fille. Une icône de personne générique est également fournie pour les personnes dont le sexe et la date de naissance n'ont pas encore été indiqués. Configurer une page pour utiliser des onglets de personnes est aussi simple que de définir l'attribut show-person-tabs sur true pour cette page. Notez que la page doit être dans une boucle dont l'attribut d'entité est défini sur "Personne".

Lors de l'utilisation sur une page dans une boucle For, la première fois que l'utilisateur entre dans la boucle, les seules informations connues sont le nombre de personnes devant être capturées. Le système crée ensuite des informations sur les personnes tandis que l'utilisateur passe dans la boucle. La seule indication que peut fournir l'onglet Personnes est le nombre de personnes restant à saisir, et non leur âge ou leur sexe.

Notez que l'attribut show-person-tabs peut également être défini sur des pages dans une boucle imbriquée, tant que l'entité pour la boucle externe est définie sur 'Person'. De cette façon, l'utilisateur peut toujours voir la personne pour laquelle il collecte des informations dans la boucle interne.

L'élément page-relation est une autre fonction d'IEG pouvant être utilisée pour aider à capturer des informations sur les personnes d'un ménage. Cet élément fournit un moyen simple de demander au système de capturer les relations entre les membres du ménage. Pour inclure un élément page-relation dans un script, procédez comme suit :

Figure 1. Code XML de page de relations
<relationship-page id="RelationshipPage" show-person-tabs="true">
  <title id="RelationshipPage.Title">
    <![CDATA[Household Relationships]]>
  </title>
</relationship-page>

Le système va automatiquement faire passer l'utilisateur dans une boucle des personnes saisies jusqu'à présent, et va lui permettre de saisir des détails sur ses relations avec chacun des autres membres du ménage. Le système demandera simplement à l'utilisateur de saisir les relations qui n'ont pas encore été entrées. Ainsi, pour chaque personne du ménage, il y aura une relation de moins à saisir. Cela signifie qu'aucune relation ne sera capturée pour la dernière personne, car sa relation a déjà été saisie.

Par défaut, la page des relations ne demande que le type de chaque relation. Vous avez également la possibilité d'utiliser un indicateur pour enregistrer si une relation est une relation de tuteur non parent. Pour cela, vous pouvez utiliser la syntaxe suivante :

Figure 2. Code XML de page des relations avec indicateur de tuteur
<relationship-page id="RelationshipPage" show-person-tabs="true">
  <title id="RelationshipPage.Title">
    <![CDATA[Household Relationships]]>
  </title>
  <question id="caretakerInd">
    <label id="CaretakerInd.Label">
      <![CDATA[Is this a non-parent caretaker relationship]]>
    </label>
  </question>
</relationship-page>

L'indicateur de tuteur est la seule question qui peut être ajoutée directement à la page de relations. Les questions concernant les autres attributs d'une entité de la relation doivent être ajoutées à des clusters qui ont été ajoutés à la page de relations. Par exemple :

Figure 3. Code XML de page de relations avec attributs de relation
<relationship-page id="RelationshipPage" show-person-tabs="true">
  <title id="RelationshipPage.Title">
    <![CDATA[Household Relationships]]>
  </title>
  <question id="caretakerInd">
    <label id="CaretakerInd.Label">
      <![CDATA[Is this a non-parent caretaker relationship?]]>
    </label>
  </question>
  <cluster>
    <question id="startDate" mandatory="true">
      <label id="StartDate.Label">
        <![CDATA[Relationship Start Date:]]>
      </label>
    </question>
  </cluster>
</relationship-page>

Les clusters ajoutés à une page de relations seront répétés pour chaque relation à capturer.

Le texte d'affichage peut être ajouté directement à une page de relations. Ce texte s'affiche une fois sur la page, quel que soit le nombre de relations capturées. Le texte d'affichage s'affiche en haut de la page, au-dessus des relations.

Un récapitulatif des relations enregistrées pour le ménage peut facilement être inclus dans une page de synthèse, grâce à l'ajout d'un élément liste-récapitulatif-relation.

La liste des relations contiendra toujours au moins trois colonnes pour afficher les deux personnes impliquées dans la relation et le type de relation. Si vous avez capturé l'indicateur de tuteur sur votre page des relations, ou si vous avez capturé d'autres informations sur les relations, des colonnes peuvent être ajoutées à la liste de synthèse des relations pour afficher ces informations. Par exemple :

Figure 4. Code XML de liste de synthèse des relations
<relationship-summary-list>
  <title id="RelationshipSummaryPage.Title">
    <![CDATA[Person Relationships Summary]]>
  </title>
  <description id="PersonRelationshipSummaryPage.Description">
    <![CDATA[Person Relationship Summary Details]]>
  </description>
  <column id="caretakerInd">
    <title id="CaretakerInd.Title">
      <![CDATA[Caretaker?]]>
    </title>
  </column>
  <column id="startDate">
    <title id="StartDate.Title">
      <![CDATA[Start Date]]>
    </title>
  </column>
  <edit-link start-page="RelationshipPage"/>
</relationship-summary-list>

L'élément lien-éditer peut être utilisé dans une liste liste-récapitulatif-relation pour éditer des relations, selon le même fonctionnement de l'élément lien-éditer dans une liste (Edition d'enregistrements dans les listes).