Subject: RE: [xsl] Re: How to Calculate Running Total using Variable withi n FOR-LOOP? From: "Ficke, Bill" <Bill.Ficke@xxxxxxxxxxxxxxxx> Date: Fri, 5 Dec 2003 16:12:05 -0600 |
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[@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[@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[@BIDUNITNAME='Labor']/@TOTALCOST) + sum(./rr_children/rd[@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[@BIDUNITNAME='Unit']/@TOTALCOST)"/> </xsl:when> <!-- Unit is 0, so use Hourly --> <xsl:when test="sum(./rr_children/rd[@BIDUNITNAME='Unit']/@TOTALCOST) = 0"> <xsl:value-of select="$Hourly"/> </xsl:when> <!-- Hourly greater than Unit --> <xsl:when test="$Hourly > sum(./rr_children/rd[@BIDUNITNAME='Unit']/@TOTALCOST)"> <xsl:value-of select="sum(./rr_children/rd[@BIDUNITNAME='Unit']/@TOTALCOST)"/> </xsl:when> <!-- Unit greater than Hourly --> <xsl:when test="sum(./rr_children/rd[@BIDUNITNAME='Unit']/@TOTALCOST) > $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[@BIDUNITNAME='Unit']/@TOTALCOST) > $Hourly))"> <xsl:value-of select="sum(./rr_children/rd[@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[@BIDUNITNAME='Specialty']/@TOTALCOST) + sum(./rr_children/rd[@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[@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[@BIDUNITNAME='Unit']/@TOTALCOST), '$#,##0.00')"/></td> </tr> <tr class="cia_reportdata"> <td colspan="6"> </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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Easy way to identify node, yguaba | Thread | [xsl] Re: Re: How to Calculate Runn, Dimitre Novatchev |
RE: [xsl] log saxon error messages , Mark Ivs | Date | Re: [xsl] Re: Easy way to identify , G. Ken Holman |
Month |