Introduction
Les Opérations Dynamiques sont une fonctionnalité très puissante qui vous permet d'exécuter des calculs ou des validations des réponses aux questions d'enquête. Vous pouvez écrire un JavaScript personnalisé pour l'exécuter soit comme un calcul ou une validation, soit utiliser un exemple ci-dessous. Les calculs seront affichés lorsque la page sur laquelle cette question est activée est chargée. La validation sera exécutée lorsqu'un utilisateur tente de passer à une page. Vous pouvez configurer une Opération Dynamique sur tout type de question d'enquête, à l'exception du contenu statique et de la fin de l'enquête. Lorsque vous enregistrez le JavaScript dans votre question, le système confirmera que le code est un JavaScript valide, mais c'est le seul contrôle effectué sur l'extrait du code de l'opération dynamique.
- A. Comment ajouter une opération dynamique à une question d'enquête
- B. Exemples de calculs
- C. Example de validation
Avant de commencer:
- Avoir TaroWorks 4.5 ou supérieur installé dans votre instance Salesforce.
- Passez en revue l'ordre des opérations de nos nombreuses fonctionnalités de question de l'enquête.
Guides JavaScript:
-
Référence chaque réponse avec "tw". + Section_name + "." + Question_name + ".value"
-
Fonctions communes
-
Lancer (" "); - utiliser pour lancer une erreur
-
Fonctions de date
Année ()
avoir une date ()
Mois () - Le mois commence à 0 (Jan)
Heure ()
Minutes ()
Secondes ()
Nouvelle Date () - à la date d'aujourd'hui
Heure (0,0,0,0) - ex: var aujourd'hui = nouvelle Date (); Today.setHours (0,0,0,0); Ceci Annule l'heure de sorte que vous ne comparez que les Dates
Nouvelle Date (année, mois, jour);
Temps ()! == pas égal à
== égal àSi un calcul renvoie à un nombre entier, une question en nombre doit être utilisée ou elle doit être convertie en une chaîne à utiliser dans une question de texte.
Faire des commentaires avec / * ... * / (ceux-ci seront ignorés)
Pour les calculs / valeurs de réglage - pour une utilisation à itération tw.repeatsectionname.current.questionname.value
Utilisez tw.repeatsectionname.currentIndex pour obtenir l'index de l'itération
Validations
Utilisez lancer "message d'erreur"; Pour lancer une erreur pour une question qui ne se valide pas - et mettre des messages d'erreur personnalisés à l'intérieur. L'utilisateur ne peut pas continuer.
-
A. Comment ajouter une opération dynamique à une question d'enquête
-
Cliquez sur l'onglet Sondage.
-
Créez ou modifiez un Sondage.
-
Créez ou modifiez une Question.
-
Cliquez sur Ajouter des opérations dynamiques en utilisant JavaScript.
REMARQUE : si une question ou une section est ignorée avec Skip Logic, aucune valeur n'est écrite sur Salesforce.
-
Sélectionnez Calculer ou Validation pour votre Opération. Pour les calculs, le Javascript s'exécutera lorsque la page contenant la question sera chargée.
Pour les validations, le Javascript s'exécutera lorsque le mobile tentera de passer à la page suivante, mais sera arrêté si la validation échoue.
-
Entrez votre JavaScript personnalisé ou copiez-le et collez-le à partir d'un exemple ci-dessous.
-
Cliquez sur Enregistrer.
B. Calculs d' exemples
Générer des identifiants uniques
No
|
Description de cas d'utilisation |
Questions
|
Javascript
|
Example de réponses sur le Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
2.1.1 |
Générez un identifiant unique hors ligne en concaténant l'horodatage avec une valeur passée via le disque dur tel que l'ID de l'agriculteur.
|
Section régulière: ID du client Q1 légende: Date d'inscription Q1 Nom: date_of_application Q1 Type: Date Q2 Légende: Identifiant de l'agriculteur (rempli automatiquement depuis disque dur) Q2 Nom: farmer_id Q3 Légende: ID unique du candidat Q3 Nom: unique_id_of_applicant |
JS on Q3 |
Q1: "Thu Oct 06 2016" Q2: (autopopulated answer) Q3: (calculated) |
Explication Le code fait le calcul suivant Permet l'année complète - 2016 Prend la journée du mois - 6 Prend le mois de l'année - 9 + 1 Ajoute un tiret Obtient les trois derniers caractères de "Farmer-007" - 007 Assigne ceci à la réponse Q3 Remarque: Ce qui précède n'est qu'un exemple de la façon dont un champ d'identification unique peut être généré. Le format peut être déterminé par l'auteur du sondage. Par exemple, il ne peut y avoir de tiret ou plus de tirets, l'horodatage peut avoir un format différent, etc. |
Dates défaut
No
|
Description de cas d'utilisation
|
Questions
|
Javascript
|
Example de réponses sur le Mobile
|
Notes/
Commentaires
|
---|---|---|---|---|---|
2.2.1 |
Fixez la date de la demande pour être la date d'aujourd'hui
|
Section régulière: ID du client Q1 Légende: Date de la demande Q1 nom: date_of_application Q1 Type: Date |
JS on Q1 |
Q1 = (Today's Date) | |
2.2.2 |
Définissez une valeur par défaut statique pour une question de date afin que les MUs ne perdent pas de temps à défiler vers le bas - ex: configuré au 1/1/2017 |
Section régulière: ID du client Q1 Légende: Date d'inscription Q1 Nom: date_de_registration Q1 Type: Date |
JS on Q1 |
Q1 = 1/1/2017 |
|
Calculs de math
No
|
Description de cas d'utilisation
|
Questions
|
Javascript
|
Example de réponses sur le Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
2.3.1 |
Calculer le volume de production - Formule multiple Combien de poissons attrape-t-il par jour, combien de jours pêchez-vous, combien de kilogrammes pèse chaque poisson? Question cachée - calcul du volume de production total en fonction de tous. |
Section régulière: ID du client
Q1 Légende: combien de poissons capturez-vous par jour? Q1 Nom: how_many_fish_do_you_catch_per_day
Q2 Légende: combien de jours pesez-vous? Q2 Nom: how_many_days_do_you_fish
Q3 Légende: Combien de kg est chaque poisson? Q3 Nom: how_many_kgs_is_each_fish
Q4 Légende: Volume total de production de poisson Q4 Nom: total_fish_production_volume |
JS on Q4 |
Q1: 20 Q2: 6 (days) Q3: 2 (kg) Q4: 240 (kg) |
Explication: Formule qui multiplie la quantité de poisson par jour, quantité de jours de pêche et poids de chaque poisson. |
2.3.2 |
Calcul - Addition Somme des hommes + femmes membres du ménage = taille du ménage |
Regular Section: Client ID Q1 Caption: Number of Male Household Members Q1 Name: number_of_male_household_members Q2: Caption: Number of female Household Members Q2: Name: number_of_female_household_members Q3: Caption: Total number of Household Members Q3: Name: total_number_of_household_members |
JS on Q3 |
Q1: 3 Q2: 2 Q3: 5 |
Calculs - Sections répetées
Generez ID Uniques
No
|
Description de cas d'utilisation
|
Questions
|
Javascript |
Example de réponses sur le Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
3.1.1 |
Générer un identifiant unique en concaténant l'horodatage avec une valeur passée via le disque dur (réponse à une autre question). |
Section régulière: ID du client Q1 Légende: Date de la demande Q1 Nom: date_of_application Q2 Légende: ID du fermier (rempli automatiquement à partir du disque dur) Q2 Nom: farmer_id
Section répétée: Démographique Q3 Légende: Nom du candidat Q3 Nom: nom_d'applicateur Titre Q4: ID unique du candidat Q4 Nom: unique_id_of_applicant |
JS on Q4 |
Basé sur le code du scénario de la section régulière. Juste un exemple de la façon dont un champ d'identification unique peut être généré. C'est entièrement à la hauteur d'un script Creator. Par exemple, il peut y avoir un trait de soulignement au lieu de pointillé ou plus / moins de caractères de la question du nom, l'horodatage peut avoir un format différent, etc. |
|
3.1.2 |
Générer un identifiant unique pour chaque dépendante généré par une section récurrente en augmentant le nom de l'identification du ménage à chaque répétition (applicationid-2, applicationid-3, etc.)
|
Section régulière: ID du client Q1 Légende: Chef de ménage ID unique Q1 nom: head_of_household_unique_id Section répétée: Démographique Légende Q2: ID unique dépendante Nom Q2: dependent_unique_id |
JS on Q1 JS on Q2 |
Explanation
|
|
3.1.3 |
Avoir accès au nombre de répétition des enregistrements pour créer des ID pour les paiements.
Exemple: souhaite la valeur 1 du premier enregistrement créé avec une section répétitive, 2 pour la seconde, etc. (Ceci est actuellement possible avec XML) |
Repeat Section- Demographic Q1 Caption: Payment ID Q1 Name: payment_id |
JS on Q1 |
Iteration 1 Q1: 1 |
Le script est le même pour chaque itération. Il faut seulement définir une fois.
|
Texte pré-rempli
No.
|
Description de cas d'utilisation
|
Questions
|
Javascript |
Exemple de Réponse sur le Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
3.2.1 |
Pré-remplir la 2ème section de répétition avec les noms des enfants à partir de la 1ère section de répétition. Prière d'appeler les noms des enfants en répétition et ensuite de pouvoir remplir les détails de chaque enfant dans les sections de répétition suivantes. Exemple:
|
Section répétée: Noms d'enfants Nom de la section: children_names Q1 Légende: Entrez le nom de l'enfant Q1 Nom: enter_name_of_child
Section répétée: Détails des enfants Nom de la section: children_details Écran 1 Titre Q2: Nom Q2 Nom: nom |
JS on Q2 |
Section répétée: Noms des enfants Q1 Iteration 1: Jane Q1 Iteration 2: John
Section répétée: Détails des enfants Q2 Iteration 1: Jane Q2 Iteration 1: John |
|
3.2.2 |
Pré-rempli le nom de famille d'une personne à charge avec le nom de famille du chef de ménage précédemment recueilli, mais permettre d'éditer au cas où l'enfant / conjoint a un autre nom; L'information dépendante se trouve dans une section récurrente
|
Section régulière: Client ID Section Nom: client_id Q1 Légende: Nom de famille du chef de famille
Section répétée: Démographie Section Nom: demographic Q2 Légende: Nom de famille de membre de la famille |
JS on Q2 |
L'édition de valeurs pré-remplies ne sera pas faite dans MVP |
Dates défaut
No.
|
Description de cas d'utilisation
|
Questions
|
Javascript |
Exemple Réponse sur Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
3.3.1 |
Définissez une valeur par défaut pour une question de date afin que les MUs ne pervertissent pas le temps de défilement vers le bas, telles que définir l'ensemble d'enregistrement au 1/1/2017 |
Section répétée: Inscription Section Nom: inscription Q1 Légende: Date d'inscription Q1 Nom: date_of_registration |
JS on Q1 |
Q1: 1/1/2017 |
Mettre: 1/1/2017 |
Calculs de Math
No.
|
Description de cas d'utilisation
|
Questions
|
Javascript |
Exemple Réponse sur Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
3.4.1 |
L'utilisation des terres - résume les terres de chaque culture récoltées lors de la répétition pour afficher le terrain total à la fin |
Section répétée: Cultures et terres Nom Section : crops_and_land Q1 Légende: How much land do you use for crop? Q1 Name: how_much_land_do_you_use_for_crop
Section régulière: Total Land Nom Section: total_land Q2 Légende: Combien de terrain total avez-vous?
|
JS on Q2 |
Section répétée: Culture et terres Q1 Iteration 1: 100 Q1 Iteration 2: 50 Q1 Iteration 3: 25 Section régulière: Nombre total de terre Q2: 175 |
|
3.4.2 |
Calcul dans les questions répétées puis totalisation après facture de vente.
Plusieurs fois le prix de la quantité d'un article de ligne, puis résume les éléments de campagne. Chaque élément de campagne étant une série répétée de questions
|
section répétée: Line Item Nom de Section: line_item Itération 1 Q1 Légende: Select type of lamp Q1 Nom: select_type_of_lamp
Q2 Légende: Nombre de lampes vendues Q2 Nom: number_of_lamps_sold
Q3 Caption: Coût par lampe (Pourrait être transmis ou non) Q3 Nom: cost_per_lamp
Q4 Légende: Line total Q4 Nom: line_total
Section régulière: Total Nom de Section: total Q5 Légende: Facture total Q5 Nom: invoice_total |
JS on Q4 =Q2*Q3
JS on Q5: = total of all line totals for all repeats |
Section répétée: Élément de ligne Iteration 1 Q1: A Q2: 5 Q3: 50 Q4: 250 Iteration 2 Q1: B Q2: 3 Q3: 100 Q4: 300 Total: Q5: 550 |
|
3.4.3 |
Facture de vente avec taxe de vente et limite de 2 lieux décimales |
Section répétée: Line Item Nom de Section : line_item Iteration 1 Q1 Légende: Sélectionner le type de lampe Q1 Nom: select_type_of_lamp
Q2 Légende: Nombre de lampes vendues Q2 Nom: number_of_lamps_sold
Q3 Légende: Coût par lampe (Pourrait être transmis ou non) Q3 Nom: cost_per_lamp
Q4 Légende: Line total Q4 Nom: line_total
Section régulière: Total Nom de Section: total Q5 Légende: Taux d'imposition des ventes (transmis et non editable) Q5 Nom: sales_tax Q6 Légende: Facture total Q6 Nom: invoice_total |
JS on Q4 =Q2*Q3
JS on Q6: = Total de tous les totaux de lignes pour toutes les répétitions |
Section répétée: Element de la ligne Iteration 1 Q1: A Q2: 5 Q3: 50.55 Q4: 252.75 Iteration 2 Q1: B Q2: 3 Q3: 100 Q4: 300 Total: Q5: 9.5% Q6: 605.26 (arrondi de 605.26125)
|
C. Exemples de Validation
Comparez deux entrées utilisateurs et une erreur de lancement
No.
|
Description de cas d'utilisation
|
Questions
|
Javascript |
Exemple Réponse sur le Mobile
|
Notes/Commentaires
|
||
---|---|---|---|---|---|---|---|
4.1.5 | Q4 doit être >= Q1 + Q2 + Q3 |
Section régulière: Client ID Nom de Section : client_id Question 1 Légende: Combien de terrain utilisez-vous pour la culture 1? Question 2 Légende: Combien de terrain utilisez-vous pour la culture 2? Question 2 Nom: how_much_land_do_you_use_for_crop_2 Question 3 Légende:Combien de terrain utilisez-vous pour la culture 3? Question 4 Légende:Combien de terrain utilisez-vous pour la culture 4? Question 4 Nom: how_much_total_land_do_you_have |
JS on Q4 var totalLandForCrops = tw.client_id.how_much_land_do_you_use_for_crop_1.value + tw.client_id.how_much_land_do_you_use_for_crop_2.value + tw.client_id.how_much_land_do_you_use_for_crop_3.value; if (tw.client_id.how_much_total_land_do_you_have.value < totalLandForCrops) { throw "Total land owned cannot be less than total land used for crops" ; } |
Q1: 30 Q2: 20 Q3: 10 Q4: 50 throw Error |
|||
4.1.2 |
Les réponses au Q1 et au Q2 devraient correspondre
Comparez Q1 vs Q2 et, si ce n'est pas le même, ne laissez pas l'utilisateur continuer et affichez un message comme: Email et Confirmation ne sont pas identiques |
Section régulière - ID du Client Nom de Section: client_id Q1 Légende: Mettre adresse email Q2 Légende: Confirmer votre adresse email Q2 Nom: confirm_your_email_address |
JS on Q2
|
Q2: kay@tworks.org
Throw error |
|
||
4.1.1 |
Un numéro ne doit pas dépasser un autre nombre
Combien d'enfants d'âge scolaire secondaire dans votre HH? Combien de ces enfants fréquentent l'école? > La question 2 ne doit pas dépasser la Question 1 |
Section régulière - ID du Client Nom de Section: client_id Q1 Légende: Combien d'enfants d'âge scolaire secondaire dans votre HH? Q1 Nom: how_many_secondary_school_age_children_are_in_your_hh Q2 Légende: Combien de ces enfants fréquentent l'école?
|
JS on Q2
|
Q1: 5 Q2: 6
Error Thrown |
|
||
4.1.3 |
Logique: Q2 devrait être entre 0 et Q1 réponse. Sinon, affichez un message comme: La réponse doit être comprise entre 0 et 10 ..... (en supposant que 10 soit une réponse Q1) |
Section régulière - ID du Client Nom de Section: client_id Q1 Légende: Combien d'agriculteurs avez-vous aidé ce mois-ci? Q1 Nom: how_many_farmers_did_you_help_this_month
Q2 Nom: how_many_farmers_did_you_help_with_credit |
JS on Q2 |
Q1: 20 Q2: -1
Throw Error Q1: 20 Q2: 30 Throw Error |
|||
4.1.4 |
Question 1: combien d'enfants? Question 2: Combien de garçons? Logique: Q2 ne doit pas être supérieur à Q1. Sinon, affichez un message comme: Le nombre de garçons ne peut pas être supérieur à 5 ..... (en supposant que 5 était une réponse Q1) |
Section régulière - ID du Client Q1 Légende: Combien d'enfants? |
JS on Q2
|
Q1: 5 Q2: 6 Throw error |
Validation d'entrée à code barres - Section régulière
No.
|
Description des cas d'utilisation
|
Questions
|
Javascript |
Exemple Réponse sur Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
4.2.1 |
Demandez un code barres numérisé automatiquement et autorisez également l'entrée manuelle du même code barres. Le problème est qu'ils ne peuvent pas être liés dans le même champ Solution 1 - Pas d'opérations dynamiques Question de sélection unique avec logique et 2 options: code de numérisation et entrée manuelle. En fonction de la réponse, affichez la question d'analyse de code barres ou la question d'entrée de texte et liez-la. Solution 2 - Avec les opérations dynamiques Indiquez d'abord une question de code barres et ajoutez une logique de xform qui montrera une question de texte si le code barres est vide. Et après la question du texte, ajouter une logique dynamique qui vérifiera si au moins l'une d'elles est répondu.
Message d'erreur: vous devez numériser ou saisir un ID de code barres. |
Section régulière - ID du Client Légende Question 1: Scan barcode ID Nom Question 1: scan_barcode
Légende Question 2: Enter barcode ID Nom Question 2:enter_barcode |
|
|
Validations Date - Section régulière
No.
|
Description des cas d'utilisation
|
Questions
|
Javascript |
Exemple Réponse sur Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
4.3.1 |
Valider la date de commande est aujourd'hui ou avant aujourd'hui:
Si la date de la commande n'est pas égale ou inférieure à aujourd'hui, ne laissez pas l'utilisateur continuer et afficher un message comme: La date de la commande doit être aujourd'hui ou une date avant
Valider que la date de livraison est APRÈS Date de commande
Comparez la date de livraison et la date de commande et si la date de livraison n'est pas supérieure à la date de commande, ne laissez pas l'utilisateur continuer et afficher un message comme: La date de livraison doit être après la date de commande |
Section régulière - ID du Client Q1 Légende: Date de commande
Q2 Légende: Date d'expedition de la commande |
JS on Q1
JS on Q2: |
Aujourd'hui: 4/19/2017
Q1: Date de commande: 4/20/2017
ERROR thrown:La date de la commande doit être aujourd'hui ou une date avant . Fix Q1 to 4/19/2017
Q2: Date d'expedition: 4/18/2017 ERROR thrown: La date de livraison doit être après la date de commande
|
|
4.3.2 |
Créez une restriction de plage de dates dans la question de date pour réduire les erreurs. Usecase: restreindre l'entrée d'une date supérieure à "aujourd'hui". Message d'erreur "La date de la formation ne doit pas être supérieure à celle d'aujourd'hui" |
Section régulière - ID du Client Q1 Légende: Entrez date de la formation Q1 Nom: enter_date_of_training |
Si la date de la formation est une question de type date
Si la date de la formation est une question de type date et heure |
||
4.3.3 |
Comparez deux questions de date / heure et assurez-vous que l'heure de fin est après l'heure de début Message d'erreur "La date de fin de l'enquête ne doit pas être avant la date de début de l'enquête" |
Section régulière - ID du Client Q1 Légende: Date de début du sondage Q1 Nom: survey_start_date
Q2: Caption: Survey end date Q2: Name: survey_end_date |
JS on Q2 |
Q1 - 4/21/2017 10am Q2 - 4/21/2017 9am Throw error |
|
4.3.4 |
Créez des règles de validation sur les questions de date, de sorte que la valeur saisie se situe dans une période définie telle que la date est après le 31/12/2015 et avant le 1/1/2017
Message d'erreur: "Vous devez entrer une date en 2016." |
Section régulière - ID du Client Question 1 Légende: Date de début du programme Question 1 Nom: program_start_date |
JS on Q1 |
Q1 - 1/1/2017 Throw Error
|
Validations - Répétez les sections
Validation d'entrée de code à barres - Section de répétition
No
|
Description des cas d'utilisation
|
Questions
|
Javascript
|
Exemple Réponse sur le Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
5.1.1 |
Demandez un code-barres numérisé automatiquement et autorisez également l'entrée manuelle du même code à barres. Le problème est qu'ils ne peuvent pas être liés dans le même champ Solution 1 - Pas d'opérations dynamiques Question de sélection unique avec logique et 2 options: code de numérisation et entrée manuelle. En fonction de la réponse, affichez la question d'analyse de code barres ou la question d'entrée de texte et liez-la. Solution 2 - Avec les opérations dynamiques Indiquez d'abord une question de code à barres et ajoutez une logique de xform qui montrera une question de texte si le code barres est vide. Et après la question du texte, ajouter une logique dynamique qui vérifiera si au moins l'une d'elles est répondu. Message d'erreur: vous devez numériser ou saisir un ID de code barres. |
Section répétée - Produits de vente Nom de la section - sales_products Q1 Légende: Numérisation du code barre Q1 Nom: scan_barcode Q2: Légende: Entrez ID code barres Q2: Nom: enter_barcode |
Solution 1 - Aucune opération dynamique Question de sélection unique avec logique et 2 options: code de numérisation et entrée manuelle. En fonction de la réponse, affichez la question d'analyse de code barres ou la question d'entrée de texte et liez-la. Indiquez d'abord une question de code barres et ajoutez une logique de xform qui montrera une question de texte si le code barres est vide. Solution 2 - avec les opérations dynamiques
|
Comparer deux entrées utilisateur et jeter une erreur
|
Description des cas d'utilisation
|
Questions |
Javascript |
Example Response on Mobile
|
Notes/Comments
|
---|---|---|---|---|---|
5.2.1 |
Comparez Q1 vs Q2 et, si ce n'est pas le même, ne laissez pas l'utilisateur continuer et afficher un message comme: Email et Confirmation ne sont pas les mêmes Utilisation cas 2 Demande 2 questions d'identité dans une enquête unique. Demande à l'enquête de donner une erreur si les questions d'identification ne correspondent pas |
Section répétée - Démographique
Q1 Légende: saisissez votre adresse e-mail Q1 Nom: input_your_email_address
Q1 Type: Texte (court) Légende Q2: Confirmez votre adresse e-mail Q2 Nom: confirm_your_email_address
Q2 Type: Texte (court) |
|
||
5.2.2 |
Logique: Q2 devrait être entre 0 et Q1 réponse. Sinon, affichez un message comme: La réponse doit être comprise entre 0 et 10 ..... (en supposant que 10 soit une réponse Q1) |
Section répétée - Démographique Q1 Légende: combien d'agriculteurs avez-vous aidé ce mois-ci? Q1 Nom: how_many_farmers_did_you_help_this_month Q1 Type: Numéro Q2 Légende: combien d'agriculteurs avez-vous aidé avec un crédit? Q2 Nom: how_many_farmers_did_you_help_with_credit Q2 Type: Numéro |
|
Iteration 1: Q1: 20 Q2: 30 throw Error Q2: 10 Continue Iteration 2.. |
|
5.2.3 |
Q1: combien d'enfants? Q2: combien de garçons?
Logique: Q2 ne doit pas être supérieur à Q1. Sinon, affichez un message comme: Le nombre de garçons ne peut pas être supérieur à 5 ..... (en supposant que 5 était une réponse Q1) |
Section répétée - Démographique Q1 Légende: Combien d'enfants? Q1 Nom: how_many_children Q1 Type: Numéro Q2 Légende: combien de garçons? Q2 Nom: how_many_boys |
|
Regex Usecases - sections régulières (validation)
No.
|
Description des cas d'utilisation
|
Questions |
Javascript |
Note/Commentaires
|
---|---|---|---|---|
6.1.1 |
Pour restreindre la longueur des caractères entrés Exemple cas d'utilisation: Prénom ou Nom (1 mot entre 3 et 50 caractères) Message d'erreur: le nom du client doit avoir entre 3 et 50 caractères |
Section régulière - ID du client Question 1 Légende: Entrez le prénom du client Question 1 Nom: enter_client_first_name |
|
|
6.1.2 |
Pour restreindre la longueur des caractères saisis dans une zone de texte pour plus d'un mot (Chaque mot devrait avoir entre 3 et 50 caractères) Message d'erreur: le prénom et le deuxième nom du client doivent avoir entre 3 et 50 caractères |
Section régulière - ID du client Question 1 Légende: entrez le prénom et le deuxième nom du client Question 1 Nom: enter_client_first_name_and_second_name |
|
Remarque: Le code ci-dessus fonctionnera pour tout nombre de noms de clients. |
6.1.3 |
Utilisation du cas: commence avec "PP"Limiter la façon dont une réponse commence Message d'erreur "Identification du client devrait commencer par PP" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro d'identification du client Question 1 Nom: enter_client_identification_number |
|
|
6.1.4 |
Limiter la façon dont une réponse se termine Utilisation du cas: commence avec "EE" Message d'erreur "L'identification du client doit se terminer par EE" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro d'identification du client Question 1 Nom: enter_client's_identification_number |
|
|
6.1.5 |
SEULEMENT Autoriser une chaîne NUMERIQUE. Peut être de toute longueur |
Section régulière - ID du client Question 1 Légende: Entrez le numéro de téléphone du client Question 1 Nom: enter_client_phone_number |
|
|
6.1.6 | Pour limiter la longueur d'une chaîne numérique
Cas d'utilisation: chaîne de longueur numérique 10 Message d'erreur "Numéro de téléphone doit être de 10 nombres" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro de téléphone du client Question 1 Nom: enter_client's_phone_number
|
|
|
6.1.7 |
Pour limiter la longueur d'une chaîne numérique Cas d'utilisation: String numérique de longueur 13 ou 17 Message d'erreur "Le numéro de téléphone doit être compris entre 13 et 17 chiffres" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro de téléphone du client Question 1 Nom: enter_client's_phone_number |
|
|
6.1.8 |
Pour restreindre la valeur d'une chaîne numérique pour ne pas être un entier positif Message d'erreur "Le coût de l'engrais devrait être un nombre positif" |
Section régulière - ID du client Question 1 Légende: Entrez le coût de l'engrais Question 1 Nom: enter_cost_of_fertilizer |
|
|
6.1.9 |
Pour limiter la longueur d'une chaîne alphanumérique Utilisation des cas: Alphanumérique Chaîne de longueur 7 Message d'erreur "Le numéro de passeport doit comporter 7 caractères" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro du passeport Question 1 Nom: enter_passport_num ber |
|
|
6.1.10 |
Pour limiter la longueur d'une chaîne alphanumérique Utilisation des cas: chaîne alphanumérique avec entre 5 et 7 caractères Message d'erreur "Le numéro de passeport doit avoir entre 5 et 7 caractères" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro du passeport Question 1 Nom: enter_passport_number |
|
|
6.1.11 |
Pour limiter la longueur d'une chaîne alphanumérique Utilisation des cas: chaîne alphanumérique avec au moins 7 caractères Message d'erreur "Le numéro de passeport devrait avoir au moins 7 caractères" |
Section régulière - ID du client Question 1 Légende: Entrez le numéro du passeport Question 1 Nom: enter_passport_number |
|
Regex cas d'utilisation - Répétez les sections (Validations)
No.
|
Description des cas d'utilisation
|
Questions
|
Javascript
|
Notes/Commentaires
|
---|---|---|---|---|
7.1.1 |
Pour restreindre la longueur des caractères entrés Exemple cas d'utilisation : Prénom ou Nom (1 mot entre 3 et 50 caractères) Message d'erreur: le nom du client doit avoir entre 3 et 50 caractères |
Section répétée - Démographique Question 1 Légende: Entrez le prénom du client Question 1 Nom: enter_client_first_name |
|
|
7.1.2 |
Pour restreindre la longueur des caractères saisis dans une zone de texte pour plus d'un mot (Chaque mot devrait avoir entre 3 et 50 caractères) Message d'erreur: le prénom et le deuxième nom du client doivent avoir entre 3 et 50 caractères |
Section répétée - Démographique Question 1 Légende: entrez le prénom et le deuxième nom du client Question 1 Nom: enter_client_first_name_and_second_name |
|
|
7.1.3 |
Limiter la façon dont une réponse commence Cas d'utilisation: commence avec "PP" Message d'erreur "Identification du client devrait commencer par PP" |
Section répétée - Démographique Question 1 Caption: Enter Client's Identification number Question 1 Name: enter_client_identification_number |
|
|
7.1.4 |
Restrict how a response ends Usecase: Begins with "EE" Error Message "Client's Identification should end with EE" |
Section répétée - Démographique Question 1 Légende: Entrez le numéro d'identification du client Question 1 Nom: enter_client's_identification_number |
|
|
7.1.5 |
SEULEMENT Autoriser une chaîne NUMERIQUE. Peut être de toute longueur |
Section répétée - Démographique Question 1 Légende: Entrez le numéro de téléphone du client Question 1 Nom: enter_client_phone_number |
|
|
7.1.6 |
Repeat Section- Demographic Question 1 Caption: Enter client's phone number Question 1 Name: enter_client's_phone_number |
|
||
7.1.7 |
Pour limiter la longueur d'une chaîne numérique Cas d'utilisation: chaîne de longueur numérique 10 Message d'erreur "Numéro de téléphone doit être de 10 nombres"
|
Section répétée - Démographique Question 1 Légende: Entrez le numéro de téléphone du client Question 1 Nom: enter_client's_phone_number |
|
|
7.1.8 |
To restrict the value of a numeric string to only be a positive integer Error Message "The cost of the fertilizer should be a positive number" |
Pour restreindre la valeur d'une chaîne numérique pour ne pas être un entier positif Message d'erreur "Le coût de l'engrais devrait être un nombre positif" |
|
|
7.1.9 |
Pour limiter la longueur d'une chaîne alphanumérique Cas d'utilisation: Alphanumérique Chaîne de longueur 7 Message d'erreur "Le numéro de passeport doit comporter 7 caractères" |
Section répétée - Démographique Question 1 Légende: Entrez le numéro du passeport Question 1 Nom: enter_passport_number |
|
|
7.1.10 |
Pour limiter la longueur d'une chaîne alphanumérique Utilisation des cas: chaîne alphanumérique avec entre 5 et 7 caractères Message d'erreur "Le numéro de passeport doit être compris entre 5 et 7 |
Section répétée - Démographique Question 1 Légende: Entrez le numéro du passeport Question 1 Nom: enter_passport_number |
|
|
7.1.11 |
Pour limiter la longueur d'une chaîne alphanumérique Utilisation des cas: chaîne alphanumérique avec entre 5 et 7 caractères Message d'erreur "Le numéro de passeport doit être compris entre 5 et 7
|
Section répétée - Démographique Question 1 Légende: Entrez le numéro du passeport Question 1 Nom: enter_passport_number |
|
Combinaisons de calculs et de validation - sections régulières
|
Description des cas d'utilisation
|
Questions
|
Javascript
|
Notes/Commentaires
|
---|---|---|---|---|
8.1.1 |
Possibilité de référencer n'importe quel champ dans un choix en cascade pour les futures questions concernant les validations / calculs Exemple Il existe une question de type liste de sélection en cascade où MU sélectionne un district Selon le district sélectionné, un ID de demandeur est généré en utilisant les 2 premières lettres de l'horodatage concatiné numérique et numérotataire du district. Donc, le premier identifiant de candidat dans le district de Tecoman sera (par exemple) Te1484220310942 Le code barres du ménage analysé doit être validé en fonction des codes barres attribués par comté. Les codes barres commencent par les 3 premières lettres d'un comté. Tous les codes barres dans le comté de Colima commencent par 'Col' |
Section régulière: ID du client Q1 Légende: Date de la demande Q1 nom: date_of_application Q2 Légende: Sélectionnez District (question en cascade select - Pays → Comté → District) Q2 Nom: select_district (L'utilisateur sélectionne le pays «Mexique», le «Colima» et le «District Tecoman») Question 3 Légende: ID du demandeur (les 2 premières lettres du numéro d'horaire local décalé de la Question 1 ci-dessus)
Question 3 Nom: demandeur_id Question 4 Légende: Sélectionnez un pays Question 4 Nom: select_country |
Javacript sur Q3 - ID du demandeur (les 2 premières lettres de l'horodatatère concaténée numeric plus du district
Javacript sur Q5 - Pour valider le code à barres ménager basé sur les codes à barres attribués par comté. Les codes à barres commencent par les 3 premières lettres d'un comté.
|
L'horodatage utilisé ici utilise un nombre de millisecondes depuis 1970/01/01 (Unix Epoch). |
8.1.2 |
Calculez l'afflux total et la sortie totale pour le répondant. Les agents de terrain sont censés équilibrer les entrées et les sorties - si les entrées totales sont de 300, la sortie totale devrait être proche, sinon 300. |
Section régulière: entrées Question 1 Légende: Gains tirés de la vente de lait Question 1 Nom: gains_from_sale_of_milk Question 2 Légende: Les gains des oeufs Question 2 Nom: gains_from_egg Question 3 Légende: Salaire par semaine Question 3 Nom: salaire_per_week Question 4 Légende: Entrées totales Question 4 Nom: total_inflows Section régulière 2 - Sorties Question 5 Légende: coût des aliments pour animaux Question 5 Nom: cost_of_animal_feeds Question 6 Légende: Coût de l'alimentation domestique Question 6 Nom: cost_of_household_food |
Section régulière - Entrées JS - au quatrième trimestre (Total Q1, Q2 et Q3) Section régulière - Sorties JS au Q8 (total de Q5, Q6 et Q7) Section répétée: solde Javascript sur Q9 (comparer Q4 et Q8) (si les entrées totales sont 300, le débit total devrait être proche, sinon 300).
|
|
Combinaisons de calculs et de validation - sections régulières
|
Description des cas d'utilisation
|
Questions
|
Javascript
|
Exmple Réponse sur le Mobile
|
Notes/Commentaires
|
---|---|---|---|---|---|
9.1.1 |
Possibilité de référencer n'importe quel champ dans un choix en cascade dans les futures questions pour les validations / calculs Exemple Il existe une question de sélection en cascade où MU sélectionne un district Selon le district sélectionné, un identifiant de demandeur est généré en utilisant les 2 premières lettres de l'horodatatère concaténée numérique et numérotée du district. Donc, le premier identifiant de candidat dans le district de Tecoman sera (par exemple) Te1484220310942 Le code à barres du ménage analysé doit être validé en fonction des codes à barres attribués par comté. Les codes à barres commencent par les 3 premières lettres d'un comté. Tous les codes à barres dans le comté de Colima commencent par 'Col' |
Section régulière: ID du client Question 1 Légende: Date de la demande Question 1 nom: date_of_application Question 2 Légende: Choisir District (question en cascade select - Pays → Comté → District) Question 2 Nom: select_district Q3 Légende: ID du demandeur (les 2 premières lettres du numéro de district plus l'horodatage concatiné de la Question 1 ci-dessus) Q3 Nom: demandeur_id Titre Q4: Sélectionnez un pays Q4 Nom: select_country Section répétée - Démographique Q5 Légende: Scan ID du code-barres du ménage Q5 Nom: scan_household_barcode_id |
Javacript sur Q3 - ID du demandeur (les 2 premières lettres de l'horodatatère concaténée numeric plus du district
Javacript sur Q5 - Pour valider le code à barres ménager basé sur les codes à barres attribués par comté. Les codes à barres commencent par les 3 premières lettres d'un comté.
|
Q1: 4/26/2017 1:30pm Q2: Pays: 'Mexico' Comté: 'Colima' Districte: 'Tecoman' Q3: Te04262017
|
L'horodatage utilisé ici utilise un nombre de millisecondes depuis 1970/01/01 (Unix Epoch).
|
9.1.2 |
L'utilisation des terres - combien de terrain utilises-tu pour la culture 1, la récolte 2, la récolte 3, etc. - et combien de terrain total avez-vous (le terrain total devrait être> = somme des terres cultivées individuelles) |
Section répétée: Cultures et terres Nom de la section: cultures_et_land Q1 Légende: Combien de terrain utilisez-vous pour la culture? Question 1 Nom: how_much_land_do_you_use_for_crop Section régulière: Terre totale Nom de la section: total_land Question 2 Légende: combien de terrain total avez-vous? Question 2 Nom: how_much_total_land_do_you_have
|
JS sur Question 2 |
Commentaires
0 commentaire
Veuillez vous connecter pour laisser un commentaire.