[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

grouping after a group using 1.0

Subject: grouping after a group using 1.0
From: "Friend, Darris E" <FRIENDDE@xxxxxxx>
Date: Wed, 19 Nov 2008 17:07:38 -0500
 grouping after a group using 1.0
I am using 1.0 and can not use 2.0. All client
machines will use IE6 on Windows XP machines to view the report. I can
not
alter the XML output/format. I can only create an XSL to show the data
in a
report.

Mr. Ludwig helped me group on a another data file grouping question,
see xsl-list/archives/200811/msg00100.html

I took what he returned and manipulated it so that I can do more
grouping on the xml data below. The result I get is duplicated data that
is not properly grouped, but I am almost there. I think it has to do
with the second for-each, or maybe the first one. I know it's the loop
that is the problem, but I don't know how to correct it.

Anyway, what I am looking for is the following result:
ConnectionObjectID: ConObjNumber1
            PremiseID: PremiseNumber1
                        InstallNumber1   InstallType1
            PremiseID: PremiseNumber2
                        InstallNumber1 InstallType1
                        InstallNumber2 Install Type2
ConnectionObjectID: ConObjNumber2
            PremiseID: PremiseNumber2
                        Etc etc

This is the XSL:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>
<!-- Define Keys to Group Elements-->
<xsl:key name="SAPConnIDGroup" match="ObjectClassField[ @name = 'SAP
ConnectionObject ID']" use="."/>
<xsl:key name="SAPPremiseIDGroup" match="ObjectClassField[ @name = 'SAP
Premise ID']" use="."/>
<xsl:key name="SAPPremiseID"

match="MapDocumentRelationships/ObjectClass/ObjectClassRows/ObjectClassR
ow"
				 use="ObjectClassField[ @name = 'SAP
Premise ID']"/>
<xsl:template match="/">
<html>
<head>
<title>SAP ConnectionObject ID Report</title>
<style type="text/xsl">
body, td, th
{
font-size:80%;
font-family:Verdana,Arial,Sans-serif;
color:#000000;
text-align:left;
}
table
{  border-collapse: collapse;
width: 100%;
table-layout: fixed;
border-style: solid;
}
table, td
{  border-width: 1px;
}
td
{  color: black;
font-family: Arial;
font-size: x-small;
border-right-style: none;
border-left-style: none;
border-top-style: solid;
border-bottom-style: solid;
}
.DarkBack
{  background-color: #0066FF;
background-color: blue;
color: white;
font-weight: bold;
}
.LightBack
{  background-color: #FFFF00;
color: yellow;
}
.RightJustified
{  text-align: right;
}
</style>
</head>
<body>
<h3>SAP Connection ID at Selected Address(s)</h3>
<xsl:for-each select="/*/*/MapDocumentRelationships//ObjectClassField[
@name = 'SAP ConnectionObject ID']">
<xsl:sort select="." data-type="number"/>
<xsl:if test="generate-id() = generate-id( key( 'SAPConnIDGroup',
.)[1])">
<table>
<tr bgcolor="#ffff00">
<th>
<xsl:text>Connection Object ID: </xsl:text>
<xsl:value-of select="."/>
</th>
</tr>
</table>
</xsl:if>
<xsl:for-each select="/*/*/MapDocumentRelationships//ObjectClassField[
@name = 'SAP Premise ID']">
<xsl:sort select="." data-type="number"/>
<xsl:if test="generate-id() = generate-id( key( 'SAPPremiseIDGroup',
.)[1])">
<table>
<tr bgcolor="#9acd32">
<th>
<xsl:text>Premise ID: </xsl:text>
<xsl:value-of select="."/>
</th>
</tr>
</table>
<table border="2" cellpadding="2" cellspacing="1">
<tr bgcolor="dod2c4">
<th>Install Number</th>
<th>Install Type</th>
</tr>
<!-list install objects by premise>
<xsl:for-each select="key( 'SAPPremiseID', .)">
<xsl:sort select="ObjectClassField[ @name = 'SAP Premise ID']"
order="ascending"/>
<tr>
<xsl:apply-templates select="."/>
</tr>
</xsl:for-each>
</table>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>

<xsl:template match="ObjectClassRow">
<!-- Extend this to display more information. -->
<td>
<xsl:value-of select="ObjectClassField[ @name = 'SAP Install Number']"/>
</td>
<td>
<xsl:variable name="sit" select="ObjectClassField[ @name = 'SAP Install
Type']"/>
<xsl:choose>
<xsl:when test="$sit = 'ATTG'">AttenGen</xsl:when>
<xsl:when test="$sit = 'BIOS'">BioSolids</xsl:when>
<xsl:when test="$sit = 'ELEC'">Electric</xsl:when>
<xsl:when test="$sit = 'GRUC'">GRUCom</xsl:when>
<xsl:when test="$sit = 'GRUN'">GRUNet</xsl:when>
<xsl:when test ="$sit = 'HYDW'">Hydrant</xsl:when>
<xsl:when test="$sit = 'IRRW'">Irrigation</xsl:when>
<xsl:when test="$sit = 'LGHT'">Light or Pole Rental</xsl:when>
<xsl:when test="$sit = 'LPGS'">LP Gas</xsl:when>
<xsl:when test="$sit = 'NGS'">Natural Gas</xsl:when>
<xsl:otherwise>UNK</xsl:otherwise>
</xsl:choose>
</td>
</xsl:template>
</xsl:stylesheet>

And now the XML data (for the record the ConnectionObjectID, PremiseID
and InstallNumbers were changed to protect customer information):

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl'
href='C:\GISData\MobileConfiguration\SAPConnectionIDatGAP.xsl'?>
<ReportDefinition>
  <ReportObject name="SAPConnectionIDatGAP">
    <ObjectClass name="Address Points">
      <ObjectClassFieldDefinition />
      <ObjectClassRows>
        <ObjectClassRow OBJECTID="30582" />
        <ObjectClassRow OBJECTID="30583" />
      </ObjectClassRows>
    </ObjectClass>
    <MapDocumentRelationships>
      <ObjectClass name="SAP_INSTALLATION">
        <ObjectClassFieldDefinition>
          <FieldDefinition>SAP ConnectionObject ID</FieldDefinition>
          <FieldDefinition>SAP Premise ID</FieldDefinition>
          <FieldDefinition>SAP Install Number</FieldDefinition>
          <FieldDefinition>SAP Install Type</FieldDefinition>
        </ObjectClassFieldDefinition>
        <ObjectClassRows>
          <ObjectClassRow OBJECTID="120552">
            <ObjectClassField name="SAP ConnectionObject
ID">221</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4250</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12120</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">WATR</ObjectClassField>
          </ObjectClassRow>
          <ObjectClassRow OBJECTID="120481">
            <ObjectClassField name="SAP ConnectionObject
ID">221</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4250</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12125</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">NTGS</ObjectClassField>
          </ObjectClassRow>
          <ObjectClassRow OBJECTID="120558">
            <ObjectClassField name="SAP ConnectionObject
ID">221</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4250</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12126</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">WSTU</ObjectClassField>
          </ObjectClassRow>
          <ObjectClassRow OBJECTID="120475">
            <ObjectClassField name="SAP ConnectionObject
ID">221</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4250</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12129</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">ELEC</ObjectClassField>
          </ObjectClassRow>
          <ObjectClassRow OBJECTID="120643">
            <ObjectClassField name="SAP ConnectionObject
ID">228</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4258</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12124</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">WSTU</ObjectClassField>
          </ObjectClassRow>
          <ObjectClassRow OBJECTID="120569">
            <ObjectClassField name="SAP ConnectionObject
ID">228</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4258</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12127</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">WATR</ObjectClassField>
          </ObjectClassRow>
          <ObjectClassRow OBJECTID="120563">
            <ObjectClassField name="SAP ConnectionObject
ID">228</ObjectClassField>
            <ObjectClassField name="SAP Premise
ID">4258</ObjectClassField>
            <ObjectClassField name="SAP Install
Number">12121</ObjectClassField>
            <ObjectClassField name="SAP Install
Type">ELEC</ObjectClassField>
          </ObjectClassRow>
        </ObjectClassRows>
      </ObjectClass>
    </MapDocumentRelationships>
  </ReportObject>
</ReportDefinition>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.