IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

XFORMS + mise en forme d'un tableau


Sujet :

XML/XSL et SOAP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut XFORMS + mise en forme d'un tableau
    Bonjour à tous,
    j'utilise les technologies XFORMS pour créer une application.
    Dans ce cadre je fais un certain calcul que j'aimerai visualiser sous la forme d'un tableau.
    Ayant de résultats, j'aimerai n'avoir que 3 résultats par lignes (donc 3 colonnes à mon tableau)
    Néanmoins, je n'arrive pas à trouver la syntaxe qui permettrait de le faire :

    Voici ou j'en suis :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <xxforms:variable name="compteur" value="0"/>
    <xhtml:table>
    	<xforms:repeat nodeset="instance('graph-prog')/chartProjs">
    		<xxforms:if test="{$compteur % 3 == 0}">
    			<xhtml:tr>			
    		</xxforms:if>
    				<xhtml:td>
    					<fr:fusion-charts ref="graph" swf="FCF_Doughnut2D" width="400" height="400"/>
    				</xhtml:td>
    		<xxforms:if test="{$compteur % 4 == 0}">
    			</xhtml:tr>			
    		</xxforms:if>
    		<xxforms:variable name="compteur" value="{$compteur +1}"/>
    		</xforms:repeat>
    </xhtml:table>

    Ce code donne l'erreur suivante : The element type "xhtml:tr" must be terminated by the matching end-tag "</xhtml:tr>".

    De même lorsque je l'ai complète ce qui devrai donner des lignes vide (mais c'est pour tester), j'ai le message suivant :
    Invalid extension element in XForms document: xxforms:if

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    J'imagine que vous utilisez Orbeon car la notion de variable n'existe pas dans la recommandation XForms. D'après la documentation Orbeon, une variable devrait se comporter comme dans XSLT, ce qui veut dire que l'on ne peut pas modifier la valeur d'une variable sitôt initialisée !

    Un formulaire XForms doit également rester un document XML bien formé. Vous ne pouvez donc pas "ouvrir" une balise à un moment selon une condition et la "fermer" plus loin selon une autre condition.

    Comme avec XSLT, vous devez plutôt n'effectuer le repeat que sur un noeud sur 3 et, dans le corps du repeat, considérer le noeud et les deux suivants en utilisant l'axe following-sibling.

    L'utilisation d'une séquence XPath 2.0 est également possible avec Orbeon alors que XForms 1.1 ne recommande que XPath 1.0.

    -Alain

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Merci pour votre réponse. En effet, j'utilise Orbeon.
    Malgré votre explication, je ne vois pas comment écrire la boucle me permettant de faire ce que je veux

    Je vous rappel que dans l'instance, j'ai un nombre variable de nœud chartProjs.

    Supposons que j'en ai 5.
    Comment faire pour avoir 1 ligne avec les informations des 3 premiers nœud et un seconde avec les informations des 2 suivant puis une colonne vide (pour avoir un document bien formé) ?

  4. #4
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Essayez d'abord ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xforms:repeat nodeset="instance('graph-prog')/chartProjs[position() mod 3 = 1]">
    pour n'avoir qu'un élément sur 3 puis utilisez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    following-sibling::chartProjs[1]/graph
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    following-sibling::chartProjs[2]/graph
    pour référencer le suivant et celui d'après.

    -Alain

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Excellent ! Merci beaucoup.

    le résultat final est le suivant :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xhtml:table>
    	<xforms:repeat nodeset="instance('graph-prog')/chartProjs[position() mod 2 = 1]">	
    		<xhtml:tr>	
    			<xhtml:td>
    				<fr:fusion-charts ref="graph" swf="FCF_Doughnut2D" width="400" height="400"/>
    			</xhtml:td>
    			<xhtml:td>
    				<fr:fusion-charts ref="following-sibling::chartProjs[1]/graph" swf="FCF_Doughnut2D" width="400" height="400"/>
    			</xhtml:td>
     
    		</xhtml:tr>								
    	</xforms:repeat>
    </xhtml:table>
    PS: Finalement je n'ai mis que 2 colonnes maximums

  6. #6
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    C'est pour moi l'occasion de découvrir l'intégration de fusioncharts à Orbeon !

    C'est quelque chose que j'ai déjà étudié de mon côté avec XSLTForms et SVG : http://www.svgopen.org/2010/papers/1...hs_for_XForms/

    -Alain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer la mise en forme d'un tableau et de son contenu ?
    Par ghohm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/07/2007, 12h19
  2. [MS-Project] Mise en forme d'un tableau
    Par babemagus dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 06/06/2007, 15h56
  3. [XSLT]Mise en forme d'un tableau par categorie
    Par dibox dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/12/2006, 16h42
  4. [ struts-layout ]Mise en forme d'un tableau
    Par sandrinec dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/06/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo