🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #9612

Problem z obliczeniami

#9612
From: ChrisB
Date: Thu, 27 Dec 2007 14:20
69 lines
2857 bytes
Witam!

Na zaliczenie mam projekt z XML i XSL, temat: "Faktura".
Fragment XML opisujacy pozycje na fakturze:

     <Pozycja>
         <LP>1</LP>
         <Indeks>Indeks 1</Indeks>
         <Opis>Opis 1</Opis>
         <Ilosc>3</Ilosc>
         <Jednostka>m2</Jednostka>
         <CenaPLN>25</CenaPLN>
         <StawkaVAT>
             <Procent>22</Procent>
         </StawkaVAT>
     </Pozycja>

     <Pozycja>
         <LP>2</LP>
         <Indeks>Indeks 2</Indeks>
         <Opis>Opis 2</Opis>
         <Ilosc>2</Ilosc>
         <Jednostka>m2</Jednostka>
         <CenaPLN>2</CenaPLN>
         <StawkaVAT>
             <Procent>22</Procent>
         </StawkaVAT>
     </Pozycja>

     <Pozycja>
         <LP>3</LP>
         <Indeks>Indeks 3</Indeks>
         <Opis>Opis 3</Opis>
         <Ilosc>5</Ilosc>
         <Jednostka>m2</Jednostka>
         <CenaPLN>5</CenaPLN>
         <StawkaVAT>
             <Procent>22</Procent>
         </StawkaVAT>
     </Pozycja>

W XSL obliczam cene brutto dla kazdej pozycji w ten oto sposob (w skrocie):
<xsl:template match="Pozycja">
     <xsl:variable name="ilosc_sztuk" select="Ilosc" />
     <xsl:variable name="cena" select="CenaPLN" />
     <xsl:variable name="wart_netto" select="$ilosc_sztuk * $cena" />
     <xsl:variable name="vat" select="StawkaVAT/Procent" />
     <xsl:variable name="cena_vat" select="$wart_netto * $vat div 100" />
     <xsl:variable name="cena_z_vat" select="$cena_vat + $wart_netto" />
     <xsl:value-of select="$cena_z_vat"/>
</xsl:template>

I teraz musze zrobic podsumowanie faktury czyli obliczyc kwote do 
zaplaty czyli dla kazdego z towarow wykonac to co jest powyzej i 
zsumowac to wszystko... ale jak?

Uzycie:

sum((/Faktura/Pozycja/Ilosc * /Faktura/Pozycja/CenaPLN) * 
/Faktura/Pozycja/StawkaVAT/Procent))

powoduje blad: Wyrażenie nie zwraca węzła DOM.
Sumwowanie w stylu Suma = Suma + Pozycja rowniez odpada bo zmienna w XSL 
nie moga zmieniac swoich wartosci.

Macie jakies pomysly jak to zrobic?

-- 
Chrisb
Technical Details
Message-ID: <fl0ce1$c7m$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: ChrisB <abuse@tpi.pl>
Newsgroups: pl.comp.xml
Subject: Problem z obliczeniami
Date: Thu, 27 Dec 2007 15:20:44 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 69
Message-ID: <fl0ce1$c7m$1@atlantis.news.tpi.pl>
Reply-To: abuse@tpi.pl
NNTP-Posting-Host: ecl207.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1198765313 12534 83.22.227.207 (27 Dec 2007 14:21:53 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Thu, 27 Dec 2007 14:21:53 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.9 (Windows/20071031)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit