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

XSL/XSLT/XPATH XML Discussion :

[XSLT~FO] formatage des données sur deux colonnes


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut [XSLT~FO] formatage des données sur deux colonnes
    Bonjour,

    Je souhaite formater des données sur plusieurs colonnes.

    exemple de xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <a>
      <b>a1b1</b>
      <b>a1b2</b>
      <b>a1b3</b>
    </a>
    <a>
      <b>a2b1</b>
      <b>a2b2</b>
      <b>a2b3</b>
    </a>
    Je souhaite couper ma page en deux colonnes et sur la premiere colonne,
    afficher tous les elements de la premiere balise "a" et sur la seconde tous ceux de la seconde.
    Chaque colonne sera elle meme decoupe en deux colonnes qui afficheront tous les sous elements

    exemple de mise en forme pour obtenir le resultat suivante :

    a1b1 - a1b2 - a2b1 - a2b2
    a1b3 -------- a2b3 --------


    Voici un essaie de code XSLT/FO pour le premier table (le second est tres similaire)

    Code : 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
    17
    18
    <fo:table text-align="left" table-layout="fixed" border="1pt solid black">
    	<fo:table-column column-width="1.8cm"/>
    	<fo:table-column column-width="1.8cm"/>
    	<fo:table-body>
    		<fo:table-row line-height="4mm">
    			<fo:table-cell>
    				<fo:block text-align="center" font-family="arial" font-size="8.0pt" font-weight="bold">
    					<xsl:value-of select="//a[1]/b[position() mod 2 = 1 ]"/>
    				</fo:block>
    			</fo:table-cell>
    			<fo:table-cell>
    				<fo:block text-align="center" font-family="arial" font-size="8.0pt" font-weight="bold">
    					<xsl:value-of select="//a[1]/b[position() mod 2 = 0 ]"/>
    				</fo:block>
    			</fo:table-cell>
    		</fo:table-row>
    	</fo:table-body>
    </fo:table>
    Probleme : Cela n'affiche que la premiere ligne.
    Je n'arrive pas à afficher toute les données.

    Quelqu'un pourrait-il m'aider un peu.

    Merci d'avance.

    3j

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Reponse
    Bonjour,

    J'ai trouvé une solution, si cela peut aider qqun.

    Extrait 1 : Exemple de ligne de tableau pour les deux premieres colonnes a reproduire pour a[2]

    Code : 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
    17
    18
    19
     
    <fo:tabletable-layout="fixed">
    	<fo:table-column column-width="3cm"/>
    	<fo:table-column column-width="3cm"/>
    	<fo:table-body>
    		<fo:table-row line-height="10mm">
    			<fo:table-cell>
    				<fo:block>
    					<xsl:apply-templates select="a[1]/b[position() mod 2=1]"/>
    				</fo:block>
    			</fo:table-cell>
    			<fo:table-cell>
    				<fo:block>
    					<xsl:apply-templates select="a[1]/b[position() mod 2=0]"/>
    				</fo:block>
    			</fo:table-cell>
    		</fo:table-row>
    	</fo:table-body>
    </fo:table>
    Extrait 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <xsl:template match="a/b">
    	<fo:table text-align="left" table-layout="fixed" space-after="0cm">
    		<fo:table-column/>
    		<fo:table-body>
    			<fo:table-row line-height="10mm">
    				<fo:table-cell>
    					<fo:block>
    						   <xsl:value-of select="." />
    					</fo:block>
    				</fo:table-cell>
    			</fo:table-row>
    		</fo:table-body>		
    	</fo:table>	
    </xsl:template>

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

Discussions similaires

  1. Enregister des données sur deux tables dans une base Access
    Par aziz-be dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 23/09/2012, 11h46
  2. [AC-2007] garde des donnes sur deux formulaires
    Par titi57 dans le forum IHM
    Réponses: 4
    Dernier message: 05/04/2011, 20h55
  3. Echange des données sur deux bases
    Par vlksoft dans le forum Modélisation
    Réponses: 7
    Dernier message: 29/12/2008, 09h03
  4. [XSLT] Mettre sur deux colonnes
    Par tiboel dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/07/2006, 14h38
  5. Afficher des enregistrements sur deux colonnes
    Par Dauphind dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2006, 14h16

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