Listenfragen

In einem früheren Beispiel wurde die Anforderung untersucht, Informationen zum Einkommen der Personen eines Haushalts zu erfassen. Zum Erfassen der Einkommensinformationen nur der Personen, die tatsächlich ein Einkommen haben, wurde der Seite "Details zu den Haushaltsmitgliedern" eine Frage hinzugefügt, um anzuzeigen, ob die jeweilige Person über ein Einkommen verfügt oder nicht.

IEG bietet eine Alternative zum Abfragen derselben booleschen Frage für eine Anzahl an Entitäten an. Mithilfe einer Listenfrage können alle Antworten gleichzeitig erfasst werden.

Als Weiterführung des vorhergehenden Beispiels, wo Informationen zu den Personen eines Haushalts erfasst wurden, wird jetzt das Attribut hasIncome hinzugefügt, um anzuzeigen, ob für die jeweilige Person Einkommensinformationen erfasst werden sollen. Das geschieht wie folgt:

Abbildung 1. Personenschema mit "hasIncome"
<xs:element name="Person">
  <xs:complexType>
    ...
    <xs:attribute name="hasIncome" type="IEG_BOOLEAN"/>

Wie andere Fragen auch, müssen Listenfragen einem Cluster hinzugefügt werden. Wo Listenfragen differieren, muss der Typ der Entitäten angegeben werden, die in der Liste angezeigt werden sollen. Die ID der Listenfrage entspricht dem Namen des booleschen Attributs, das gesetzt werden sollte, wenn der Benutzer einen Eintrag aus der Liste auswählt. Wie andere Fragen auch, sollte eine Listenfrage mit einer Beschriftung versehen sein, die den Zweck der Frage angibt. Listenfragen sollten auch ein Element zur Elementbeschriftung besitzen. Die Elementbeschriftung gibt an, welches Attribut aus den Entitäten zur Ermittlung der Entitäten in der Liste verwendet werden sollte. Im folgenden Beispiel werden die Vornamen der Haushaltsmitglieder angezeigt, um sie zu ermitteln.

Abbildung 2. Listenfrage
<question-page id="AnyoneHaveIncome">
...
  <cluster>
    <list-question id="hasIncome" entity="Person">
      <label id="HasIncome.Label">
             <![CDATA[Which people have income?]]>
      </label>
      <item-label>
        <label-element attribute-id="firstName"/>
      </item-label>
    </list-question>
  </cluster>
</question-page>

Statt der Schleife, mit der die Angaben zu den Haushaltsmitgliedern erfasst werden, eine Frage hinzuzufügen, kann nach dem Erfassen der Angaben zu den Haushaltsmitgliedern eine Liste der Haushaltsmitglieder angezeigt werden. Daraufhin kann der Benutzer die Mitglieder auswählen, die über ein Einkommen verfügen.

Listenfragen sind besonders dann hilfreich, wenn sie in Verknüpfung mit einer Foreach-Schleife verwendet werden und auf die Frage verweisen, die in der Listenfrage im Kriterienausdruck der Schleife gesetzt wurde. Listenfragen können auch mit anderen Entitätstypen als den Personentypen verwendet werden.