xsl-list
[Top] [All Lists]

[xsl] Problem with sum values with double param

2009-08-05 09:39:34
Hello,
I'm writing because I have got problem with filtrate by first
TechnicanName ProblemType(total WorkTime per technican), and number of
activites InTime and out of time.

Xml input file

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="recovery.xsl" type="text/xsl" ?>
<Calls>
        <Row NR="1">
                <Rc>InTime</Rc>
                <WorkTime>20</WorkTime>
                <TechnicianName>Norman</TechnicianName>
                <ProblemType>INCYDENT</ProblemType>
        </Row>
        <Row NR="2">
                <Rc>OutTime</Rc>
                <WorkTime>10</WorkTime>
                <TechnicianName>Peter</TechnicianName>
                <ProblemType>INCYDENT</ProblemType>
        </Row>
        <Row NR="3">
                <Rc>InTime</Rc>
                <WorkTime>150</WorkTime>
                <TechnicianName>Norman</TechnicianName>
                <ProblemType>FAILURE</ProblemType>
        </Row>
        <Row NR="4">
                <Rc>OutOfTime</Rc>
                <WorkTime>10</WorkTime>
                <TechnicianName>Norman</TechnicianName>
                <ProblemType>RemoteAccess</ProblemType>
        </Row>
        <Row NR="5">
                <Rc>InTime</Rc>
                <WorkTime>20</WorkTime>
                <TechnicianName>Norman</TechnicianName>
                <ProblemType>INCYDENT</ProblemType>
        </Row>
        <Row NR="6">
                <Rc>InTime</Rc>
                <WorkTime>20</WorkTime>
                <TechnicianName>Peter</TechnicianName>
                <ProblemType>INCYDENT</ProblemType>
        </Row>
I would like get following out put
Name    TotalWorkTimeByIncydent TotalWorkTimeByFailure  TotalWorkTime   InTime  
OutOfTime
Peter           30                      0                       30      1       
1       
Norman          40                      150                     200     2       
1       

Thecnican name can't be duplicate so I make like this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        
        <xsl:key name="list" match="/Activities/Row" use="TechnicianNames" />
        <xsl:template match="Activities">
                <html>
                        <body>
                                <xsl:variable name="var_TechnicianNamess"
select="/Activities/Row[count(. | key('list', TechnicianName)[1]) =
1]"/>
                                <xsl:for-each select="$var_TechnicianNamess">
                                        <xsl:value-of select="TechnicianName" />
                                        <xsl:value-of select="sum(WorkMinute)" 
/>
                                </xsl:for-each>
                        </body>
                </html>
        </xsl:template>
        
</xsl:stylesheet>

Problemi with sum work minutes because function sum return me sum from
all Rows, I can' use for this sum() and key()
for examples:
<xsl:key name="lista" match="/Calls/Row" use="TechnicanNames" />
<xsl:value-of select="sum(key('lista', 'Norman')/WorkTime" />
because I can't put statically technican names.
I have got similar problem with ProblemType, I try like this
<xsl:key name="pbT" match="/Calls/Row" use="ProblemType" />
<xsl:value-of select="sum(key('lista', 'INCYDENT')/WorkTime" />

I must use xslt v1.0

Please for help

Kind regards,
Jack

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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