logo


Recherche Avancée

Non identifié
Non identifié
Nom

Mot de passe


Mot de passe oublié?

définition de champs

Ajout de champs dans un formulaire avec Vitefait

L'ajout de champs dans un formulaire se fait simplement en remplissant le formulaire d'information sur les champs de Vitefait.

Tout le code relatif au traitement du formulaire (tests, calculs, ..) sera intégré dans les champs.

Un champ spécial numéroté 9999 permet de rentrer du code supplémentaire (sous-programmes, touches de fonctions, sécurité, code additionnel au niveau des points d'entrées de Vitefait...)

Une aide sur chacun des champs de Vitefait est disponible en cliquant sur le ?

viteDict_champ.png
Rang du champ

Le rang s'écrit en 4 chiffres. S'il n'est pas rempli, le nombre sera calculé par Vitefait sur le principe « plus grand nombre + 10 » . Il est conseillé de numéroter les champs de 10 en 10 afin de pouvoir par la suite insérer un nouveau champ entre deux champs.

Note: vous pouvez créer jusque 9999 champs, en revanche vous ne pourrez faire apparaître en mode liste (et vous servir de critère de recherche) que 130 champs, si vous avez plus de 130 champs il faudra en déclarer « pasEnListe » (voir plus loin).

Titre

Le titre peut être soit le titre du champ qui apparaîtra à gauche du champ dans le formulaire, soit un sous-titre qui apparaîtra dans la partie droite du formulaire au dessus des champs, soit une marque de bloc (voir plus loin). Le titre peut contenir plusieurs lignes. Tout caractère est autorisé, y compris certaines balises HTML (idem au titre de formulaire). Si le titre commence par un espace, il ne sera pas mis dans le formulaire, en revanche, il apparaitra dans l'entête de liste.

Le champ titre sert aussi à créer des marques de blocs

Ces marques simplifient la création d'application en permettant de créer des formulaires dynamiques avec ##affichesi et ##_affichesi, des itérations muliples de questions avec ##blocmulti, de permettre à l'utilisateur de trier l'affichage de la liste avec ##triliste, d'afficher dynamiquement la liste sans avoir besoin du bouton liste avec ##liste, de créer des liens vers d'autres formulaires avec ##liensur, de mettre plusieurs champs sur une ligne avec ##suruneligne, de cacher un bloc de champs avec ##affichepas, d'ajouter une trace avec ##trace et ##tracelog

Vous désirez générer
un champ
pour un champ, il faudra remplir toutes les questions nécessaires
un sous-titre ou une marque de bloc
pour un sous-titre ou une marque de bloc, seul le champ titre est nécessaire
Nom du champ
Le nom du champ commence par une lettre minuscule, il peut contenir des lettres minuscules, des chiffres et le caractère souligné. Le caractère souligné ne peut pas être le dernier caractère.
Type
  • Texte : un texte sur une ou plusieurs lignes.
  • Entier : un nombre entier
  • Réel : un nombre réel
  • Date : un champ date (interdit en Gadfly)
  • Objet : un champ de type « blob » (interdit en Gadfly)

le type Objet est traité comme un champ de type fichier, il sera très simplement à partir de ce type de champ d'aller chercher sur son disque un courier, une image, ...

  • Radio : un bouton radio - cases à cocher à choix unique
  • Coche : une case à cocher - cases à choix multiples
  • Liste : un champ de type liste. Ce type de champ permet d'aller rechercher dans un formulaire existant tous les choix et de les afficher dans une liste déroulante.
  • Multiple : une liste à choix multiple
  • texteProtege : un texte non modifiable (utile pour les données provenant d'un formulaire précédent)
  • motDePasse : un texte qui apparaitra comme un mot de passe
Longueur
La longueur du champ, pour les champs de type « radio » et « coche », est au minimum la longueur du plus long des textes correspondant à une coche. Pour un champ de plusieurs lignes, la longueur d'une ligne.
Nombre de lignes
Le nombre de lignes pour un champ de type « texte », « texteProtege », « objet » ou le nombre de lignes sur lesquelles sont placées les choix pour les champs de type « radio » ou « coche ».
Nombre d'occurences

Uniquement pour les champs de type « radio » ou « coche ». Le nombre d'occurences doit être identique au nombre d'occurences trouvées dans le titre.

Le titre s'écrit dans ce cas:

titre:occurence1/occurence2/.../occurenceN

exemple:

Aimez-vous Vitefait:oui/non

Caractéristiques supplémentaires

Il faut cocher au moins une case qui définit les caractéristiques du champ.

  • cle : ce champ sera un des champs qui formeront la clé. Le champ créé sera préfixé par k_

Cette option a été gardée par compatibilité avec les premières versions de Vitefait, néanmoins l'option cleSansPrefixe est maintenat plus utilisée

  • noncle : ce champ ne fait pas partie de la clé
  • nonModifiable : ce champ n'est pas modifiable par le biais du formulaire
  • nonEnTable : ce champ est un champ de calcul qui ne sera pas stocké dans la table SQL.
  • nonEnFormulaire : ce champ n'apparaitra pas dans le formulaire (ni dans la table SQL). Peut être utile pour supprimer temporairement un champ du formulaire.
  • cleSansPrefixe : cette option est utile, par exemple, pour les tables externes à Vitefait. Elle permet de dire qu'un champ fait partie de la clé sans que Vitefait ne le préfixe automatiquement avec "k_". Elle est maintenant conseillée à la place de la carctéristique cle

NOTE: La totalité des champs formant la clé servira à « voir », « modifier » ou « supprimer » une fiche. C'est aussi sur la clé formée par tous ses champs que sera effectué le contrôle « non existant en table » vu plus loin. Tout champ faisant partie de la clé ne pourra pas être changé dans la fiche.

Tests et traitements générés automatiquement

Il est possible de choisir autant de « test » ou « traitement » que l'on veut. ATTENTION: si la question se trouve à l'intérieur d'un bloc conditionnel (affichesi/finsi) et que la condition n'est pas réalisée, les tests ne seront pas effectués. En revanche les traitements le seront dans tous les cas.

Tests
  • nonVide : le champ doit obligatoirement être rempli
  • Alphabetique : peut contenir les caractères « abcdefghijklmnopqrstuvwxyzàâäéèêëîïôöùûüç » ainsi que les majuscules (non accentuées) et que le caractère espace
  • Numerique : peut contenir les caractères « 0123456789 » ainsi que le point
  • alphaNumerique*: peut contenir les caractères « alphabetique » ainsi que les caractères « numerique »
  • lettres : peut contenir les caractères « abcdefghijklmnopqrstuvwxyz » ainsi que les majuscules (non accentuées)
  • chiffres : peut contenir les caractères « 0123456789 »
  • lettresOuChiffres : peut contenir les caractères « lettres » ainsi que les caractères « chiffres »
  • date : doit être une date valide sous la forme jj/mm/aaaa

NOTE: tous les tests précédents peuvent être modifiés simplement pour tout Vitefait, un script python du même nom se trouve dans le dossier « est »

  • nonEnTable : il ne doit pas exister dans la table SQL une fiche ayant la même clé (la clé étant formée par la concaténation de tous les champs de « caracteristique » « cle »)
Traitements
  • dateAuto : la date du jour sous forme AAAA/MM/JJ HH:MM:SS sera insérée automatiquement. Le champ récepteur devra avoir une longueur de 19. Si le champ est de caractéristique « cle » la date ne sera mise qu'au moment de l'ajout, sinon elle sera mise à chaque modification. Ce traitement est très utile pour la génération automatique de clé de type date de création, mais aussi pour sauver la dernière date de modification.
  • numAuto : un numéro incrémenté automatiquement. Ce numéro est sous la forme aaaa/nnnnn où aaaa est l'année en cours et nnnnn le numéro incrémenté de la fiche. Le dernier numéro traité se trouvera dans le fichier « nomformaaaa_numAuto » du dossier « vitefait_prog » où « nomform » est le nom du formulaire et « aaaa » est l'année de numérotation. Ce traitement ne sera réalisé que lors de l'ajout (si le champ est vide). Le champ récepteur devra avoir une longueur de 10. Ce traitement est très utile pour la numérotation automatique des fiches.

NOTE: les traitements précédents peuvent être modifiés simplement pour tout Vitefait, un script python du même nom se trouve dans le dossier « est »

  • utilisateur : place dans le champs le nom de l'utilisateur courant. Le champs doit avoir une longueur permettant ce stockage
  • critereListe : à chaque envoi du formulaire, une liste de fiches sélectionnées est envoyée. La sélection se fait par égalité entre chaque champ choisi comme « critereListe » et le contenu des fiches. Le traitement critereListe est utile pour les formulaires enchainés. L'exemple « Ma première application sous Vitefait » en donne un cas concret
  • critereEgal : en cliquant sur la touche « lister » on demande une sélection des fiches avec comparaison d'égalité de chaque champ avec champ de code traitement « critereEgal » rempli. La sélection est multicritère. Exemple: j'ai les « champs » nom et « prenom » de type « critereEgal ». Si je mets « dupont » dans « nom » et rien dans « prenom », je vais lister tous les « dupont ». Si je mets « dupont » dans « nom » et « jean » dans « prenom », je vais lister tous les « dupont jean »
  • critereContient (interdit en Gadfly) : en appuyant sur la touche « lister » on demande une sélection des fiches avec comparaison de type « contient » de chaque champ avec champ de code traitement « critereContient » rempli. La sélection est multicritère. Ex : j'ai les « champs » nom et « prenom » de type « critereEgal ». Si je mets « dupon » dans « nom » et rien dans « prenom », je vais lister tous les « dupont », « dupond », « duponchelle », etc... Si je mets « dupont » dans « nom » et « j » dans « prenom », je vais lister tous les « dupont jean », « dupont jacques », etc.
  • pasEnListe : ce champ n'apparaitra pas dans les listes demandées par la fonction « lister ». Il ne pourra pas non plus servir de critère de recherche. Si votre formulaire comprend plus de 130 champs, il sera nécessaire d'en définir avec ce critaire
Otions pour les champs de type liste ou multiple
nom du formulaire de liste
il faut aller chercher le nom du formulaire
critères

les critères sont facultatifs

la double quote est interdite dans les critères

si l'on met plusieurs critères, il faut les séparer par des virgules

on peut aller choisir des critères de sélection, de tri, de groupe à injecter dans la lite à afficher, exemple:

  • like_nomduchamp=valeur le champ nomduchamp doit contenir la valeur
  • eq_nomduchamp=valeur le champ nomduchamp doit être égal à la valeur
  • lt_nomduchamp=valeur le champ nomduchamp doit être plus petit que la valeur
  • le_nomduchamp=valeur le champ nomduchamp doit être plus petit ou égal à la valeur
  • gt_nomduchamp=valeur le champ nomduchamp doit être plus grand que la valeur
  • ge_nomduchamp=valeur le champ nomduchamp doit être plus grand ou égal à la valeur

la valeur peut être simple (entre apostrophe pour un texte) ou un des champs du formulaire courant (val.nomduchamp)

  • nomduformulaire_ordre='nomduchamp,nomduchamp2,...' pour trier la liste
  • nomduformulaire_groupe='nomduchamp,nomduchamp2,...' pour trier la liste en éliminant les doublons
nom des questions

nom de la question ou des questions à afficher

peut s'écrire de 2 façons:

  • nomdequestion pour n'afficher qu'une question et prendre comme résultat la question en fonction de la ou des lignes choisies
  • nomdequestion1,nomdequestion2,...,nomdequestionN:nomdequestionarecuperer les questions 1 à n seront affichée et la valeur de la question nomdequestionarecuperer sera récupérée en fonction de la ou des lignes choisies
Code de traitement supplémentaire

En cochant l'une (ou plusieurs) des options de « traitement en », vous allez pouvoir ajouter du code Vitefait dans votre formulaire. Le code Vitefait peut aller du très simple au très complexe.

Le traitement 'après tests' va s'exécuter après les tests vus précédemment. Il sert à ajouter un test non prévu en standard (exemple: date inférieure où égale à date du jour, ...)

Le traitement 'avant écriture' sert à ajouter du code avant l'ajout où la modification d'une fiche.

Le traitement 'avant visualisation' sert à ajouter du code avant la visualisation de la fiche.

Le traitement 'avant liste' sert à ajouter du code avant l'appel de la liste des fiches. Il peut servir, par exemple, à injecter un critère de tri ou de séléction des fiches.

Dans chaque boite de traitement il est possible de mettre :

Dans tous les cas, le code de chaque question s'exécutera en fonction de l'ordre des questions.

Object actions
CPSSkins is Copyright © 2003-2005 by Jean-Marc Orliaguet.
CPS is Copyright © 2002-2005 by Nuxeo SARL.
Plone and its visual design is Copyright © 2000-2005 by Alexander Limi, Alan Runyan, Vidar Andersen.