Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

xsl:sort et arrangement par colonnes

5 views
Skip to first unread message

Une Bévue

unread,
Feb 13, 2012, 12:12:12 PM2/13/12
to

ma feuille xsl sort sur trois colonnes les noms de personnes (et tél,
adresse etc) contenus dans mon carnet d'adresse et je pratique un
xsl:sor.

extrait de ma feuille :
<xsl:if test="($mode = 'group')">
<div id="un">
<xsl:apply-templates select="people/person[@group=$group]"
mode="group_trois">
<xsl:sort select="name/text()" lang="{$lang}" data-type="text"
order="ascending" case-order="upper-first"/>
<xsl:with-param name="col" select="1"/>
<xsl:with-param name="col_parite" select="1"/>
</xsl:apply-templates>
</div>
<div id="zero">
<xsl:apply-templates select="people/person[@group=$group]"
mode="group_trois">
<xsl:sort select="name/text()" lang="{$lang}" data-type="text"
order="ascending" case-order="upper-first"/>
<xsl:with-param name="col" select="0"/>
<xsl:with-param name="col_parite" select="1"/>
</xsl:apply-templates>
</div>
<div id="deux">
<xsl:apply-templates select="people/person[@group=$group]"
mode="group_trois">
<xsl:sort select="name/text()" lang="{$lang}" data-type="text"
order="ascending" case-order="upper-first"/>
<xsl:with-param name="col" select="2"/>
<xsl:with-param name="col_parite" select="0"/>
</xsl:apply-templates>
</div>
</xsl:if>

et le template appellé :
<xsl:template match="people/person" mode="company_trois">
<xsl:param name="col"/>
<xsl:param name="col_parite"/>
<xsl:variable name="rang" select="position()"/>
<xsl:if test="$rang mod 3 = $col">
<xsl:if test="($rang mod 2 = $col_parite)">
<div class="pair">
<xsl:apply-templates select="name"/>
</div>
</xsl:if>
<xsl:if test="not($rang mod 2 = $col_parite)">
<div class="impair">
<xsl:apply-templates select="name"/>
</div>
</xsl:if>
</xsl:if>
</xsl:template>

l'ordre obtenu est vertical :

[ A ][ M ][ V ]
[ B ][ N ][ W ]
...
[ L ][ U ][ Z ]

je préférerais un ordre "horizontal", qui me semble plus "user friendly"
: :
[ A ][ B ][ C ]
[ D ][ E ][ F ]
...
[ X ][ Y ][ Z ]

mais je ne vois pas comment faire compte-tenu de mes trois colonnes...
--
« On devrait fonder une chaire pour l'enseignement de la lecture
entre les lignes. »
(Léon Bloy)

Une Bévue

unread,
Feb 13, 2012, 12:26:13 PM2/13/12
to
Une Bévue <unbewus...@fai.invalid> wrote:

> mais je ne vois pas comment faire compte-tenu de mes trois colonnes...

ça roule, j'ai posté avant de finir mes modifs...
désolé pour le bruit ;-)
0 new messages