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.

Reply via email to