xsl-list
[Top] [All Lists]

RE: Re: How to Calculate Running Total using Variable withi n FOR-LOOP?

2003-12-05 15:12:05
Dimitre,

Thank you for helping.  I've reposted the xml and xsl at the bottom of this
message. You should be able to apply the style sheet to this xml without
error.  

The included code should illustrate what I need to accomplish with this
report.  I've added some comments to the code skeleton below so you can gain
a quick understanding of the program's structure.  I think the structure is
where the problem lies because it affects the scope of variables.

You should be able to apply the style sheet to this xml without error.  

Please see below to examine a summary of how the report is set up:

Report Layout:
Batch Detail Report Header

Pre-Billing Header
Pre-Billing Report Details
        Hourly SubTotal
        Units SubTotal
        SubTotal
        Specialty SubTotal
        Report Total            922.44
        Savings
Pre-Billing Report
        Hourly SubTotal
        Units SubTotal
        SubTotal
        Specialty SubTotal
        Report Total            797.88
        Savings
Batch Total                             922.44 + 797.88


Code Skeleton (I've included the key components to understand the logic):
Batch Detail Report Header
<xsl:for-each>
        Pre-Billing Header
        <xsl:for-each>
        Pre-Billing Report Details
        </xsl:for-each>
                
                <!--Calulate and Set Hourly Subtotal Variable-->
                <xsl:variable name="Hourly">
                        <xsl:call-template
name="Hourly"></xsl:call-template>
                </xsl:variable>

                <!--Calulate and Set Subtotal Variable-->
                <xsl:variable name="Lesser">
                        <xsl:call-template name="Lesser">
                                <xsl:with-param name="Hourly"
select="$Hourly"/>
                        </xsl:call-template>
                </xsl:variable>
        
                <!--Calulate and Set Savings Subtotal Variable-->
                <xsl:variable name="Savings">
                        <xsl:call-template name="Savings">
                                <xsl:with-param name="Hourly"
select="$Hourly"/>
                        </xsl:call-template>
                </xsl:variable>
                
                <!--Calulate and Set Specialty Subtotal Variable-->
                <xsl:variable name="Specialty">
                        <xsl:call-template
name="Specialty"></xsl:call-template>
                </xsl:variable>
        
                <!--Calulate and Set Specialty Subtotal Variable-->
                <!--Notice that it requires input from above variables-->
                <xsl:variable name="GrandTotal">
                        <xsl:call-template name="GrandTotal">
                                <xsl:with-param name="Hourly"
select="$Hourly"/>
                                <xsl:with-param name="Lesser"
select="$Lesser"/>
                                <xsl:with-param name="Specialty"
select="$Specialty"/>
                        </xsl:call-template>
                </xsl:variable>
                
                <!--PROBLEM AREA:  Since this is being set within a loop,
the value is lost with each iteration.  So, it really isn't a running total.
That is what I need.
                <xsl:variable name="running-total" select="$running-total +
$GrandTotal"/>

                <!--Display Subtotal Variables-->
                <!--Hourly SubTotal-->
                <xsl:value-of select="format-number($Hourly, '$#,##0.00')"/>
                <!--Units SubTotal-->
                <xsl:value-of
select="format-number(sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST),
'$#,##0.00')"/>
                <!--SubTotal-->
                <xsl:value-of select="format-number($Lesser, '$#,##0.00')">
                <!--Specialty SubTotal-->
                <xsl:value-of select="format-number($Specialty,
'$#,##0.00')"/>
                <!--Report Total-->
                <xsl:value-of select="format-number($GrandTotal,
'$#,##0.00')">
                <!--Savings-->
                <xsl:value-of select="format-number($Savings, '$#,##0.00')">
</xsl:for-each>

                <!--Batch Total PROBLEM AREA:  Because of loop, this is not
in the same scope as above, thus yielding 0 -->
                <xsl:value-of select="format-number($running-total,
'$#,##0.00')"/>

Everything except Batch Total works fine.  



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fo="http://www.w3.org/1999/XSL/Format";
xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
        <!-- StyleSheet:                CI200PreBillReport.xsl
                Purpose:                This stylesheet creates a simple
HTML table from a Microsoft format recordset.  It lists each data row as a
row, using
                                                attribute names as column
names.

        Parameters:             
                                                        
                Author:                 Bill Ficke              09/02/2003
        -->
        <!-- Output is XHTML -->
        <xsl:output method="xml" omit-xml-declaration="yes" indent="no"
encoding="ISO-8859-1"/>
        <!-- the Report Header of the output table -->
        <xsl:param name="report_header">Batch Detail Report</xsl:param>
        <!-- the ID of the output table -->
        <xsl:param name="table_id">ms_table</xsl:param>
        <!-- parm to change stylesheet reference -->
        <xsl:param
name="style_sheet_ref">../../../StyleFiles/D1MasterCSS.css</xsl:param>
        <!-- style class assigned to the table -->
        <xsl:param name="tbl_class"/>
        <!-- style class assigned to the table header cells -->
        <xsl:param name="hdr_cell_class"/>
        <!-- style class assigned to the table cells -->
        <xsl:param name="cell_class"/>
        <!-- init the running total var -->
        <xsl:param name="running-total" select="0"/>
  
                

        <!-- match root -->
        <xsl:template match="/">
                <html>
                        <head>
                                <title></title>
                                <link rel="stylesheet" type="text/css"
href="{$style_sheet_ref}"></link>
                        </head>
                        <body>
                                <xsl:for-each
select="/xml/rs:data/z:row[(_at_)RB_ID !=
'B478EB94-F6D0-4133-A796-6718BF854B1C']">
                                        <xsl:call-template
name="PreBillHeader"/>
                                        <xsl:call-template
name="PreBillBody"/>
                                </xsl:for-each>
                        </body>
                </html>
        </xsl:template>
        <xsl:template name="PreBillHeader">
                <div id="cia_header">
                        <table border="0" width="90%">
                                <tbody>
                                        <tr>
                                                <td class="cia_reportname">
                                                        <xsl:value-of
select="$report_header"/>
                                                </td>
                                        </tr>
                                        <tr>
                                                <td class="cia_company">
                                                        <xsl:value-of
select="./@CO_NAME"/>
                                                </td>
                                        </tr>
                                        <tr>
                                                <td>
                                                        <xsl:value-of
select="./@CO_ADDRESS"/>
                                                </td>
                                        </tr>
                                        <tr>
                                                <td/>
                                        </tr>
                                        <tr>
                                                <td>
                                                        <table border="0"
width="100%">
                                                                <tbody>
                                                                        <tr>

        
<td>Batch:</td>
        
<td class="cia_reportdata">
        
<xsl:value-of select="./@RB_NAME"/>
        
</td>
        
<td>Batch Start Date:</td>
        
<td class="cia_reportdata">
        
<xsl:value-of select="translate(./@RB_START_DATE, 'T', ' ')"/>
        
</td>
        
</tr>
                                                                        <tr>
        
<td></td>
        
<td class="cia_reportdata">
        

        
</td>
        
<td>Batch End Date:</td>
        
<td class="cia_reportdata">
        
<xsl:value-of select="translate(./@RB_END_DATE, 'T', ' ')"/>
        
</td>
        
</tr>
                                                                </tbody>
                                                        </table>
                                                </td>
                                        </tr>
                                </tbody>
                        </table>
                </div>
                <br/>
        </xsl:template>
        <xsl:template name="PreBillBody">
                <div id="cia_header">
                        <table border="0" width="90%">
                                <tbody>
                                        
                                        <xsl:for-each
select="./b_children/rr">
                                                <tr>
                                                        <td>Pre-Billing
Report:</td>
                                                        <td colspan="2"
class="cia_reportdata">
        
<xsl:value-of select="./@RR_NAME"/>
                                                        </td>
                                                        <td>Job
Address:</td>
                                                        <td colspan="2"
class="cia_reportdata">
        
<xsl:value-of select="./@WR_ADDRESS"/>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <td
class="cia_total">Bid Unit</td>
                                                        <td
class="cia_total">BU Type</td>
                                                        <td
class="cia_total"></td>
                                                        <td
class="cia_total" align="right">Price</td>
                                                        <td
class="cia_total" align="right">Qty</td>
                                                        <td
class="cia_total" align="right">Total $</td>
                                                </tr>
<xsl:for-each select="./rr_children/rd">
<tr class="cia_reportdata">
<td>
<xsl:value-of select="@RESOURCECODENAME"/>
</td>
<td>
<xsl:value-of select="@BIDUNITNAME"/>
</td>
<td>
<!--<xsl:value-of select="@UNITOFMEASURE"/>-->
</td>
<td align="right">
<xsl:value-of select="format-number(@ACTUALCOST, '$#,##0.00')"/>
</td>
<td align="right">
<xsl:value-of select="@QUANTITY"/>
</td>
<td align="right">
<xsl:value-of select="format-number(@TOTALCOST, '$#,##0.00')"/>
</td>
</tr>
</xsl:for-each>
                
                
        <xsl:variable name="Hourly">
                <xsl:call-template name="Hourly"></xsl:call-template>
        </xsl:variable>

        <xsl:variable name="Lesser">
                <xsl:call-template name="Lesser">
                        <xsl:with-param name="Hourly" select="$Hourly"/>
                </xsl:call-template>
        </xsl:variable>
        
        <xsl:variable name="Savings">
                <xsl:call-template name="Savings">
                        <xsl:with-param name="Hourly" select="$Hourly"/>
                </xsl:call-template>
        </xsl:variable>
                
        <xsl:variable name="Specialty">
                <xsl:call-template name="Specialty"></xsl:call-template>
        </xsl:variable>
        
        <xsl:variable name="GrandTotal">
                <xsl:call-template name="GrandTotal">
                        <xsl:with-param name="Hourly" select="$Hourly"/>
                        <xsl:with-param name="Lesser" select="$Lesser"/>
                        <xsl:with-param name="Specialty"
select="$Specialty"/>
                </xsl:call-template>
        </xsl:variable>

<xsl:variable name="running-total" select="$running-total + $GrandTotal"/>
        
        <xsl:call-template name="PreBillTotal">
                <xsl:with-param name="Hourly" select="$Hourly"/>
                <xsl:with-param name="Lesser" select="$Lesser"/>
                <xsl:with-param name="Specialty" select="$Specialty"/>
                <xsl:with-param name="Savings" select="$Savings"/>
                <xsl:with-param name="GrandTotal" select="$GrandTotal"/>
        </xsl:call-template>

</xsl:for-each>

        <xsl:call-template name="BatchTotal">
                <xsl:with-param name="running-total"
select="$running-total"/>
        </xsl:call-template>

</tbody>
</table>
</div>

</xsl:template>
        
<xsl:template name="Hourly">
        <xsl:value-of
select="sum(./rr_children/rd[(_at_)BIDUNITNAME='Labor']/@TOTALCOST) +
sum(./rr_children/rd[(_at_)BIDUNITNAME='Equipment']/@TOTALCOST)"/>
</xsl:template>

<xsl:template name="Lesser">
        <xsl:param name="Hourly"/>
        <xsl:choose>
                <!-- Hourly is 0, so use Unit -->
                <xsl:when test="$Hourly = 0">
                        <xsl:value-of
select="sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST)"/>
                </xsl:when>

                <!-- Unit is 0, so use Hourly -->
                <xsl:when
test="sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST) = 0">
                        <xsl:value-of select="$Hourly"/>
                </xsl:when>

                <!-- Hourly greater than Unit -->
                <xsl:when test="$Hourly &gt;
sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST)">
                        <xsl:value-of
select="sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST)"/>
                </xsl:when>

                <!-- Unit greater than Hourly -->
                <xsl:when
test="sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST) &gt; $Hourly">
                        <xsl:value-of select="$Hourly"/>
                </xsl:when>

                <!-- Otherwise -->
                <xsl:otherwise>
                        <xsl:value-of select="0"></xsl:value-of>
                </xsl:otherwise>
        </xsl:choose>

</xsl:template>

<xsl:template name="Savings">
        <xsl:param name="Hourly"/>

        <xsl:choose>

                <!-- Unit greater than Hourly and Payment Type is Hourly not
to exceed Unit-->
                <xsl:when test="((./@RR_PAYMENT_TYPE = 2) and
(sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST) &gt; $Hourly))">
                        <xsl:value-of
select="sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST) - $Hourly"/>
                </xsl:when>

                <!-- Otherwise -->
                <xsl:otherwise>
                        <xsl:value-of select="0"></xsl:value-of>
                </xsl:otherwise>
        </xsl:choose>

</xsl:template>


<xsl:template name="Specialty">

        <xsl:value-of
select="sum(./rr_children/rd[(_at_)BIDUNITNAME='Specialty']/@TOTALCOST) +
sum(./rr_children/rd[(_at_)BIDUNITNAME='Maintenance']/@TOTALCOST)"></xsl:value-of


</xsl:template>

<xsl:template name="GrandTotal">
        
        <xsl:param name="Hourly"/>
        <xsl:param name="Lesser"/>
        <xsl:param name="Specialty"/>

        <xsl:choose>

                        <xsl:when test="./@RR_PAYMENT_TYPE = 3">
                                <xsl:value-of
select="$Specialty"></xsl:value-of>
                        </xsl:when>

                        <xsl:when test="./@RR_PAYMENT_TYPE = 2">
                                <xsl:value-of select="$Lesser +
$Specialty"></xsl:value-of>
                        </xsl:when>

                        <xsl:when test="./@RR_PAYMENT_TYPE = 1">
                                <xsl:value-of
select="sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST) +
$Specialty"></xsl:value-of>
                        </xsl:when>

                        <xsl:when test="./@RR_PAYMENT_TYPE = 0">
                                <xsl:value-of select="$Hourly +
$Specialty"></xsl:value-of>
                        </xsl:when>

        </xsl:choose>

</xsl:template>

<xsl:template name="PreBillTotal">
        <xsl:param name="Hourly"/>
        <xsl:param name="Lesser"/>
        <xsl:param name="Specialty"/>
        <xsl:param name="Savings"/>
        <xsl:param name="GrandTotal"/>

        <tr class="cia_company">
                <td colspan="6" class="cia_total"></td>
        </tr>

        <tr class="cia_reportdata">
                <td colspan="2"></td>
                <td colspan="3">Hourly SubTotal</td>
                <td align="right"><xsl:value-of
select="format-number($Hourly, '$#,##0.00')"/></td>
        </tr>
        
        <tr class="cia_reportdata">
                <td colspan="2"></td>
                <td colspan="3">Units SubTotal</td>
                <td align="right"><xsl:value-of
select="format-number(sum(./rr_children/rd[(_at_)BIDUNITNAME='Unit']/@TOTALCOST),
'$#,##0.00')"/></td>
        </tr>

        <tr class="cia_reportdata">
                <td colspan="6">&#160;</td>
        </tr>
        
        <tr class="cia_reportdata">
                <td colspan="2"></td>
                <td colspan="3">SubTotal</td>
                <td align="right"><xsl:value-of
select="format-number($Lesser, '$#,##0.00')"></xsl:value-of></td>
        </tr>
        
        <tr class="cia_reportdata">
                <td colspan="2"></td>
                <td colspan="3">Specialty Total</td>
                <td align="right"><xsl:value-of
select="format-number($Specialty, '$#,##0.00')"/></td>
        </tr>

        <tr class="cia_reportdata">
                <td colspan="2"></td>
                <td colspan="3" class="cia_subtotal">Report Total</td>
                <td align="right" class="cia_subtotal"><xsl:value-of
select="format-number($GrandTotal, '$#,##0.00')"></xsl:value-of></td>
        </tr>

        <tr class="cia_reportdata">
                <td colspan="2"></td>
                <td colspan="3" class="cia_subtotal">Savings</td>
                <td align="right" class="cia_subtotal"><xsl:value-of
select="format-number($Savings, '$#,##0.00')"></xsl:value-of></td>
        </tr>

</xsl:template>
        
        
<xsl:template name="BatchTotal">

<xsl:param name="running-total"/>

                <tr class="cia_company">
                        <td colspan="6" class="cia_total">Batch Total</td>
                </tr>
                <tr class="cia_reportdata">
                        <td colspan="2"></td>
                        <td colspan="3" class="cia_subtotal">Batch
Total</td>
                        <td class="cia_subtotal">
                                <xsl:value-of
select="format-number($running-total, '$#,##0.00')"/>
                        </td>
                </tr>
</xsl:template>

</xsl:stylesheet>


<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
        <s:Schema id="RowsetSchema">
                <s:ElementType name="row" content="eltOnly"
rs:CommandTimeout="30" rs:updatable="true" rs:ReshapeName="batch">
                        <s:AttributeType name="RB_ID" rs:number="1"
rs:writeunknown="true" rs:basetable="RP_BATCH_VW" rs:basecolumn="OBJ_ID">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="36" rs:maybenull="false"/>
                        </s:AttributeType>
                        <s:AttributeType name="RB_NAME" rs:number="2"
rs:nullable="true" rs:writeunknown="true" rs:basetable="RP_BATCH_VW"
rs:basecolumn="OBJ_NAME">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="100"/>
                        </s:AttributeType>
                        <s:AttributeType name="RB_START_DATE" rs:number="3"
rs:nullable="true" rs:writeunknown="true" rs:basetable="RP_BATCH_VW"
rs:basecolumn="BEGINDATE">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="1500"/>
                        </s:AttributeType>
                        <s:AttributeType name="RB_END_DATE" rs:number="4"
rs:nullable="true" rs:writeunknown="true" rs:basetable="RP_BATCH_VW"
rs:basecolumn="ENDDATE">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="1500"/>
                        </s:AttributeType>
                        <s:AttributeType name="CO_ID" rs:number="5"
rs:writeunknown="true" rs:basetable="RP_COMPANY_VW" rs:basecolumn="OBJ_ID">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="36" rs:maybenull="false"/>
                        </s:AttributeType>
                        <s:AttributeType name="CO_NAME" rs:number="6"
rs:nullable="true" rs:writeunknown="true" rs:basetable="RP_COMPANY_VW"
rs:basecolumn="OBJ_NAME">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="100"/>
                        </s:AttributeType>
                        <s:AttributeType name="CO_ADDRESS" rs:number="7"
rs:nullable="true" rs:writeunknown="true" rs:basetable="RP_COMPANY_VW"
rs:basecolumn="OBJ_DESC">
                                <s:datatype dt:type="string" rs:dbtype="str"
dt:maxLength="300"/>
                        </s:AttributeType>
                        <s:ElementType name="b_children" content="eltOnly"
rs:CommandTimeout="30" rs:updatable="true" rs:ReshapeName="b_children"
rs:relation="010000000100000000000000">
                                <s:AttributeType name="REL_PARENT"
rs:number="1" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RELS_DT" rs:basecolumn="REL_PARENT">
                                        <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="36"/>
                                </s:AttributeType>
                                <s:AttributeType name="REL_CHILD"
rs:number="2" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RELS_DT" rs:basecolumn="REL_CHILD">
                                        <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="36"/>
                                </s:AttributeType>
                                <s:ElementType name="rr" content="eltOnly"
rs:CommandTimeout="30" rs:updatable="true" rs:ReshapeName="rr" rs:relation="
                        020000000100000000000000">
                                        <s:AttributeType name="RR_ID"
rs:number="1" rs:writeunknown="true" rs:basetable="RP_RESOURCEREPORT_VW"
rs:basecolumn="OBJ_ID">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="36" rs:maybenull="false"/>
                                        </s:AttributeType>
                                        <s:AttributeType name="RR_NAME"
rs:number="2" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCEREPORT_VW" rs:basecolumn="OBJ_NAME">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="100"/>
                                        </s:AttributeType>
                                        <s:AttributeType
name="RR_ISAPPROVED" rs:number="3" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCEREPORT_VW" rs:basecolumn="ISAPPROVED">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="1500"/>
                                        </s:AttributeType>
                                        <s:AttributeType
name="RR_APPROVED_DATE" rs:number="4" rs:nullable="true"
rs:writeunknown="true" rs:basetable="RP_RESOURCEREPORT_VW"
rs:basecolumn="DATEAPPROVED">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="1500"/>
                                        </s:AttributeType>
                                        <s:AttributeType name="RR_NOTES"
rs:number="5" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCEREPORT_VW" rs:basecolumn="NOTES">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="1500"/>
                                        </s:AttributeType>
                                        <s:AttributeType
name="RR_PAYMENT_TYPE" rs:number="6" rs:nullable="true"
rs:writeunknown="true" rs:basetable="RP_RESOURCEREPORT_VW"
rs:basecolumn="PMTTYPE">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="1500"/>
                                        </s:AttributeType>
                                        <s:AttributeType name="WR_NAME"
rs:number="7" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_WORKREQUEST_VW" rs:basecolumn="OBJ_NAME">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="100"/>
                                        </s:AttributeType>
                                        <s:AttributeType name="WR_ADDRESS"
rs:number="8" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_WORKREQUEST_VW" rs:basecolumn="ADDRESS">
                                                <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="1500"/>
                                        </s:AttributeType>
                                        <s:ElementType name="rr_children"
content="eltOnly" rs:CommandTimeout="30" rs:updatable="true"
rs:ReshapeName="rr_children" rs:relation="010000000100000000000000">
                                                <s:AttributeType
name="REL_PARENT" rs:number="1" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RELS_DT" rs:basecolumn="REL_PARENT">
                                                        <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="36"/>
                                                </s:AttributeType>
                                                <s:AttributeType
name="REL_CHILD" rs:number="2" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RELS_DT" rs:basecolumn="REL_CHILD">
                                                        <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="36"/>
                                                </s:AttributeType>
                                                <s:ElementType name="rd"
content="eltOnly" rs:CommandTimeout="30" rs:updatable="true"
rs:ReshapeName="rd" rs:relation="020000000400000000000000">
                                                        <s:AttributeType
name="UNITOFMEASURE" rs:number="1" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCECODE_VW" rs:basecolumn="UNITOFMEASURE">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="1500"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="BIDUNITNAME" rs:number="2" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_BUTYPE_VW" rs:basecolumn="OBJ_NAME">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="100"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="RESOURCECODENAME" rs:number="3" rs:nullable="true"
rs:writeunknown="true" rs:basetable="RP_RESOURCECODE_VW"
rs:basecolumn="OBJ_NAME">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="100"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="OBJ_ID" rs:number="4" rs:writeunknown="true"
rs:basetable="RP_RESOURCEDETAIL_VW" rs:basecolumn="OBJ_ID">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="36" rs:maybenull="false"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="CHARGECODE" rs:number="5" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCEDETAIL_VW" rs:basecolumn="CHARGECODE">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="1500"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="ACTUALCOST" rs:number="6" rs:nullable="true">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="13"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="QUANTITY" rs:number="7" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCEDETAIL_VW" rs:basecolumn="QUANTITY">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="1500"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="QUALIFIERCODE" rs:number="8" rs:nullable="true" rs:writeunknown="true"
rs:basetable="RP_RESOURCEDETAIL_VW" rs:basecolumn="QUALIFIERCODE">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="1500"/>
                                                        </s:AttributeType>
                                                        <s:AttributeType
name="TOTALCOST" rs:number="9" rs:nullable="true">
                                                                <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="13"/>
                                                        </s:AttributeType>
                                                        <s:extends
type="rs:rowbase"/>
                                                </s:ElementType>
                                                <s:AttributeType
name="ROWID" rs:number="4" rs:nullable="true" rs:rowid="true"
rs:basetable="RP_RELS_DT" rs:basecolumn="ROWID" rs:keycolumn="true"
rs:hidden="true" rs:autoincrement="true">
                                                        <s:datatype
dt:type="string" rs:dbtype="str" dt:maxLength="18" rs:fixedlength="true"/>
                                                </s:AttributeType>
                                                <s:extends
type="rs:rowbase"/>
                                        </s:ElementType>
                                        <s:extends type="rs:rowbase"/>
                                </s:ElementType>
                                <s:AttributeType name="ROWID" rs:number="4"
rs:nullable="true" rs:rowid="true" rs:basetable="RP_RELS_DT"
rs:basecolumn="ROWID" rs:keycolumn="true" rs:hidden="true"
rs:autoincrement="true">
                                        <s:datatype dt:type="string"
rs:dbtype="str" dt:maxLength="18" rs:fixedlength="true"/>
                                </s:AttributeType>
                                <s:extends type="rs:rowbase"/>
                        </s:ElementType>
                        <s:extends type="rs:rowbase"/>
                </s:ElementType>
        </s:Schema>
        <rs:data>
                <z:row RB_ID="ECF91362-716C-4923-A245-F5D13817E36B"
RB_NAME="PIK-100-1" RB_START_DATE="2003-11-21T00:00:00"
RB_END_DATE="2001-12-31" CO_ID="9B84EFF4-2534-46A3-B635-CF43CBEB7695"
CO_NAME="Company Name" CO_ADDRESS="Company Address">
                        <b_children
REL_PARENT="ECF91362-716C-4923-A245-F5D13817E36B"
REL_CHILD="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF" ROWID="AAAA4yAACAAAXq4AAN">
                                <rr
RR_ID="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF" RR_NAME="PIK-2415-1"
RR_ISAPPROVED="-1" RR_PAYMENT_TYPE="0" WR_NAME="2415" WR_ADDRESS="4411
Meinardus Dr    ">
                                        <rr_children
REL_PARENT="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF"
REL_CHILD="3EBC74F2-413D-4FBA-AADC-2B7220786FE4" ROWID="AAAA4yAACAAAXqtAAZ">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Labor" RESOURCECODENAME="1.04 OH"
OBJ_ID="3EBC74F2-413D-4FBA-AADC-2B7220786FE4" ACTUALCOST="        44.16"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="       353.28"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF"
REL_CHILD="EC67AF77-335B-4664-A2A7-2D9950D3CBAF" ROWID="AAAA4yAACAAAXqtAAb">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Labor" RESOURCECODENAME="1.06 OH"
OBJ_ID="EC67AF77-335B-4664-A2A7-2D9950D3CBAF" ACTUALCOST="        28.52"
QUANTITY="13" QUALIFIERCODE="1" TOTALCOST="       370.76"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF"
REL_CHILD="73F70DC3-2E89-4E51-B303-8280FC723780" ROWID="AAAA4yAACAAAXqtAAd">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Equipment" RESOURCECODENAME="2.09 OH"
OBJ_ID="73F70DC3-2E89-4E51-B303-8280FC723780" ACTUALCOST="         1.80"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="        14.40"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF"
REL_CHILD="6FF29A2A-4FC0-4E49-85F7-5D6BC4AE3F2F" ROWID="AAAA4yAACAAAXqtAAf">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Equipment" RESOURCECODENAME="2.15 OH"
OBJ_ID="6FF29A2A-4FC0-4E49-85F7-5D6BC4AE3F2F" ACTUALCOST="         6.90"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="        55.20"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="C0CD4453-9E48-4AC9-836C-38C5FA35C4DF"
REL_CHILD="698C6196-3F52-453F-BF55-98CF4C7C36AC" ROWID="AAAA4yAACAAAXqtAAh">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Equipment" RESOURCECODENAME="2.17 OH"
OBJ_ID="698C6196-3F52-453F-BF55-98CF4C7C36AC" ACTUALCOST="        16.10"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="       128.80"/>
                                        </rr_children>
                                </rr>
                        </b_children>
                        <b_children
REL_PARENT="ECF91362-716C-4923-A245-F5D13817E36B"
REL_CHILD="9F8828D5-1EDF-4202-B750-5B249EB9F714" ROWID="AAAA4yAACAAAXq4AAP">
                                <rr
RR_ID="9F8828D5-1EDF-4202-B750-5B249EB9F714" RR_NAME="PIK-2486-2"
RR_ISAPPROVED="-1" RR_NOTES="INSTALL 40' POLE ON EAST SIDE"
RR_PAYMENT_TYPE="2" WR_NAME="2486" WR_ADDRESS="9036 N Lamar Blvd    ">
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="2829B95D-E6BB-4DC8-9B17-A55F4D3BBBC4" ROWID="AAAA4yAACAAAXqoAAN">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Labor" RESOURCECODENAME="1.01 OH"
OBJ_ID="2829B95D-E6BB-4DC8-9B17-A55F4D3BBBC4" ACTUALCOST="        24.84"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="       198.72"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="BD29808F-0604-40AB-BA0F-C0F0D63CD87C" ROWID="AAAA4yAACAAAXqoAAP">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Labor" RESOURCECODENAME="1.06 OH"
OBJ_ID="BD29808F-0604-40AB-BA0F-C0F0D63CD87C" ACTUALCOST="        28.52"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="       228.16"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="3650606F-36A9-4C0F-BE68-2716053E695C" ROWID="AAAA4yAACAAAXqoAAR">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Equipment" RESOURCECODENAME="2.02 OH"
OBJ_ID="3650606F-36A9-4C0F-BE68-2716053E695C" ACTUALCOST="        32.00"
QUANTITY="8" QUALIFIERCODE="1" TOTALCOST="       256.00"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="B164FAC0-C80C-4D0D-A823-C8F1AD3C215F" ROWID="AAAA4yAACAAAXqoAAT">
                                                <rd UNITOFMEASURE="EA"
BIDUNITNAME="Unit" RESOURCECODENAME="17.09 OH"
OBJ_ID="B164FAC0-C80C-4D0D-A823-C8F1AD3C215F" ACTUALCOST="       298.98"
QUANTITY="1" QUALIFIERCODE="1" TOTALCOST="       298.98"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="E473005F-123D-49A1-87D9-C8D3439AD1F4" ROWID="AAAA4yAACAAAXqoAAV">
                                                <rd UNITOFMEASURE="EA"
BIDUNITNAME="Unit" RESOURCECODENAME="19.04 OH"
OBJ_ID="E473005F-123D-49A1-87D9-C8D3439AD1F4" ACTUALCOST="       145.20"
QUANTITY="1" QUALIFIERCODE="1" TOTALCOST="       145.20"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="C05C6B74-DE96-40A0-83F2-B88CF47F80E3" ROWID="AAAA4yAACAAAXqoAAX">
                                                <rd UNITOFMEASURE="EA"
BIDUNITNAME="Unit" RESOURCECODENAME="19.06 OH"
OBJ_ID="C05C6B74-DE96-40A0-83F2-B88CF47F80E3" ACTUALCOST="       106.92"
QUANTITY="1" QUALIFIERCODE="1" TOTALCOST="       106.92"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="D4AC051D-A911-4899-B52D-FFAC2288B6F4" ROWID="AAAA4yAACAAAXqoAAZ">
                                                <rd UNITOFMEASURE="HR"
BIDUNITNAME="Equipment" RESOURCECODENAME="2.18 OH"
OBJ_ID="D4AC051D-A911-4899-B52D-FFAC2288B6F4" ACTUALCOST="        23.00"
QUANTITY="4" QUALIFIERCODE="1.25" TOTALCOST="       115.00"/>
                                        </rr_children>
                                        <rr_children
REL_PARENT="9F8828D5-1EDF-4202-B750-5B249EB9F714"
REL_CHILD="6A15FF13-7E5C-4CF2-8144-1B8EC28E3783" ROWID="AAAA4yAACAAAXqoAAb">
                                                <rd UNITOFMEASURE="EA"
BIDUNITNAME="Unit" RESOURCECODENAME="5.02 OH"
OBJ_ID="6A15FF13-7E5C-4CF2-8144-1B8EC28E3783" ACTUALCOST="       640.58"
QUANTITY="1" QUALIFIERCODE="1" TOTALCOST="       640.58"/>
                                        </rr_children>
                                </rr>
                        </b_children>
                </z:row>
        </rs:data>
</xml>

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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