Bonsoir,
J’ai un formulaire comportant plusieurs groupes, dont les groupes 2 et 3 sont définis en begin_repeat.
Le groupe 1 sert à enregistrer la liste des membres du ménage. À cette étape, tous les noms des membres sont correctement saisis et affichés.
Cependant, lorsque je passe au groupe 2, qui est également en repeat, seul le nom du premier membre du ménage s’affiche pour toutes les répétitions, au lieu d’afficher le nom correspondant à chaque membre.
Auriez-vous une idée de l’origine de ce problème et de la manière de le corriger ?
Merci d’avance pour votre aide.
Welcome to the community, @enqueteur_ci1! Did you mean everything that is entered in the first repeat should automatically pop-up in the second repeat? Feel free to correct me if I understood your issue differently.
Oui, exactement.
Dans la première répétition, j’enregistre tous les membres du ménage (nom, âge, sexe, etc.). Ensuite, dans une deuxième répétition, je souhaite collecter des informations complémentaires pour chaque membre.
Mon objectif est que chaque membre enregistré dans la première répétition apparaisse automatiquement dans la deuxième répétition afin que je puisse saisir les informations correspondantes.
Actuellement, seul le premier membre du ménage s’affiche dans toutes les répétitions de la deuxième section.
Merci.
Je souhaite uniquement récupérer et afficher le nom de chaque membre du ménage saisi dans la première répétition dans la deuxième répétition, afin de renseigner des informations supplémentaires pour chaque personne.
You can do this with two repeats: the first to build the roster, the second to loop over the same members and ask follow‑up questions, using count() and indexed-repeat()/position(..)
Here is a sample xlsform, i have retrieved the names,age and sex but you can only keep it to name alone…
survey sheet
| type |
name |
label |
repeat_count |
calculation |
| note |
hh_note |
List all household members. |
|
|
| begin_repeat |
hh_member |
Household member |
|
|
| text |
hh_name |
Member name |
|
|
| select_one sex |
hh_sex |
Sex of ${hh_name} |
|
|
| integer |
hh_age |
Age of ${hh_name} |
|
|
| end_repeat |
|
|
|
|
| note |
followup_note |
Now some follow‑up questions for each member. |
|
|
| begin_repeat |
hh_followup |
Member follow‑up |
count(${hh_member}) |
|
| calculate |
cur_name |
|
|
indexed-repeat(${hh_name}, ${hh_member}, position(..)) |
| calculate |
cur_sex |
|
|
indexed-repeat(${hh_sex}, ${hh_member}, position(..)) |
| calculate |
cur_age |
|
|
indexed-repeat(${hh_age}, ${hh_member}, position(..)) |
| text |
fu_q1 |
Follow‑up for ${cur_name} (age ${cur_age}) |
|
|
| end_repeat |
|
|
|
|
1 Like
Merci beaucoup pour votre aide et pour l’exemple fourni.
Oui, c’est exactement ce que je cherchais à faire : utiliser une première répétition pour enregistrer tous les membres du ménage, puis une deuxième répétition pour collecter des informations complémentaires sur ces mêmes membres.
Votre explication concernant l’utilisation de count(), indexed-repeat() et position(..) m’est très utile. Je vais adapter mon formulaire en conséquence et effectuer des tests.
Merci encore d’avoir pris le temps de me guider.