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

RE: Re: Re: How to Calculate Running Total using Varia

Subject: RE: Re: Re: How to Calculate Running Total using Variable within FOR-LOOP?
From: "Ficke, Bill" <Bill.Ficke@xxxxxxxxxxxxxxxx>
Date: Sun, 7 Dec 2003 09:22:15 -0600
ficke
Dimitre,

Thank you for helping me.  I am sorry for not removed excess code from my
stylesheet.  I thought you were asking for more xml, not less xsl.

I have examined your example code provided in your last email, and it
appears that my code is structured very similarly to it.  It is difficult
for me to see where and how the running total is stored during execution.

I'm assuming that downloading fxsl, I'll be able to see the templates scan1
and scanl1 referred to below.  Is that true?  I really need a working
example to understand how to apply it to my situation.

Thank you again for patiently working with me.

Bill

-----Original Message-----
From: Dimitre Novatchev
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Sent: 12/6/2003 2:07 AM
Subject:  Re: Re: How to Calculate Running Total using Variable within
FOR-LOOP?

Bill,

I am sorry, this is way too big and it seems to me that 90% of the code
is
not related to the actual problem.

I know how to solve this class of problems and would like to help, once
you
produce the minimal possible example.

Generally, one can use a recursive named templade to do the additions
and
get the running total at every step.

Below is an example which takes a list of numbers and produces a the
running
total at every step.

This is a simple example that I understand and, hopefully, could be
helpfull
in your case.

If you provide a very simple example of yours the solution of which will
solve your problem, then I will definitely give it a try.

Here's my example:

numList.xml:
========
<nums>
  <num>01</num>
  <num>02</num>
  <num>03</num>
  <num>04</num>
  <num>05</num>
  <num>06</num>
  <num>07</num>
  <num>08</num>
  <num>09</num>
  <num>10</num>
</nums>

Transformation (testScanl.xsl):
=====================
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:myAdd="f:myAdd"
xmlns:myParam="f:myParam"
>
  <xsl:import href="scanlDVC.xsl"/>
  <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <!-- To be applied on: numList.xml -->
  <myAdd:myAdd/>

  <myParam:myParam>0</myParam:myParam>

  <xsl:template match="/">

    <xsl:variable name="vFun" select="document('')/*/myAdd:*[1]"/>
    <xsl:variable name="vZero" select="document('')/*/myParam:*[1]"/>


    <xsl:call-template name="scanl">
      <xsl:with-param name="pFun" select="$vFun"/>
      <xsl:with-param name="pQ0" select="$vZero" />
      <xsl:with-param name="pList" select="/*/num"/>
    </xsl:call-template>

    - - - - - - - - - - -

     <xsl:call-template name="scanl1">
      <xsl:with-param name="pFun" select="$vFun"/>
      <xsl:with-param name="pList" select="/*/num"/>
    </xsl:call-template>

  </xsl:template>

  <xsl:template match="myAdd:*">
    <xsl:param name="pArg1" select="0"/>
    <xsl:param name="pArg2" select="0"/>

    <xsl:value-of select="$pArg1 + $pArg2"/>
  </xsl:template>

</xsl:stylesheet>

Result:
=====
<el>0</el>
<el>1</el>
<el>3</el>
<el>6</el>
<el>10</el>
<el>15</el>
<el>21</el>
<el>28</el>
<el>36</el>
<el>45</el>
<el>55</el>

    - - - - - - - - - - -

     <el>01</el>
<el>3</el>
<el>6</el>
<el>10</el>
<el>15</el>
<el>21</el>
<el>28</el>
<el>36</el>
<el>45</el>
<el>55</el>


This will not tell you how exactly the problem is solved, but it is
enough
to say that the scanl template is general and can solve all problems in
this
class. It needs that one specify the step operation as a tempate and
pass a
it (a template reference to it) as a parameter.

scanl applies the step operation on the already accumulated value and
the
head of the list, saves the current result (the running total), then
calls
itself with the tail (rest) of the list, the same step operation and the
latest accumulated value.

The step operation in your case (as I understand it) will be a template
that
essentially multiplies two children of the head of the list (e.g. price
and
quantity) and adds the result to the accumulated running total.

=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL




"Ficke, Bill" <Bill.Ficke@xxxxxxxxxxxxxxxx> wrote in message
news:92EFB80E551BD511B39500D0B7B0CDCC0A993F8D@xxxxxxxxxxxxxxxxxxxxxxxxxx
.us...
> 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']/@TOTALCO
ST),
> '$#,##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 &gt;
> 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) &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[@BIDUNITNAME='Unit']/@TOTALCOST) &gt;
$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:valu
e-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']/@TOTALCO
ST),
> '$#,##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
>
>




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

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

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

Buy Stylus Studio Now

Download The World's Best XML IDE!

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

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