xsl-list
[Top] [All Lists]

XSLT - Multiple Level Grouping with Unknown Level

2004-09-09 03:12:51
Hi,

I have just started doing coding in XSLT and stuck with a unique problem.
I have done the coding for grouping with fixed levels but finiding the
solution for this one is getting too complicated.

I have looked for the solution at various places but couldn't find one.
Finaly I decided to post my query to you.

Please note that I am restricted to use XSLT version 1.0
and I have to produce the result in a table.

Also the levels of grouping is not fixed. It can be grouped further on Part.

My XML document (partial) is as follows :-

<Group>
    <GroupValue>SUPP1</GroupValue>
       <Group>
            <GroupValue>PO001</GroupValue>
            <Row>
                    <ColumnValue>1</ColumnValue>
                    <ColumnValue>PART1</ColumnValue>
                    <ColumnValue>1.00</ColumnValue>
                    <ColumnValue>1.00</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>2</ColumnValue>
                  <ColumnValue>PART2</ColumnValue>
                  <ColumnValue>2.00</ColumnValue>
                  <ColumnValue>2.00</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>3</ColumnValue>
                  <ColumnValue>PART1</ColumnValue>
                  <ColumnValue>3.00</ColumnValue>
                  <ColumnValue>3.00</ColumnValue>
            </Row>
       </Group>
       <Group>
            <GroupValue>PO002</GroupValue>
            <Row>
                    <ColumnValue>1</ColumnValue>
                    <ColumnValue>PART1</ColumnValue>
                    <ColumnValue>1.00</ColumnValue>
                    <ColumnValue>1.0000</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>2</ColumnValue>
                  <ColumnValue>PART2</ColumnValue>
                  <ColumnValue>2.00</ColumnValue>
                  <ColumnValue>2.0000</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>3</ColumnValue>
                  <ColumnValue>PART1</ColumnValue>
                  <ColumnValue>3.00</ColumnValue>
                  <ColumnValue>3.00</ColumnValue>
            </Row>
       </Group>
</Group>

<Group>
    <GroupValue>SUPP2</GroupValue>
       <Group>
            <GroupValue>PO003</GroupValue>
            <Row>
                    <ColumnValue>1</ColumnValue>
                    <ColumnValue>PART1</ColumnValue>
                    <ColumnValue>11.00</ColumnValue>
                    <ColumnValue>11.00</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>2</ColumnValue>
                  <ColumnValue>PART2</ColumnValue>
                  <ColumnValue>22.00</ColumnValue>
                  <ColumnValue>22.00</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>3</ColumnValue>
                  <ColumnValue>PART1</ColumnValue>
                  <ColumnValue>33.00</ColumnValue>
                  <ColumnValue>33.00</ColumnValue>
            </Row>
       </Group>
       <Group>
            <GroupValue>PO004</GroupValue>
            <Row>
                    <ColumnValue>1</ColumnValue>
                    <ColumnValue>PART1</ColumnValue>
                    <ColumnValue>11.00</ColumnValue>
                    <ColumnValue>11.00</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>2</ColumnValue>
                  <ColumnValue>PART2</ColumnValue>
                  <ColumnValue>22.00</ColumnValue>
                  <ColumnValue>22.00</ColumnValue>
            </Row>
            <Row>
                  <ColumnValue>3</ColumnValue>
                  <ColumnValue>PART1</ColumnValue>
                  <ColumnValue>33.00</ColumnValue>
                  <ColumnValue>33.00</ColumnValue>
            </Row>
       </Group>
</Group>

And the output should be as follows :-

Supplier  PO Number  Line  Part  Number   Qty  Reqd   Net Value
Supp1    PO001          1        Part1                1.00         1.00
2 Part2 2.00 2.00 3 Part1 3.00 3.00
           PO002          1        Part1                1.00         1.00
2 Part2 2.00 2.00 3 Part1 3.00 3.00
Supp2    PO003          1        Part1                11.00       11.00
2 Part2 22.00 22.00 3 Part1 33.00 33.00
           PO004          1        Part1                11.00       11.00
2 Part2 22.00 22.00 3 Part1 33.00 33.00

Thanking you in advance.

Arun

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



<Prev in Thread] Current Thread [Next in Thread>