xsl-list
[Top] [All Lists]

FW: How to Calculate Running Total using Variable within FOR-LOOP ?

2003-12-05 09:06:26
Posting the xml as requested....Hopefully, my dilemma will become apparent.

Thanks to everyone who responded from last night's message.  I look forward
to your responses to this message.

<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>

-----Original Message-----
From: Ficke, Bill 
Sent: Thursday, December 04, 2003 6:17 PM
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: XSL: How to Calculate Running Total using Variable within
FOR-LOOP?


I suspect I'm going about this in the wrong way.  Please help me.  If some
kind soul were to take special interest, I will gladly email an xml file to
accompany the included xsl.

I'm performing an outer for-loop for a report header and an inner for-loop
to display report details.  Within the inner loop, I'm calculating 4
variables (HOURLY, LESSER, SPECIALTY, SAVINGS) which successively evaluate
each other to get thier results, and eventually calcuate a GRANDTOTAL in
each inner for-loop.  (words in CAPS represent appropriate template names).

Then, I need to calculate the BATCHTOTAL based on the GRANDTOTAL variables
displayed in each inner for-loop.  

Essentially, it goes: <loop> - report header - <inner loop> - report details
- </inner loop> - series of subtotals based on report details (HOURLY,
LESSER, SPECIALTY, SAVINGS) - report total (GRANDTOTAL) </loop> - sum(report
totals) to accomodate multiple reports (BATCHTOTAL).

PROBLEM:  I can't figure out how to calculate the BATCHTOTAL.  I think it's
because with each loop, the GRANDTOTAL variable goes out of scope.

Thanks to anyone who will help.

Bill

Here is some xsl code to illustrate my efforts.  The templates of interest
include: HOURLY, LESSER, SPECIALTY, SAVINGS, BATCHTOTAL. 

<?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
        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: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:variable name="BatchTotal">
        <xsl:call-template name="BatchTotal">
                <xsl:with-param name="list"
select="/xml/rs:data/z:row/b_children"/>
        </xsl:call-template>
</xsl:variable>

</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"/>

        <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>




                <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>

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



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