After reading this over again I'm not sure you need to do the nested tables
after all. It looks like you want to print a new set of column headers at the
same point in time as when you want a new group header, and if that's the case
you can just create 2 rows inside one table-header. So I interpret your
algorithm needs to be explained like so:
1. For each set of "ROW" elements inside a unique grouping of child
"Focus" element values, create a table for that group where the "Focus" element
value and the column headers for each child element under ROW whose name is not
equal to "Focus" are placed into a table-header.
2. Within the group created in step 1, create table-rows for each ROW
Using XSLT 2.0 you can do something like this to accomplish said algorithm:
<for-each-group select="//ROW" group-by="Focus">
<table>
<table-header>
<table-row><table-cell><block><value-of
select="Focus"/></block></table-cell></table-row>
<table-row>
<for-each select="*[local-name() != 'Focus']>
// Create cells for column headers
</for-each>
</table-row>
</table-header>
<table-body>
<for-each select="current-group()">
<table-row>
// Create cells for columns
</table-row>
</for-each>
</table-body>
</table>
</for-each-group>
If you're using XSLT 1.0 you can still accomplish the same thing but it's more
difficult. Google for "XSLT Muenchian" to find examples.
From: Paige Balter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 12, 2008 1:12 PM
To: [email protected]
Subject: Re: Repeating table/group headers on subsequent pages
That is an intriguing idea, Sean, and just might work, thank you!
Do you build your tables with For-each statements (e.g. <xsl:for-each
select=".//ROW">)? And how do you get the outer table's header to change with
each new grouping?
Thanks, again!
~Paige
----------------------------------------------------------------------
CONFIDENTIALITY NOTICE This message and any included attachments are from
Cerner Corporation and are intended only for the addressee. The information
contained in this message is confidential and may constitute inside or
non-public information under international, federal, or state securities laws.
Unauthorized forwarding, printing, copying, distribution, or use of such
information is strictly prohibited and may be unlawful. If you are not the
addressee, please promptly delete this message and notify the sender of the
delivery error by e-mail or you may call Cerner's corporate offices in Kansas
City, Missouri, U.S.A at (+1) (816)221-1024.