logo


Recherche Avancée

Non identifié
Non identifié
Nom

Mot de passe


Mot de passe oublié?

blocmulti

le bloc ##blocmulti permet de créer un bloc de question qui est itératif. Les questions comprises entre ##blocmulti et ##finblocmulti seront répétées autant que nécessaires.

ce bloc a deux écritures. L'écriture simple qui a pour but de récupérer des données sur une table extérieure, mais demande que toutes les questions du blocs soient présentes dans la table.

L'écriture complète permet de gérer des question qui ne font pas partie de la requête.

Note: seuls les tests nonVide, alphabetique, alphaNumerique, date, numerique, lettres, chiffres, lettresOuChiffres fonctionnent avec les blocs

une mega-instruction permet de tester chacune des occurrences d'une question d'un bloc, mais elle peut aussi s'appliquer à une question qui ne fait pas partie d'un bloc.

Écriture dans le traitement après test:

!* test à vérifier: message d'erreur si le test n'est pas vérifié les questions doivent être écrites sous la forme val.nomdequestion

exemple:

!* val.montant > 0: le montant doit être supérieur à 0

##blocmulti écriture simple

##blocmulti//requete

exemple:

0010 ##blocmulti//monformulaire_sql_lister()

0020 question 1

0030 question 2

0040 ##finblocmulti

##blocmulti écriture complète

##blocmulti//requete//q1//q2//...

##blocmulti//requete,nb//q1//q2//...

##blocmulti//requete,nb,separateur//q1//q2//...

Dans ce cas, la requête est exécutée uniquement au premier affichage ou à la réinitialisation, ensuite on travaille avec les questions présentes.

où:

requête peut être tout type de requête rendant plusieurs items, exemple:

nomformulaire_sql_lister(eq_champ=champ).

Rend les éléments d'une table liée à un formulaire

range(nombre)

Rend « nombre » de lignes vides mais aussi beaucoup d'autres possibilités, script externe, dictionnaire ...

Note: À l'intérieur de la requête les champs sont utilisés par leur nom et ne doivent pas être précédés par le préfixe val.

De même la requête ne doit pas être préfixée par prg.

Nb indique le nombre de lignes vides à ajouter (sauf au premier affichage et à la réinitialisation), si omis = 0

Separateur est le caractère de séparation à utiliser dans l'écriture en table. Si omis <br/>

q1, q2, ... les questions décrites qui font ou ne font pas partie de la requête et sur lesquelles les traitements nécéssaires à l'ajout en table seront appliqués.

Pour chaque champ de la table il contiendra les valeurs du formulires séparées par le séparateur

Insérer du code à l'intérieur d'un blocmulti

Le blocmulti introduit un nouvel exit. Il suffit de créer un exit blocmulti_n ou n est le numéro de séquence du blocmulti. Ce code peut être écrit en dtml ou en python.

Exemple en python:

@blocmulti_1

val.set(« ttc »,float(val.ht)*1.206)

objet supprimeSiVide

Cet objet permet dans le cadre des groupes ##blocmulti de ne pas insérer dans l'enregistrement les lignes considéres comme vide.

prg.est.supprimeSiVide('questiondetest',['q1','q2','q3'])

ou question de test (à mettre entre guillement) est la question sur laquelle on fait le test de présence et listedesquestions sont les autres questions faisant partie du bloc, ces questions sont mises entre crochet et chaque question est mise entre guillemet.

Ne pas mettre de préfixe val à la question.

Rétroliens

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.