Cours : Maîtriser les Rosters dans CSPro
Public Cible : Débutants et utilisateurs intermédiaires de CSPro souhaitant concevoir et
implémenter des formulaires de collecte de données complexes avec des listes répétitives
(rosters).
Prérequis : Connaissance de base de l'interface CSPro et des concepts de dictionnaire de
données et de formulaires.
Objectif Général : À la fin de ce cours, les participants seront capables de créer, configurer et
manipier des rosters dans CSPro, en intégrant des logiques de validation et de contrôle du flux.
Module 1 : Introduction aux Rosters et Concepts Fondamentaux (1h30)
1.1. Qu'est-ce qu'un Roster ? (30 min)
Définition et rôle des rosters dans la collecte de données (listes de ménages, enfants,
cultures, actifs, etc.).
Avantages de l'utilisation des rosters (efficacité, cohérence, réduction des erreurs).
Exemples concrets de rosters dans différentes enquêtes.
Différence entre un enregistrement simple et un enregistrement multiple (clé de
compréhension des rosters).
1.2. Structure des Données pour les Rosters (Dictionnaire de Données) (45 min)
Rappel sur le dictionnaire de données CSPro.
Concept clé : L'Enregistrement Multiple (Multiple Record).
Comment définir un enregistrement comme "multiple" dans le dictionnaire.
Propriétés des enregistrements multiples (Max Occurrences, Occurrence Control
Field).
Création des items (variables) à l'intérieur de l'enregistrement multiple.
Exercice pratique : Créer un dictionnaire de données simple pour un roster de membres
de ménage (Nom, Lien de parenté, Sexe, Âge).
1.3. Vue d'ensemble de la Conception de Formulaires avec Rosters (15 min)
Les différentes façons de générer un roster dans le Forms Designer.
Aperçu des propriétés d'un roster.
Module 2 : Création et Configuration des Rosters (2h00)
2.1. Création Automatique de Rosters par Glisser-Déposer (45 min)
Utilisation du "Forms Designer".
Glisser-déposer un enregistrement multiple complet depuis le Dictionnaire vers le
Formulaire.
Comprendre les options de glisser-déposer (Horizontal, Vertical, Free Movement, etc.).
Génération automatique des champs et de l'interface du roster.
Exercice pratique : Générer un roster de membres de ménage à partir du dictionnaire créé
au module 1.
2.2. Création Manuelle et Ajout de Colonnes (45 min)
Glisser-déposer des items individuels d'un enregistrement multiple pour construire un
roster.
Ajouter des colonnes supplémentaires à un roster existant.
Réordonner les colonnes.
Exercice pratique : Construire un roster pas à pas et ajouter une colonne pour le niveau
d'éducation.
2.3. Personnalisation des Propriétés du Roster (30 min)
Accéder aux propriétés du Roster (clic droit sur une cellule vide).
Roster Name : Importance pour la logique.
Roster Label : Affichage pour l'enquêteur.
Orientation : Horizontal vs. Vertical (impact sur la saisie des données).
Free Movement : Contrôle de l'ordre de saisie (tous les champs d'une ligne avant la
suivante, ou un champ pour toutes les lignes avant de passer au champ suivant).
Occurrence Control Field : Champ qui définit le nombre de lignes du roster (ex: "Nombre
de personnes dans le ménage").
Controlling Value : Comment l'Occurrence Control Field est utilisé.
Exercice pratique : Configurer l'orientation et le champ de contrôle d'occurrence.
Module 3 : Logique CSPro pour les Rosters (2h30)
3.1. Accéder aux Données des Rosters : Les Subscripts (45 min)
Comprendre le concept d'occurrence et de subscript ( item(i) ).
Comment itérer sur les lignes d'un roster avec des boucles do while ou for .
La fonction totocc() : Obtenir le nombre total d'occurrences saisies pour un
enregistrement multiple.
Variables de système pour les rosters ( ^CURRENT_OCC , ^LAST_OCC ).
Exercice pratique : Afficher le nom et l'âge de chaque membre du ménage dans la
console.
3.2. Validation des Données dans les Rosters (60 min)
Validation intra-ligne : Vérifier la cohérence des données au sein d'une même occurrence
(ex: l'âge d'un enfant doit être inférieur à celui du parent).
Utilisation des PROC des items individuels dans le roster.
Validation inter-lignes : Vérifier la cohérence des données entre plusieurs occurrences (ex:
il ne doit y avoir qu'un seul chef de ménage).
Utilisation du PROC de l'enregistrement multiple (souvent dans le postproc ).
Messages d'erreur ( errmsg ) et reenter .
Exercice pratique :
Valider l'âge (entre 0 et 120 ans).
Valider qu'il n'y a qu'un seul chef de ménage.
3.3. Manipulation et Calculs avec les Rosters (45 min)
Compter le nombre de personnes ayant une certaine caractéristique (ex: nombre de
femmes, nombre d'enfants de moins de 5 ans).
Calculer des agrégats (âge moyen, somme des revenus).
Afficher des résultats résumés.
Modification dynamique des propriétés des champs basés sur d'autres occurrences (ex: si
le chef de ménage est un homme, ne pas poser la question sur la maternité).
Exercice pratique : Calculer le nombre de femmes dans le ménage et l'afficher dans une
variable récapitulative.
Module 4 : Techniques Avancées et Bonnes Pratiques (1h30)
4.1. Rosters Imbriqués (Nested Rosters) : Introduction (45 min)
Qu'est-ce qu'un roster imbriqué ? (Ex: Ménage > Membres > Enfants de moins de 5 ans
avec leur vaccination).
Structure du dictionnaire pour les rosters imbriqués.
Considérations sur la conception des formulaires et la logique.
Note : Ce module se veut une introduction. La mise en œuvre complète des rosters
imbriqués peut nécessiter un cours plus approfondi.
4.2. Stratégies de Saisie et Navigation (30 min)
Utilisation des touches de navigation dans un roster (Tab, Enter, flèches).
setinputchar et setinputtype appliqués aux champs de roster.
Forcer le focus sur une ligne ou une colonne spécifique.
skip et goto dans le contexte des rosters.
4.3. Bonnes Pratiques et Pièges à Éviter (15 min)
Nommage cohérent des variables et des rosters.
Modularisation de la logique (utiliser des PROC appropriés).
Optimisation des performances pour les grands rosters.
Importance des tests rigoureux.
Évaluation et Exercice Final (1h00)
Révision rapide des concepts clés. (15 min)
Exercice Final :
Concevoir un dictionnaire de données pour une liste d'actifs possédés par le ménage
(Type d'actif, Quantité, Valeur estimée, Année d'acquisition).
Créer le roster correspondant dans un formulaire.
Ajouter des validations (Quantité > 0, Valeur > 0, Année d'acquisition raisonnable).
Calculer la valeur totale des actifs du ménage.
(Optionnel) Permettre à l'utilisateur de spécifier le nombre d'actifs via un champ
"Occurrence Control".
Ressources Supplémentaires :
Documentation officielle de CSPro (accessible via le menu "Help" dans CSPro).
Forums CSPro en ligne.
Tutoriels vidéo sur YouTube (recherchez "CSPro Roster Tutorial").
Exemples d'applications CSPro fournies avec l'installation.