|
Subject: Re: [xsl] XSL Grouping From: "David B. Bitton" <david@xxxxxxxxxxxxxx> Date: Mon, 12 Nov 2001 14:59:08 -0500 |
Don'w worry, I had an extra for-each. All is great now. Thanks alot! Also, Jeni, do you ever lecture on the
subject in or around the New York area?
On Mon, Nov 12, 2001 at 02:09:13PM -0500, David B. Bitton wrote:
> I have implemented this:
>
> <xsl:for-each select="Transaction[count(. | key('TransactionsByStatus', Status)[1]) =
> 1]">
> <xsl:sort select="Status"/>
> <tr class="Report">
> <td colspan="8">
> <b>
> <xsl:choose>
> <xsl:when test="Status='C'">
> <xsl:value-of
> select="count(key('TransactionsByStatus', Status))"/><xsl:text> confirmed transaction</xsl:text>
> </xsl:when>
> <xsl:when test="Status='A'">
> <xsl:value-of
> select="count(key('TransactionsByStatus', Status))"/><xsl:text> accepted, awaiting confirmation</xsl:text>
> </xsl:when>
> <xsl:when test="Status='R'">
> <xsl:value-of
> select="count(key('TransactionsByStatus', Status))"/><xsl:text> rejected</xsl:text>
> </xsl:when>
> <xsl:when test="Status='Y' or Status = 'N'">
> <xsl:value-of
> select="count(key('TransactionsByStatus', Status))"/><xsl:text> transaction awaiting submission</xsl:text>
> </xsl:when>
> <xsl:when test="Status='2' or Status='3' or Status='4'
> or Status='5' or Status='6' or Status='7' or Status='8' or Status='9'">
> <xsl:value-of
> select="count(key('TransactionsByStatus', Status))"/><xsl:text> transaction awaiting </xsl:text> <xsl:value-of
> select="Status" /><xsl:text> more approvals</xsl:text>
> </xsl:when>
> </xsl:choose>
> </b>
> </td>
> </tr>
> <xsl:for-each select="key('TransactionsByStatus', Status)">
> <xsl:sort select="*[local-name() = string($sortby)]"
> data-type="{$datatype}" order="{$order}"/>
>
> <xsl:for-each select="key('TransactionsByStatus', Status)
>
> [generate-id() =
>
> generate-id(key('TransactionsByStatusAndCurrencyCode',
>
> concat(Status, '::', CurrencyCode))[1])]">
>
> <tr><td class="ReportD" colspan="8"><xsl:value-of
> select="CurrencyCode"/></td></tr>
>
> <xsl:for-each
> select="key('TransactionsByStatusAndCurrencyCode',
>
> concat(Status, '::', CurrencyCode))">
>
>
> and I'm getting all transaction repeated for all currencycode, so if there are three transactions in the group, I
> get three under each unique currencycode, hrm. :)
>
> On Mon, Nov 12, 2001 at 05:56:22PM +0000, Jeni Tennison wrote:
> > Hi David,
> >
> > > This is one transaction. First we group by Status, no prob. Now I
> > > want to group by CurrencyCode within each Status group. I'm just not
> > > seeming to get the right combo of xsl:key and key() XPath in the sub
> > > for-each. Can someone lend a hand? Tx :)
> >
> > Sure. The key that you use for the second level group has to index
> > each Transaction by a combination of its Status and its CurrencyCode.
> > The easiest way to get such a combination value is using the concat()
> > function, so try:
> >
> > <xsl:key name="TransactionsByStatusAndCurrencyCode"
> > match="Transaction"
> > use="concat(Status, '::', CurrencyCode)" />
> >
> > [Obviously you don't have to use such a long name, I'm just doing so
> > to make things clear.]
> >
> > At the point where currently you're retrieving all the Transaction
> > elements with a particular status, you need to filter that set to
> > include only those that have that Status *and* have a unique
> > CurrencyCode, with something like:
> >
> > key('TransactionsByStatus', $status)
> > [generate-id() =
> > generate-id(key('TransactionsByStatusAndCurrencyCode',
> > concat($status, '::', CurrencyCode))[1])]
> >
> > And once you're processing such a Transaction, you can get all the
> > other Transaction elements with the same Status and CurrencyCode with:
> >
> > key('TransactionsByStatusAndCurrencyCode'
> > concat(Status, '::', CurrencyCode))
> >
> > I hope that helps,
> >
> > Jeni
> >
> > ---
> > Jeni Tennison
> > http://www.jenitennison.com/
> >
> >
> > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
> --
>
> David B. Bitton
> david@xxxxxxxxxxxxxx
>
> Diversa ab illis virtute valemus.
--
David B. Bitton
david@xxxxxxxxxxxxxx
Diversa ab illis virtute valemus.
Attachment:
pgp00003.pgp
Description: PGP signature
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] XSL Grouping, David B. Bitton | Thread | RE: [xsl] Localising Submit/Clear b, Chris Bayes |
| RE: [xsl] Localising Submit/Clear b, Chris Bayes | Date | RE: [xsl] last index of..., McNally, David |
| Month |