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

Totals for conditional sums ?maybe?

Subject: Totals for conditional sums ?maybe?
From: "Christopher Pierce" <Christopher.Pierce@xxxxxxxxxxx>
Date: Fri, 2 Dec 2005 20:31:18 -0500
conditional sums
Well let me start by saying this is a mess mainly because I have no idea of
what I'm doing.  After researching this problem I've realized that my style
sheet could definitely be formatted better.  However I'm just trying to update
a baseline version so I didn't want to rewrite the whole thing (little did I
know that I would almost anyway).

I apologize for including so much entire style sheet below, which I know is
bad form having combed the lists for an answer and seeing all the tiny
examples, but most of the time I can't seem to comprehend the answers when
only a snippet of code is used.

What I am trying to do is total the ORDD_TLNA for the base years when
//AwardFullData/AwardItemizedLine[count(./periodLinePeriodNumber)&lt;1] and
then later total ORDD_TLNA for the option years when
//AwardFullData/AwardItemizedLine[count(./periodLinePeriodNumber)&gt;0]">

I have tried so many iterations I have forgotten them all but I think the
closest I have gotten is this:

<xsl:variable name="TEST"
select="//AwardFullData/AwardItemizedLine[count(./periodLinePeriodNumber)&lt;
1]"/>
<xsl:variable name="ADDME"
select="//AwardFullData/AwardItemizedLine/transactionAmount"/>
...

<xsl:value-of select="sum($ADDME[$TEST])"/>
The result was NaN (also at one point I checked for only numerical values
before sum and received 0)


Not even sure if the above was correct I tried to strip the formatting of the
data which includes $ and , (I have no control over the data source).
<xsl:value-of select="sum((translate($ADDME,'$,',''))[$TEST])"/>


THANKS!! Any help would be greatly appreciated I've been looking at the same
problem for 2 days.



Style sheet
..................................                   
                    
                     <!--Base Year-->
                           <xsl:for-each
select="//AwardFullData/AwardItemizedLine[count(./periodLinePeriodNumber)&lt;
1]">
                           <xsl:variable name="LNUM" select="./lineNumber"/>
                           <xsl:variable name="SLNUM"
select="./subLineNumber"/>
                           <xsl:variable name="CMDT_NM"
select="./commodityName"/>
                           <xsl:variable name="QTY_ORIG"
select="./originalQuantity"/>
                           <xsl:variable name="QTY_INCR"
select="./incrementQuantity"/>
                           <xsl:variable name="QTY_TOTAL"
select="./quantity"/>
                           <xsl:variable name="UNIT_OF_MESR"
select="./unitOfMeasure"/>
                           <xsl:variable name="UNPR_TA_CH"
select="./precreditUnitPriceTransactionAmount"/>
                           <xsl:variable name="UNPR_INCT_TA_CH"
select="./precreditUnitPriceIncrementTransactionAmount"/>
                           <xsl:variable name="UNPR_ORIG_TA_CH"
select="./originalPrecreditUnitPriceTransactionAmount"/>
                           <xsl:variable name="ORDD_TLNA"
select="./transactionAmount"/>
                           <xsl:variable name="ORDD_INCT_TLNA"
select="./incrementTransactionAmount"/>
                           <xsl:variable name="ORDD_ORIG_TLNA"
select="./originalTransactionAmount"/>                     
                           <xsl:variable name="DLVR_DT_CH"
select="./deliveryDate"/>
                           <xsl:variable name="PERD_PERF_STDT_CH"
select="./periodPerformanceStartDate"/>
                           <xsl:variable name="PERD_PERF_ENDT_CH"
select="./periodPerformanceEndDate"/>
                           <xsl:variable name="DSCR" select="./description"/>
                           <xsl:variable name="EXT_DSCR"
select="./extendedDescription"/>
                           <xsl:variable name="REF_DOC_TYPE"
select="./referenceDocumentType"/>
                           <xsl:variable name="REF_DOC_NUM"
select="./referenceDocumentNumber"/>
                           <xsl:variable name="REF_LINE_NUM"
select="./referenceLineNumber"/>
                           <xsl:variable name="CONTRACT_NUM"
select="./contractNumber"/>
                           <xsl:variable name="LINE_STATUS"
select="./objectChangeStatus"/>
                           <xsl:variable name="CLIN"
select="./contractLineItemNumber"/>
                           <xsl:variable name="PERD_LINE_PERD_NUM"
select="./periodLinePeriodNumber"/>
                                                     
                           <fo:table line-height="0.3in"
border-collapse="collapse" table-layout="fixed">
                                  <?ShowGrid true?>
                                  <?ShowHeaderGrid true?>
                                  <fo:table-column column-number="1"
column-width="47px"/>
                                  <fo:table-column column-number="2"
column-width="180px"/>
                                  <fo:table-column column-number="3"
column-width="80px"/>
                                  <fo:table-column column-number="4"
column-width="51px"/>
                                  <fo:table-column column-number="5"
column-width="88px"/>
                                  <fo:table-column column-number="6"
column-width="93px"/>
                                  <fo:table-header text-align="center">
                                         <fo:table-row>
                                                <fo:table-cell
border-style="solid">
                                                       <fo:block
text-align="center" font-family="Helvetica" font-weight="bold"
font-size="8pt">Number</fo:block>
                                                </fo:table-cell>
                                                <fo:table-cell
border-style="solid">
                                                       <fo:block
text-align="center" font-weight="bold">Commodity Name or Service</fo:block>
                                                </fo:table-cell>
                                                <fo:table-cell
border-style="solid">
                                                       <fo:block
text-align="center" font-weight="bold">Quantity</fo:block>
                                                </fo:table-cell>
                                                <fo:table-cell
border-style="solid">
                                                       <fo:block
text-align="center" font-weight="bold">Unit of Issue</fo:block>
                                                </fo:table-cell>
                                                <fo:table-cell
border-style="solid">
                                                       <fo:block
text-align="center" font-weight="bold">Unit Price</fo:block>
                                                </fo:table-cell>
                                                <fo:table-cell
border-style="solid">
                                                       <fo:block
text-align="center" font-weight="bold">Total Cost ( Inc. disc and
tax)</fo:block>
                                                </fo:table-cell>
                                         </fo:table-row>
                                  </fo:table-header>
                                  <fo:table-body>
...................
                                  <xsl:if test="$PRINT_CHANGE_AMOUNTS">
                                         <fo:block>Original Total: 
<xsl:value-of select="./originalPrecreditLineTransactionAmount"/>
                                         </fo:block>
                                         <fo:block>Change Total: 
<xsl:value-of select="$ORDD_INCT_TLNA"/>
                                         </fo:block>
                                  </xsl:if>
                                  <fo:block>Total:  <xsl:value-of
select="$ORDD_TLNA"/>
                                  </fo:block>
                                  <fo:block white-space-collapse="false"
font-family="Helvetica" font-size="9pt">
                                         <xsl:value-of select="' '"/>
                                  </fo:block>
                           </xsl:for-each>
                     </xsl:for-each>
                    
                    
                     <!--BASE YEAR TOTAL-->
                          
                     <fo:block white-space-collapse="false"
border-bottom-style="solid" font-size="9pt">
                    
                     </fo:block>  
                     <fo:block font-weight="bold" font-size="9pt">
                           <fo:inline>BASE YEAR TOTAL:  </fo:inline>
                     </fo:block>
                     <fo:block white-space-collapse="false"
border-bottom-style="solid" font-size="9pt">
                           <xsl:value-of select="' '"/>
                     </fo:block>  
                    
                                             
                    
                     <!--FOOTER-->
                    
                     <fo:block font-weight="bold" font-size="9pt">
                           <xsl:value-of select="$FOOTER"/>
                     </fo:block>
                     <fo:block white-space-collapse="false"
border-bottom-style="solid" font-size="9pt">
                           <xsl:value-of select="' '"/>
                     </fo:block>
              </fo:flow>
       </fo:page-sequence>
</fo:root>

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.