Bon moi ce que j'imagine est la chose suivante :
Une table UnQuestionnaire (IdUnQuestionnaire, Titre, Commentaire)
Cette table contiendra les information d'entête du questionnaire
Une Table ModeDeReponse (IdModeDeReponse, NomChamp)
Cette table contient la liste des champs Windev pour la réponse
En gros 3 choix possibles :
1 - Sélecteur pour répondre une seul réponse parmi un choix
2 - Interrupteur pour répondre plusieurs réponse parmi un choix
3 - Saisie pour avoir un champ de saisie libre
Une table UneQuestion (IdUneQuestion,Question,IdUnQuestionnaire,IdModeDeReponse)
Cette table contient la question attaché à un questionnaire avec l'information du mode de réponse
Une table ReponsePossible (IdReponsePossible,IdUneQuestion,UneReponsePossible)
Cette table contient pour chaque question la liste des réponse possible.
Ainsi pour uneQuestion
IdUneQuestion = 1
Question = "Votre nom de famille ?"
IdModeDeReponse = 3
Si IdModeDeRponse = 3 alors je clone un champ de saisie
IdUneQuestion = 1
Question = "Tranche d'age ?"
IdModeDeReponse = 1
1 2
| Si IdModeDeRponse = 1 alors je clone un champ sélecteur
puis je liste les réponse possible pour cette question |
IdReponsePossible = 1
IdUneQuestion = 1
UneReponsePossible = " de 10 à 20 ans "
IdReponsePossible = 2
IdUneQuestion = 1
UneReponsePossible = " de 20 à 30 ans "
IdReponsePossible = 3
IdUneQuestion = 1
UneReponsePossible = " plus de 30 ans "
Il faut avoir dans hors de ta fenêtre Windev
- un champ Saisie que tu pourra cloner ( grâce à ChampClone ) et que tu nommera de façon à pouvoir lister afin de sauvegarder les réponses.
- un champ sélecteur et interrupteur avec un nombre max d'option possible que tu rend invisible puis que tu affiche lors du champ clone en fonction du nombre de réponse.
Pour les sauvegardes des réponses pour moi le mieux est de nommer les champs de réponse comme suit.
"Réponse_" + IdQuestionnaire + "_" + IdUneQuestion
Ainsi avec les indirections tu pourra avoir les réponses
puis en fonction du type de champ tu liste les réponses
1 2 3
| SI {{"Réponse_" + IdQuestionnaire + "_" + IdUneQuestion,indChamp}..Type = typSélect ALORS
Trace("sélecteur")
FIN |
Ce ne sont que des pistes qui peuvent t'aider à toi de mettre le puzzle en forme.
J'espère par contre que je suis assez clair dans mes explications
Partager