[XSL - XML] fusion colonne et nombre a virgule

fusion colonne et nombre a virgule [XSL - XML] - XML/XSL - Programmation

Marsh Posté le 03-07-2003 à 11:16:53    

comment peut on mettre une condition dans la fusion de colonne
je m'explique :
avec des requetes(fichier xsql) je recupere des infos d'une base Oracle
j'utilise des des feuilles xsl pour mettre tout ca en forme
mais je n'affiche des résultats que si certaines conditions sont réunies :
 
<xsl:if test="$PR='ALL'"><td align="CENTER" class="LL"><xsl:value-of select="PROD"/></td></xsl:if>
   <xsl:if test="$GA='ALL'"><td align="LEFT" class="LL"><xsl:value-of select="GARANT"/></td></xsl:if>
 
ces colonnes ne seront donc pas affichées si la valeur des arguments GA et PR ='ALL'
 
en bas de mon tablo, ya des stats par groupe de colonne
comment dire de fusionner le nombre voulu de colonnes?
 
<td colspan="??" class="LL" bgcolor="#c0c0c0"><font color="#ff0000" size="1"><div align="center"><b><xsl:variable name="NBRSIN" select="count(DOCUMENT/REQUETE/ROWSET/ROW)"/><xsl:value-of select="$NBRSIN"/> Sinistres</b></div></font></td>
 
autre probleme :
comment forcer l'affichage de nombre avec des virgules(2) dans la feuille xsl donc
 
de l'aide...

Reply

Marsh Posté le 03-07-2003 à 11:16:53   

Reply

Marsh Posté le 03-07-2003 à 11:46:48    

Pour le formatage des nombres il y a la fonction xsl format-number().
 


 
Examples ( copier/coller de l'aide de MSXML 4.0)
The following function call returns "5,351":
 
format-number(5351,"#,###" )
The following function call returns "5351.00":
 
format-number(5351, "#.00" )
The following function call returns "53.5100":
 
format-number(53.51, "#.0000" )
The following function call returns "0053.5100":
 
format-number(53.51, "0000.0000" )
The following function call returns "0053.51":
 
format-number(53.51, "0000.####" )
The following function call returns "53.6":
 
format-number(53.56, "0.0" )
The following XSLT lines return "24.535,20":


 
Pour le colspan j'ai pas très bien compris, faut compter les colonnes qui ne seront pas affichées ( yaca!).  
 
A+
A+


---------------
A thing of beauty is a joy forever (John Keats)
Reply

Marsh Posté le 03-07-2003 à 12:01:02    

Avander a écrit :

Pour le formatage des nombres il y a la fonction xsl format-number().
 


 
Examples ( copier/coller de l'aide de MSXML 4.0)
The following function call returns "5,351":
 
format-number(5351,"#,###" )
The following function call returns "5351.00":
 
format-number(5351, "#.00" )
The following function call returns "53.5100":
 
format-number(53.51, "#.0000" )
The following function call returns "0053.5100":
 
format-number(53.51, "0000.0000" )
The following function call returns "0053.51":
 
format-number(53.51, "0000.####" )
The following function call returns "53.6":
 
format-number(53.56, "0.0" )
The following XSLT lines return "24.535,20":


 
Pour le colspan j'ai pas très bien compris, faut compter les colonnes qui ne seront pas affichées ( yaca!).  
 
A+
A+
 


 
oui format-number marche tres bien
merci  :jap:  
par contre pour le colspan en fait c que la valeur est dans une balise et que je pe rien faire dedans
je vais essayer d utiliser un variable (ca m etait pas venu a l esprit  :D )

Reply

Marsh Posté le 03-07-2003 à 12:04:59    

Ben si tu peux faire qq. chose dedans mais alors il faut la générer avec < xsl:element > et < xsl:attribute >.  
 
Avander


---------------
A thing of beauty is a joy forever (John Keats)
Reply

Marsh Posté le 03-07-2003 à 12:11:56    

Avander a écrit :

Ben si tu peux faire qq. chose dedans mais alors il faut la générer avec < xsl:element > et < xsl:attribute >.  
 
Avander


 
ah oui tiens...
je vais essayer..

Reply

Marsh Posté le 03-07-2003 à 12:24:51    

Avander a écrit :

Ben si tu peux faire qq. chose dedans mais alors il faut la générer avec < xsl:element > et < xsl:attribute >.  
 
Avander


 
euh c possible de mettre 2 conditions dans un <xsl:if>
parce que tout ce que je peux faire avec les variables c leur assigner une valeur
donc comment je fais pour faire le test : mes 2 colonnes sont affichés (ou pas)?  g pas trouvé le AND
 
<xsl:choose>
  <xsl:when test="2 colonnes affichées">
   <xsl:attribute name="colspan">5</xsl:attribute>
  </xsl:when>
  <xsl:when test="0 colone affichée">
   <xsl:attribute name="colspan">3</xsl:attribute>
  </xsl:when>
  <xsl:otherwise>
   <xsl:attribute name="colspan">4</xsl:attribute>
  </xsl:otherwise>
 </xsl:choose>
sinon ca devrait etre ca...
 
 

Reply

Marsh Posté le 03-07-2003 à 12:30:54    

ah si c and...  :D

Reply

Marsh Posté le 03-07-2003 à 12:43:13    

voila ca fonctionne
si y en a que ca pe interesser... (mais j en doute  :D )
 
<td class="LL" bgcolor="#c0c0c0">  
    <xsl:choose>
     <xsl:when test="$PR='ALL' and $GA='ALL'"><xsl:attribute name="colspan">4</xsl:attribute></xsl:when>
     <xsl:when test="$PR!='ALL' and $GA!='ALL'"><xsl:attribute name="colspan">2</xsl:attribute></xsl:when>
     <xsl:otherwise><xsl:attribute name="colspan">3</xsl:attribute></xsl:otherwise>
    </xsl:choose>
    <font color="#ff0000" size="1"><div align="center"><b><xsl:variable name="NBRSIN" select="count(DOCUMENT/REQUETE/ROWSET/ROW)"/><xsl:value-of select="$NBRSIN"/> Sinistres</b></div></font></td>

Reply

Marsh Posté le 03-07-2003 à 14:28:08    

A la limite t'est même pas obligé d'utiliser une variable NBRSIN, tu mets direct ton count() dans le select.  
 
Note c'est une bonne idée de poster la solution ( à suivre je dirai ;-).  
 


---------------
A thing of beauty is a joy forever (John Keats)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed